Coder Social home page Coder Social logo

imshaikot / srt-webvtt Goto Github PK

View Code? Open in Web Editor NEW
49.0 3.0 6.0 272 KB

Convert SRT formatted subtitle to WebVTT on the fly over HTML5/browser environment

Home Page: https://imshaikot.github.io/srt-webvtt

License: MIT License

JavaScript 1.94% TypeScript 98.06%
video video-captioning web-vtt srt-subtitles converter html5 html5-video

srt-webvtt's Introduction

Convert and generate URL of WebVTT from .srt subtitle file on the fly over Browser/HTML5 environment

HTMLMediaElement/Video doesn't support .srt (SubRip Track) format subtitle as its <track> source - in order to show captions of your video track either you have to convert the SRT file to WebVTT or write it on your own. Because <track src="VALID URL SCHEME"> requires a valid URL of .vtt (Web Video Text Track) formated subtitle track. This library will let you do this on the fly and will give you an URL to set the source of caption track.

Example

https://imshaikot.github.io/srt-webvtt/

Installation

$ npm install srt-webvtt --save

Getting Started

Using it very easy but a little tricky indeed. To getting started:

// Using ES6 es-module
import toWebVTT from "srt-webvtt"; // This is a default export, so you don't have to worry about the import name

// Not using ES6??
var toWebVTT = require("srt-webvtt");

Example and API

When you're using HTMLMediaElement (example: <video>) and you want to show caption on your video player - there's a native HTML Element that will allow us to do that. See the official MDN article and tutorial of this <track> feature

Adding captions and subtitles to HTML5 video

But this feature is limited to WebVTT format and won't allow you to use SRT (very commonly used subtitle)

So, this tiny library will take your .srt subtitle file or a Blob object and will give you converted .vtt file's valid Object URL that you can set as <track>'s source.

See the Example below:

import { default as toWebVTT } from "srt-webvtt";

try {
  const textTrackUrl = await toWebVTT(input.files[0]); // this function accepts a parameer of SRT subtitle blob/file object
  // It is a valid url that can be used as text track URL
  var track = document.getElementById("my-sub-track"); // Track element (which is child of a video element)
  var video = document.getElementById("my-video"); // Main video element
  track.src = textTrackUrl; // Set the converted URL to track's source
  video.textTracks[0].mode = "show"; // Start showing subtitle to your track
} catch (e) {
  console.error(e.message);
}

toWebVTT(file: Blob): Promise<string> and this is it :)

LICENSE

MIT

srt-webvtt's People

Contributors

eioo avatar imshaikot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

srt-webvtt's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.