m3u8-core
v1.1.6
Published
Download an m3u8 playlist
Downloads
19
Maintainers
Readme
Node M3U8 Downloader
A module that downloads m3u8 segments/playlists to specified output
Warn
This is deprecated use node-m3u8-downloader
instead. Its the more stable version of this
Installation
npm install node-m3u8-downloader
Usage
Create an instance
const m3u8 = require('node-m3u8-downloader');
// Initialize the instance with options
const options = {
streamUrl: 'http://example.com/playlist.m3u8',
outputFile: '/path/to/output.mp4',
mergedPath: '/path/to/merged.ts', // default: os.tmpdir()/m3u8dl/merged.ts
quality: 'highest', // default: highest
cache: '/path/to/cache', // cache path for temporary files
concurrency: 20, // number of download threads (default: 20)
ffmpegPath: '/custom/path/to/ffmpeg', // custom path to ffmpeg
cb: console.log, // callback function
};
const instance = new m3u8(options);
Options
streamUrl
: The URL of the m3u8 playlist.outputFile
: Path where the downloaded output file will be saved.mergedPath
: Path where merged ts files from segments are stored (default: system temporary directory + '/m3u8dl/merged.ts').quality
: Quality of the stream to download (default: highest).cache
: Path where temporary files are stored.concurrency
: Number of download threads (default: 20).ffmpegPath
: Custom path to ffmpeg executable.cb
: Callback function for events.
Add a caption
instance.addCaption(urlOrPath, lang)
Arguments
urlOrPath
: the uri of subtitles files or pathlang
: language of the subtitle (default: english)
Start the download
await instance.startDownload()
Events
instance.on(event, callback)
All Events
start
: Emitted when the downloader is starting.parsing
: Emitted when parsing the m3u8 playlist.segments_download:build
: Emitted when the segment downloader is built.segments_download:start
: Emitted when the segment downloader starts.segments_download:progress
: Emitted when a new segment is downloaded.progressData
: Object with download progress information.{ uri: string, path: string, progress: { total: int, current: int, percentage: int } }
segments_download:end
: Emitted when all segments are downloaded.merging:start
: Emitted when merging of segments starts.merging:end
: Emitted when merging of segments ends.conversion:start
: Emitted when conversion to mp4 and caption adding starts.conversion:end
: Emitted when conversion ends.end
: Emitted when the m3u8 download is complete.
Features
- Fast download (uses concurrency)
- Master playlist support
- Simple download
- Supports captions to add to video
Support
For support, make an issue in github.
🔗 Links
[]