mirror of
https://github.com/jbranchaud/til
synced 2026-01-04 23:58:01 +00:00
Add Add Subtitles To Existing Mux Video Asset as a Workflow TIL
This commit is contained in:
49
workflow/add-subtitles-to-existing-mux-video-asset.md
Normal file
49
workflow/add-subtitles-to-existing-mux-video-asset.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# Add Subtitles To Existing Mux Video Asset
|
||||
|
||||
There is a [JavaScript/TypeScript Mux
|
||||
SDK](https://github.com/muxinc/mux-node-sdk) for interacting with Mux via their
|
||||
[API](https://docs.mux.com/api-reference).
|
||||
|
||||
With a Mux client (initialized from `MUX_ACCESS_TOKEN` and `MUX_SECRET_KEY` in
|
||||
our environment), we can destructure `Video` which will allow us to call
|
||||
`Video.Assets.createTrack`. We pass that function the ID of an existing video
|
||||
asset and then an object of data defining the subtitle track. In this case, it
|
||||
is an English subtitle track. We need to point Mux to a `url` where the WebVTT
|
||||
formatted subtitles are hosted.
|
||||
|
||||
```typescript
|
||||
// add-srt-to-specific-video.ts
|
||||
|
||||
import Mux from '@mux/mux-node'
|
||||
|
||||
require('dotenv-flow').config({
|
||||
default_node_env: 'development',
|
||||
})
|
||||
|
||||
const assetId = "mux-asset-id" // set this value
|
||||
const srtUrl = "https://public-webvtt-file" // set this value
|
||||
|
||||
// Set up Mux API Client
|
||||
const MUX_ACCESS_TOKEN = process.env.MUX_ACCESS_TOKEN as string
|
||||
const MUX_SECRET_KEY = process.env.MUX_SECRET_KEY as string
|
||||
const muxClient = new Mux(MUX_ACCESS_TOKEN, MUX_SECRET_KEY)
|
||||
const {Video} = muxClient
|
||||
|
||||
await Video.Assets.createTrack(assetId, {
|
||||
url: srtUrl,
|
||||
type: 'text',
|
||||
text_type: 'subtitles',
|
||||
closed_captions: false,
|
||||
language_code: 'en-US',
|
||||
name: 'English',
|
||||
passthrough: 'English',
|
||||
})
|
||||
```
|
||||
|
||||
We can run the above script with `ts-node` from the command-line like so:
|
||||
|
||||
```bash
|
||||
$ npx ts-node --files --skipProject add-srt-to-specific-video.ts
|
||||
```
|
||||
|
||||
We'll see the new track on the existing asset in the Mux dashboard.
|
||||
Reference in New Issue
Block a user