> ## Documentation index
> Fetch the complete documentation index at: https://www.tutorial.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Video Player

> Embed the Tutorial AI multilingual video player, control playback language with URL parameters, and understand the language fallback logic.

Section: Docs › Translation

With the Tutorial AI multilingual video player, you have access to translations and captions for every language your video has been translated into. Viewers can switch languages directly inside the player, or you can pin a specific default language via URL parameter — so a single embed code ships localized content to every audience.

[Video: Tutorial AI - Multilingual Video Player](https://embed.videoscripter.ai/video/019e21a2-fd9f-771a-b9c7-a9b762d44356)

## How it works

1. **Create translations** of your video using [1-Click Translation](https://www.tutorial.ai/docs/translation/one-click-translation)

2. **Copy the embed code** — a single snippet that includes all language versions

3. **Paste anywhere** — your website, help center, LMS, wiki, or any tool that accepts embeds

4. **Viewers choose** their language from the selector in the player controls

The voiceover, captions, and video timing switch instantly when a viewer selects a different language. New translations added later to the source video automatically become selectable in every existing embed — no need to update the snippet on your pages.

## The embed iframe

Drop this snippet anywhere:

```html wrap

[Video: Video Title](https://embed.videoscripter.ai/video/{video_id})

```

Replace `{video_id}` with the ID from your published video's embed code.

## URL parameters

### `lang` — pin the playback language

Append `?lang=<code>` to play a specific language by default:

**German**

    ```html wrap

[Video: Video Title](https://embed.videoscripter.ai/video/{video_id}?lang=de)

    ```

**Spanish**

    ```html wrap

[Video: Video Title](https://embed.videoscripter.ai/video/{video_id}?lang=es)

    ```

**French**

    ```html wrap

[Video: Video Title](https://embed.videoscripter.ai/video/{video_id}?lang=fr)

    ```

- Use a 2-letter ISO 639-1 code (`de`, `es`, `fr`) or a longer locale code (`en-US`, `pt-BR`, `zh-Hans`) — both are accepted.
- Matching is **case-insensitive** — `de`, `DE`, `de-de`, and `DE-DE` are equivalent.
- If the requested language isn't published for this video, the player falls back through the priority order below.

See [Supported Languages](https://www.tutorial.ai/docs/translation/supported-languages) for the full list of codes Tutorial AI supports.

### Omit `lang` — browser-determined

When the parameter is missing, the player picks a language from the viewer's browser:

```html wrap

[Video: Video Title](https://embed.videoscripter.ai/video/{video_id})

```

This is the recommended default for embeds shipped to international audiences — every viewer lands on their own language without changes per market.

> **Tip:** The viewer can always switch languages manually using the in-player language selector. The `lang` parameter sets the **default**, not a lock.

## Language selection priority

The player picks one translation from the list of **published** translations. Drafts and unpublished languages are invisible to the player. Priority order — first hit wins:

1. **`?lang=` URL param** — short or long code (`de` or `de-DE`), case-insensitive exact match. If that language is published, use it.

2. **Browser-preferred language(s)** — read from `navigator.languages`. First an exact match (e.g. `en-GB` → `en-GB` if published); if not found, fall back to the base language (e.g. `en-GB` → `en`).

3. **The original** — the translation flagged `isOriginal` for this video, if it has been published.

4. **English** — if the original isn't published, the player falls back to English.

The same priority order applies to the **share page** (the dedicated webpage created by Publish). Appending `?lang=de` to a share-page URL behaves the same way as appending it to an embed URL.

## Where the player draws translations from

Every translated version is automatically grouped with the source in a [Virtual Translation Folder](https://www.tutorial.ai/docs/getting-started/organizing-videos#virtual-translation-folders) on the Videos dashboard. The player draws from that folder — adding a new language translation later, it automatically becomes selectable in any existing embed.

## Where to embed

The multilingual player works in:

- Help centers and knowledge bases (Zendesk, Freshdesk, Intercom)
- Learning management systems (any LMS that supports embeds)
- Websites and landing pages
- Internal wikis (Confluence, Notion)
- CMS platforms (WordPress, Webflow, HubSpot)

## Next steps

  - [1-Click Translation](https://www.tutorial.ai/docs/translation/one-click-translation): Create the translations that power the player
  - [Publish & Share](https://www.tutorial.ai/docs/publishing/publish-share): The Publish workflow that produces share links and embed codes
  - [Organizing Videos](https://www.tutorial.ai/docs/getting-started/organizing-videos): Virtual Translation Folders keep all languages grouped
  - [Supported Languages](https://www.tutorial.ai/docs/translation/supported-languages): Full list of supported language codes

Source: https://www.tutorial.ai/docs/translation/video-player
