m3u8 HLS Stream or video file url downloading to mp4 file with autodetect of url type
npm i fetch-video
const { download } = require('fetch-video');
const downloader = download(url, filename, requestOptions);
downloader.on('progress', progress => console.log(`Current progress ${progress}`));
downloader.on('speed', speed => console.log(`Current speed ${speed}`));
downloader.on('stats', console.log.bind(console));
downloader.go() // Promise returned
.then(() => console.log(`video stream or file ${url} is downloaded and stored as the ${filename}`));
url
, filename
, requestOptions
) => downloaderurl
- url of your video file or m3u8 playlist
filename
- filename path to which you want save the video. Can be stream.
If undefined - then dev-null
stream used.
requestOptions
- request options
Launches downloading and Promise being resolved on finish.
Immediately aborts downloading
Subscribe for event. Currently it supports two events:
progress
=> sending progress percents as payloadspeed
=> sending current speed in bytes per second as payloadstats
=> sending full stats about progresslastSegmentStats
=> stats about time, size and speed of last segmentresponse
=> time elapased between request started and headers got