Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: Expanded language support for Stream AI Generated Captions
description: Captions can now be generated for 11 additional spoken languages at no cost!
products:
- stream
date: 2025-01-30T12:00:00Z
---

Stream's [generated captions](stream/edit-videos/adding-captions/#generate-a-caption)
leverage Workers AI to automatically transcribe audio and provide captions to
the player experience. We have added support for these languages:

- `cs` - Czech
- `nl` - Dutch
- `fr` - French
- `de` - German
- `it` - Italian
- `ja` - Japanese
- `ko` - Korean
- `pl` - Polish
- `pt` - Portuguese
- `ru` - Russian
- `es` - Spanish

For more information, learn about [adding captions to videos](/stream/edit-videos/adding-captions/).
4 changes: 4 additions & 0 deletions src/content/changelogs/stream.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ productLink: "/stream/"
productArea: Developer platform
productAreaLink: /workers/platform/changelog/platform/
entries:
- publish_date: "2025-01-30"
title: Expanded Language Support for Generated Captions
description: |-
Eleven new languages are now supported for transcription when using [generated captions](/stream/edit-videos/adding-captions/#generate-a-caption), available for free for video stored in Stream.
- publish_date: "2024-08-15"
title: Full HD encoding for Portrait Videos
description: |-
Expand Down
27 changes: 21 additions & 6 deletions src/content/docs/stream/edit-videos/adding-captions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ caption file.

To create or modify a caption on a video a [Cloudflare API Token](https://www.cloudflare.com/a/account/my-account) is required.

The `<LANGUAGE_TAG>` must adhere to the [BCP 47 format](http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers). For convenience, the most common
The `<LANGUAGE_TAG>` must adhere to the [BCP 47 format](http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers). For convenience, many common
language codes are provided [at the bottom of this document](#most-common-language-codes).
If the language you are adding isn't included in the table, you can find the value
through the [The IANA registry](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry), which maintains a list of language codes. To find the
Expand Down Expand Up @@ -45,19 +45,34 @@ Generated captions use artificial intelligence based speech-to-text technology
to generate closed captions for your videos.

A video must be uploaded and in a ready state before captions can be generated.
In the following example URLs, the videos UID is referenced as \<VIDEO\_UID>.
In the following example URLs, the video's UID is referenced as `<VIDEO_UID>`.
To receive webhooks when a video transitions to ready after upload, follow the
instructions provided [here](/stream/manage-video-library/using-webhooks/).

Only English language caption generation is currently supported.
Captions can be generated for the following languages:

Videos may include several language captions, but each language must be unique.
- `cs` - Czech
- `nl` - Dutch
- `en` - English
- `fr` - French
- `de` - German
- `it` - Italian
- `ja` - Japanese
- `ko` - Korean
- `pl` - Polish
- `pt` - Portuguese
- `ru` - Russian
- `es` - Spanish

When generating captions, generate them for the spoken language in the audio.

Videos may include captions for several languages, but each language must be unique.
For example, a video may have English, French, and German captions associated
with it, but it cannot have two English captions. If you have already uploaded
an English language caption for a video, you must first delete it in order to
create an English generated caption. Instructions on how to delete a caption can be found below.

The \<LANGUAGE\_TAG> must adhere to the BCP 47 format. The tag for English is `en`.
The `<LANGUAGE_TAG>` must adhere to the BCP 47 format. The tag for English is `en`.
You may specify a region in the tag, such as `en-GB`, which will render a label
that shows `British English` for the caption.

Expand Down Expand Up @@ -171,7 +186,7 @@ https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/stream/<VIDEO_UID>/ca

### Example response to get the caption file for a video

```bash
``` text
WEBVTT

1
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/stream/pricing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ Delivery is counted by HTTP requests for video segments or parts of the MP4. The
- Content played from client-side/browser cache is not billable, like a short looping video. Some mobile app player libraries do not cache HLS segments by default.
- MP4 Downloads are billed by percentage of the file delivered.

HLS and DASH playback is rounded to the segment length. For uploaded content, HLS and DASH segments are four seconds. Live broadcast segments are determined by the keyframe interval or GOP size.
Minutes delivered for web playback (HLS and DASH) is rounded to the _segment_ length: for uploaded content, segments are four seconds. Live broadcast and recording segments are determined by the keyframe interval or GOP size of the original broadcast.

## Example scenarios

Expand Down
Loading