The app parses RTL Télé Lëtzebuerg web pages, detects and downloads videos and transcodes them into an .mp4 file using ffmpeg. The app also includes a web frontend powered by Sinatra.
Make sure to have up-to-date versions of Ruby and ffmpeg installed on your system.
- Debian:
sudo apt-get install ffmpeg - RHEL & Co:
sudo dnf install ffmpeg - Arch Linux:
sudo pacman -S ffmpeg
Before you start the app, you need to install the necessary gems using bundle install.
The app comes with a web frontend powered by Ruby, Sinatra and Puma. You can start the app with the commands foreman start, ruby app.rb or use simply make use of the Procfile for cloud deployments.
Hit the command line to use the script.
By default, the video quality will be set to a resolution of 1280x720 (high quality).
Usage: ruby dl.rb <URL> [options]
-1, --low Low quality (640x360)
-2, --average Average quality (854x480)
-3, --high High quality (1280x720)
-4, --highest Highest quality (1920x1080)
-v, --verbose Verbose mode
-o, --output=FOLDER Specify output folder (optional)
-h, --help Show help message
The dl.rb script should produce something like this:
$ ruby dl.rb https://www.rtl.lu/news/national/a/1372563.html -v
Using ffmpeg version: 4.3.1
Selected video quality: 1280x720
Parsing: https://www.rtl.lu/news/national/a/1372563.html
Found playlist: https://vod-edge.rtl.lu/replay/amlst:3170491/playlist.m3u8
Found chunk list: chunklist_b4408200.m3u8 (1280x720) - out of 4 chunk lists
Downloading 14 chunk files...
Downloading: https://vod-edge.rtl.lu/replay/amlst:3170491/media_b4408200_0.ts
Downloading: https://vod-edge.rtl.lu/replay/amlst:3170491/media_b4408200_1.ts
Downloading: https://vod-edge.rtl.lu/replay/amlst:3170491/media_b4408200_2.ts
Downloading: https://vod-edge.rtl.lu/replay/amlst:3170491/media_b4408200_3.ts
Downloading: https://vod-edge.rtl.lu/replay/amlst:3170491/media_b4408200_4.ts
Downloading: https://vod-edge.rtl.lu/replay/amlst:3170491/media_b4408200_5.ts
Downloading: https://vod-edge.rtl.lu/replay/amlst:3170491/media_b4408200_6.ts
Downloading: https://vod-edge.rtl.lu/replay/amlst:3170491/media_b4408200_7.ts
Downloading: https://vod-edge.rtl.lu/replay/amlst:3170491/media_b4408200_8.ts
Downloading: https://vod-edge.rtl.lu/replay/amlst:3170491/media_b4408200_9.ts
Downloading: https://vod-edge.rtl.lu/replay/amlst:3170491/media_b4408200_10.ts
Downloading: https://vod-edge.rtl.lu/replay/amlst:3170491/media_b4408200_11.ts
Downloading: https://vod-edge.rtl.lu/replay/amlst:3170491/media_b4408200_12.ts
Downloading: https://vod-edge.rtl.lu/replay/amlst:3170491/media_b4408200_13.ts
File saved to: 1372563.mp4
Done.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - Submit a pull request :D
The app is available as open source under the terms of the MIT License.
