Command-line utility for downloading an offline copy of TubiTV HLS video streams.
accepts URLs that identify:
downloads:
resulting file structure:
|- {title_series}/
| |- {title_episode}/
| | |- hls/
| | | |- video/
| | | | |- *.ts
| | | |- audio/
| | | | |- {language}/
| | | | | |- *.ts
| | | | |- {language}.m3u8
| | | |- subtitles/
| | | | |- {language}/
| | | | | |- *.vtt
| | | | |- {language}.m3u8
| | | |- video.m3u8
| | | |- master.m3u8
| | |- mp4/
| | | |- video.mp4
| | | |- video.{language}.srt
npm install --global @warren-bank/node-hls-downloader-tubitv
tubidl <options>
options:
========
"-h"
"--help"
Print a help message describing all command-line options.
"-v"
"--version"
Display the version.
"-q"
"--quiet"
Do not print a verbose log of operations.
"-ll" <integer>
"--log-level" <integer>
Specify the log verbosity level.
0 = no output (same as --quiet)
1 = include only episode TubiTV URLs
2 = include only episode ffmpeg commands
3 = include all operational metadata (default)
"-dr"
"--dry-run"
Do not write to the file system.
"-nm"
"--no-mp4"
Do not use "ffmpeg" to bundle the downloaded video stream into an .mp4 file container.
"-mf" <integer>
"--mp4-filename" <integer>
Specify the numeric mode used to configure the filename of the .mp4 file container.
0 = "video.mp4" (default)
1 = "${movie-or-episode-title}.mp4"
2 = "${movie-title}.mp4" or "${series-title} - ${episode-title}.mp4"
"-mc" <integer>
"--max-concurrency" <integer>
"--threads" <integer>
Specify the maximum number of URLs to download in parallel.
The default is 1, which processes the download queue sequentially.
"-P" <dirpath>
"--directory-prefix" <dirpath>
Specifies the directory where the resulting file structure will be saved to.
The default is "." (the current directory).
"-u" <URL>
"--url" <URL>
Specify a TubiTV URL. (movie, episode, or series)
"-i <filepath>"
"--input-file <filepath>"
Read TubiTV URLs from a local text file. Format is one URL per line.
tubidl -q -mc 5 -u 'https://tubitv.com/movies/465487/citizenfour'
tubidl -q -mc 5 -u 'https://tubitv.com/tv-shows/498780/s01_e02_the_grand_deception_part_2'
tubidl -mc 5 -u 'https://tubitv.com/series/4068/the_greatest_american_hero'
tubidl -dr -ll 1 -u 'https://tubitv.com/series/4068/the_greatest_american_hero'
tubidl -dr -ll 2 -u 'https://tubitv.com/series/4068/the_greatest_american_hero'
tubidl -dr -ll 3 -u 'https://tubitv.com/series/4068/the_greatest_american_hero'
download a series (advanced):
tubidl -dr -ll 1 -u 'https://tubitv.com/series/4068/the_greatest_american_hero' >'episode_urls.txt'
tubidl -dr -ll 2 -u 'https://tubitv.com/series/4068/the_greatest_american_hero' >'convert_mp4s.sh'
tubidl -nm -mc 5 -i 'episode_urls.txt' >'log.txt' 2>&1
./convert_mp4s.sh
--no-mp4 --log-level 3
--directory-prefix
)ffmpeg
command to perform this conversion is included in the log fileffmpeg
commands can be generated with the options: --dry-run --log-level 2
@warren-bank/node-hls-downloader
@warren-bank/node-process-argv
PATH
when using the --no-mp4
CLI option