Downloading from German TV Streams
I wanted to download German TV Streaming media, on a schedule (i.e. to grab a particular show on a weekly basis). That’s not particularly difficult, but it took a while
Source URLS:
Lots of good information here: https://wiki.ubuntuusers.de/Internet-TV/Stationen/ the URL I wanted was for “Das Erste”: https://daserstehdde-lh.akamaihd.net/i/daserstehd_de@629196/master.m3u8
Software
I pretty quickly decided that VLC could do what I needed (via command line interface, cvlc). My first attempt was a bash script like so:
#!/bin/bash
cd /temp/Video/
timeout 2h cvlc https://daserstehdde-lh.akamaihd.net/i/daserstehd_de@629196/master.m3u8 --sout file/ts:SavedFile_$(date +%F).ts
Problems!
This nearly worked but with 2 problems:
- The first few seconds of the stream were in lower resolution
- Rest of the stream in HD, which is nice but not what I needed and takes up a lot of space
Working Solution
I spent a lot of time trying to use different URLs, or to set a preferred resolution, without success. Final fix was to add an extra tool: Streamlink
This wasn’t in Debian at the time, but can be installed with pip. However, I was keen not to add repositories and to at least sort-of sandbox it, so installation steps I followed were:
pip install virtualenv
mkdir ~/src/StreamLink
cd ~/src/StreamLink
virtualenv StreamLink
source StreamLink/bin/activate
pip install streamlink
Then I reworked my bash script like so (note here I’m downloading at 540p):
#!/bin/bash
source ~/src/StreamLink/StreamLink/bin/activate
cd ~/temp/Video/
timeout 2h streamlink --player="cvlc --sout file/ts:SavedFile_$(date +%F_%T)_540p.ts" \
https://daserstehdde-lh.akamaihd.net/i/daserstehd_de@629196/master.m3u8 540p