> For the complete documentation index, see [llms.txt](https://knowlg.sunbird.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://knowlg.sunbird.org/learn/product-and-developer-guide/player/v1/architecture.md).

# Architecture

![Content player v1 architecture](/files/YYGUdeHWsNS4ToueO5Iv)

Content player v1 can be integrate in Desktop app, Mobile app by using the npm package. This  provide the capability to render ECML, epub, pdf, mp4, youtube, mp3 and html type contents. V1 player has dependency on sunbird telemetry sdk and content plugins.

### Content Launchers

Content player v1 is able to play the different format of content using the configuration. You just need to provide the mimeType and plugin launchers in config. Its capable to load the content launchers according to the mimeType

#### Base launcher

Base launcher is responsible to launch following launchers based on the mime types of the assets

* ECML : ECML launcher derived from the base launcher and also is responsible to launch the ecml type assets
* Epub : Epub type assets can be render by using this launcher
* PDF : If the mime type is application/pdf, base launcher will launches the pdf launcher
* Video : This launcher is responsible to to launch the mp4, mp3, webm and youtube type assets
* HTML : This launcher also derived from the base launcher and this launcher is responsible to launch the Html files.

#### Sample config to launch the ECML assets

```
"contentLaunchers": [ // content laucher plugins for specific content mimetypes
    { // Plugin used for ECML content to launch, It is default plugin
        "mimeType": 'application/vnd.ekstep.ecml-archive',
        "id": 'org.ekstep.ecmlrenderer',
        "ver": 1.0,
        "type": 'plugin'
    }
]
```

### White List Urls

Content player v1 will allows to play the external streaming url by adding the domain into the whiteListUrl config

**Sample config to add white listed urls**

```
whiteListUrl: [ 
    'self', 'https://.blob.core.windows.net/**',
    'https://ekstep-public-.s3-ap-south-1.amazonaws.com/**' 
]
```

Please refer to the [config section of README.md ](https://github.com/project-sunbird/sunbird-content-player#how-to-render-the-contents)file of the below [git repository](https://github.com/project-sunbird/sunbird-content-player)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://knowlg.sunbird.org/learn/product-and-developer-guide/player/v1/architecture.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
