Skip to content

Latest commit

 

History

History
49 lines (38 loc) · 1.52 KB

add-subtitles-to-existing-mux-video-asset.md

File metadata and controls

49 lines (38 loc) · 1.52 KB

Add Subtitles To Existing Mux Video Asset

There is a JavaScript/TypeScript Mux SDK for interacting with Mux via their API.

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.

// 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:

$ 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.