Download videos from Yle servers
Copyright (C) 2010-2019 Antti Ajanki, [email protected]
License: GPLv3
Homepage: https://aajanki.github.com/yle-dl/index-en.html
Source code: https://github.com/aajanki/yle-dl
yle-dl is a tool for downloading media files from the video streaming services of the Finnish national broadcasting company Yle: Yle Areena, Elävä Arkisto and Yle news.
Below are general installation instructions. See a separate page for specialized installation instructions for Debian, Ubuntu, Mac OS X, Windows and Android.
- Python 2.7 or 3.5+
- pip
- pycryptodome
- ffmpeg (subtitles fully supported only on ffmpeg 4.1 or later)
- setuptools (when installing from the sources)
Optionally for few rare streams:
- PHP interpreter with bcmath, curl, openssl and SimpleXML extensions: some news broadcasts
- rtmpdump: some Elävä Arkisto streams. Version 2.4 or newer, preferably the latest development version from the project homepage
- wget
Enable the PHP extensions by appending the following lines with the correct paths in the php.ini:
extension=/path/to/curl.so
Easier way (installation without downloading the source codes):
pip3 install --user --upgrade yle-dl
Installation from sources. Download the sources and run the following on the source directory:
python3 setup.py install --user
If the command line shell complains that it can't find yle-dl when you try to execute it, add the installation location onto your $PATH:
# Set the path for the current terminal session
export PATH=$PATH:$HOME/.local/bin
# Make the change permanent. Adjust as needed if you are not using bash
echo export PATH=\$PATH:\$HOME/.local/bin >> ~/.bashrc
By default, yle-dl downloads streams from Yle Areena using the included copy of AdobeHDS.php. If the default downloader does not work for some reason, it is possible to use youtube-dl instead. yle-dl will automatically fall back to youtube-dl if it is installed and downloading with AdobeHDS.php fails.
Follow the above installation instructions (except for the PHP and the PHP libraries) and additionally install youtube-dl:
- Mac OS X:
brew install youtube-dl
- Debian/Ubuntu/other operating systems:
pip3 install --user --upgrade youtube_dl
yle-dl --ffmpeg avconv --ffprobe avprobe ...
python3 setup.py pytest
Some tests succeed only when run on a Finnish IP address because some
Areena streams are available only in Finland. By default these tests
are skipped. The run all tests, set the environment variable
ENABLE_FINLAND_TESTS
to 1:
export ENABLE_FINLAND_TESTS=1
python3 setup.py pytest
Running only a single test file:
python3 setup.py pytest --addopts "-k tests/integration/test_areena_radio_it.py"
yle-dl [options] URL
or
yle-dl [options] -i filename
where URL is the address of the Areena or Elävä arkisto web page where you would normally watch the video in a browser.
yle-dl options:
-
-o filename
Save stream to the named file -
-i filename
Read input URLs to process from the named file, one URL per line -
--latestepisode
Download the latest episodes -
--showurl
Print the URL of the stream, don't download -
--showtitle
Print stream title, don't download -
--showmetadata
Print stream metadata as JSON -
--vfat
Create Windows-compatible filenames -
--audiolang lang
Select stream's audio language if available, lang = fin (default) or swe -
--sublang lang
Download stream's subtitle language, lang = fin, swe, smi, none or all (default) -
--resolution res
Maximum vertical resolution in pixels -
--maxbitrate br
Maximum bitrate stream to download, integer in kB/s or "best" or "worst". Not all streams support limited bitrates. -
--rtmpdump path
Set path to rtmpdump binary -
--adobehds cmd
Set command for executing AdobeHDS.php script -
--postprocess cmd
Execute a command cmd after a successful download. The command is called with the downloaded FLV file as the first parameter and subtitle files (if any) as the following parameters. -
--proxy uri
HTTP(S) proxy to use. Example:--proxy localhost:8118
-
--destdir dir
Save files to dir -
--pipe
Dump stream to stdout for piping to media player. E.g.yle-dl --pipe URL | vlc -
. -
--backend vals
Downloaders that are tried until one of them succeeds (a comma-separated list). Possible values:adobehdsphp
(download HDS streams using AdobeHDS.php),youtubedl
(download HDS streams using youtube-dl). -
-V, --verbose
Show verbose debug output
Type yle-dl --help
to see the full list of options.
Any unrecognized options will be relayed to rtmpdump process (when downloading RTMP streams).
To download through a SOCKS5 proxy, use tsocks or a similar wrapper.
Firewall must allow outgoing traffic on ports 80 and 1935.
Arguments that start with '--' can also be set in a config file. The
default config file is ~/.yledl.conf
or one can be specified via
--config
. See yledl.conf.sample for an example
configuration.
Config file syntax allows: key=value, flag=true. If an arg is specified in more than one place, then command line values override config file values which override defaults.
yle-dl https://areena.yle.fi/1-1544491 -o video.flv
yle-dl --backend youtubedl https://areena.yle.fi/1-1544491 -o video.flv
yle-dl http://yle.fi/aihe/artikkeli/2010/10/28/studio-julmahuvi-roudasta-rospuuttoon
Playing in vlc (or any other video player) without downloading first:
yle-dl --pipe https://areena.yle.fi/1-2409251 | mpv --cache=1000 --slang=fi -
Executing a script to postprocess a downloaded video (see the example postprocessing script at scripts/muxmp4):
yle-dl --postprocess scripts/muxmp4 https://areena.yle.fi/1-1864726