> ## Documentation Index > Fetch the complete documentation index at: https://bunny.net/docs/llms.txt > Use this file to discover all available pages before exploring further. # Player UI Language > Set the language of the Bunny Stream video player interface, including controls, menus, and tooltips. The UI language controls the text shown in the Bunny Stream player interface, such as the settings menu, control tooltips, and caption labels. You can set it in two ways: * **Library default:** set `UILanguage` on the video library so every video in that library uses the same player language. * **Per player:** add the `lang` query parameter to an embed or direct play URL to override the library default for that player only. If neither is set, English (`en`) is used. ## Supported languages Use the code in the **Code** column as the value of the `UILanguage` field or the `lang` query parameter. | Language | Code | Language | Code | | - | - | - | - | | Arabic | `ar` | Macedonian | `mk` | | Bulgarian | `bg` | Norwegian | `no` | | Chinese | `cn` | Polish | `pl` | | Czech | `cz` | Portuguese | `pt` | | Danish | `dk` | Romanian | `ro` | | Dutch | `nl` | Russian | `ru` | | English (default) | `en` | Serbian | `rs` | | Finnish | `fi` | Slovakian | `sk` | | French | `fr` | Slovenian | `si` | | German | `de` | Spanish | `es` | | Greek | `gr` | Swedish | `se` | | Hungarian | `hu` | Thai | `th` | | Indonesian | `id` | Turkish | `tr` | | Italian | `it` | Ukrainian | `ua` | | Japanese | `jp` | Vietnamese | `vn` | | Korean | `kr` | | | > [!WARNING] > > Some language codes differ from the ISO 639-1 standard, always use the codes listed above. ## Set the library default **1. Get your API key and library ID** You need your account API key and the ID of the video library you want to update. To find your API key, go to **Account → API key** in the [bunny.net dashboard](https://dash.bunny.net/account/api-key). **2. Check which languages support player translation (optional)** Call [Get Languages](https://bunny.net/docs/api-reference/core/stream-video-library/get-languages.md) to retrieve the current list of languages. Only entries where `SupportPlayerTranslation` is `true` can be used as the player UI language. \ Use each entry's `ShortCode` as the value. ```bash theme={null} curl --request GET \ --url https://api.bunny.net/videolibrary/languages \ --header 'AccessKey: YOUR_API_KEY' ``` ```json Example response item theme={null} { "ShortCode": "de", "Name": "German", "SupportPlayerTranslation": true, "SupportTranscribing": true, "TranscribingAccuracy": 95 } ``` **3. Update the video library** Call [Update Video Library](https://bunny.net/docs/api-reference/core/stream-video-library/update-video-library.md) and set the `UILanguage` field to your chosen language code. ```bash cURL theme={null} curl --request POST \ --url https://api.bunny.net/videolibrary/{libraryId} \ --header 'AccessKey: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data '{ "UILanguage": "de" }' ``` ```javascript JavaScript theme={null} const libraryId = 12345; const response = await fetch(`https://api.bunny.net/videolibrary/${libraryId}`, { method: "POST", headers: { AccessKey: "YOUR_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ UILanguage: "de" }), }); const library = await response.json(); console.log(library.UILanguage); // "de" ``` ```python Python theme={null} import requests library_id = 12345 response = requests.post( f"https://api.bunny.net/videolibrary/{library_id}", headers={ "AccessKey": "YOUR_API_KEY", "Content-Type": "application/json", }, json={"UILanguage": "de"}, ) print(response.json()["UILanguage"]) # "de" ``` Only the fields you include in the request body are changed. All other library settings stay as they are. **4. Verify the change** A successful request returns `200` with the updated video library, where `UILanguage` shows the new value. Reload any page with an embedded player to see the translated interface. > [!TIP] > > To switch back to the default, set `UILanguage` to `en`. ## Override per player with a query parameter Add `lang` to an embed or direct play URL to set the player language for that player only. It overrides the library's `UILanguage` setting, and the library setting stays unchanged. This is useful on multilingual sites, where each page can load the player in the visitor's language. > [tab] Embed URL > > ```text theme={null} > https://player.mediadelivery.net/embed/{video_library_id}/{video_id}?lang=de > ``` > > ```html theme={null} > > ``` > [tab] Direct play URL > > ```text theme={null} > https://player.mediadelivery.net/play/{video_library_id}/{video_id}?lang=de > ``` `lang` can be combined with other [player parameters](https://bunny.net/docs/stream/embedding.md#supported-parameters) using `&`. For example, to load the French interface with French captions turned on: ```text theme={null} https://player.mediadelivery.net/embed/{video_library_id}/{video_id}?lang=fr&captions=fr ``` > [!NOTE] > > If the library uses [embed view token authentication](https://bunny.net/docs/stream/token-authentication.md), keep the `token` and `expires` parameters in the URL and add `lang` alongside them. ## Related > [card] [Update Video Library](https://bunny.net/docs/api-reference/core/stream-video-library/update-video-library.md) > > Set the `UILanguage` field for a video library. > [card] [Get Languages](https://bunny.net/docs/api-reference/core/stream-video-library/get-languages.md) > > List languages and check `SupportPlayerTranslation`. > [card] [Embedding videos](https://bunny.net/docs/stream/embedding.md) > > Embed and direct play URLs, plus all supported player parameters. This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.