MediathekView Downloader
Project description
MediathekView Downloader
A command line tool to download videos from public broadcasting services in Germany. It's name is a reference to the MediathekView project, because they are doing the actual work to provide a database of available shows and download sources (this is just a small helper script). Unfortunately, their client requires Java and its not so easy to automate downloads. This tools aims to make it easier to download your favorite shows to your local or network storage using a cronjob.
Features
- Commandline first interface.
- Powerful filter system for lists and download selection.
- Download .mp4, .flv and .m3u8 (HLS) media inclusive subtitles.
- Keep track of downloaded files and don't download them again.
- Template naming of the downloaded files.
Usage examples
Searching for shows
❯ mtv_dl list topic='extra 3' duration+20m age-1w
+----------+---------+------------------------+---------+------+---------------------------+----------+---------+--------+---------------------+
| hash | channel | title | topic | size | start | duration | age | region | downloaded |
+----------+---------+------------------------+---------+------+---------------------------+----------+---------+--------+---------------------+
| 49ea2aa7 | ARD | Extra 3 vom 10.08.2017 | extra 3 | 646 | 2017-08-10T22:45:00+02:00 | 43m | 14h 15m | | None |
+----------+---------+------------------------+---------+------+---------------------------+----------+---------+--------+---------------------+
Download all shows matching the filter
❯ mtv_dl download topic='extra 3' duration+20m age-1w
Download all shows matching any filter a text file
❯ cat shows.txt
channel=ARD topic='extra 3' title!=spezial duration+20m
channel=ZDF topic='Die Anstalt' duration+45m
channel=ZDF topic=heute-show duration+20m
❯ mtv_dl --dir=/media download --high --target='{dir}/{channel}/[{topic} {date}] {title}{ext}' --sets=shows.txt
Use a config file to apply useful defaults for all commands
This is my cronjob default.
❯ cat ~/.mtv_dl.yml
high: true
dir: /media
target: '{dir}/{channel}/[{topic} {date}] {title}{ext}'
❯ crontab -l
0 * * * * mtv_dl download --logfile=~/download.log --sets=~/shows.txt
Get show details in JSON format
❯ mtv_dl dump hash=49ea2aa7
[
{
"age": "17:15:00",
"channel": "ARD",
"description": "[...]",
"duration": "0:43:00",
"hash": "49ea2aa7",
"new": false,
"region": "",
"size": 646,
"start": "2017-08-10T22:45:00+02:00",
"title": "Extra 3 vom 10.08.2017",
"topic": "extra 3",
"url_http": "[...]",
"url_http_hd": "[...]",
"url_http_small": "[...]",
"url_subtitles": "",
"website": "[...]"
}
]
Installation
Requirements:
- python3.10 or later
- everything in pyproject.toml
The easiest way is to install using pip:
❯ python3 -m pip install mtv-dl
Docker
You can use docker to run the latest version.
❯ docker run -v ./my-data/:/data ghcr.io/fnep/mtv_dl
Development
This project uses uv for building, publishing and dependencies.
To get startet checkout the repository and
❯ uv run mtv_dl
Support
This project is free and open source (MIT licensed). It's not very actively maintained but also not neglected. It's just here in case it's useful for somebody.
Für "Issues": Ich komme aus Dresden und spreche auch Deutsch.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mtv_dl-0.27.3.tar.gz.
File metadata
- Download URL: mtv_dl-0.27.3.tar.gz
- Upload date:
- Size: 18.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9b02b5296e71f44e66b11db91423b9e2642eb64fc7a5043b2c914a28137e243
|
|
| MD5 |
a2beb20659d3971a9e19c0081d16e0c6
|
|
| BLAKE2b-256 |
54ca6ff3a5b73f1ee09d13a38b021a4e69915c6d0050647a965718a4a97aa7a8
|
File details
Details for the file mtv_dl-0.27.3-py3-none-any.whl.
File metadata
- Download URL: mtv_dl-0.27.3-py3-none-any.whl
- Upload date:
- Size: 19.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
897e7f873b9e2183fe17e8d8712fa69c4f31fc6c361740f27491e5fd79a409a1
|
|
| MD5 |
909e5940045e7c7dd11420ccee50723b
|
|
| BLAKE2b-256 |
f68c2b7dc509ed24d62264530422970d9a20fc9854feda41058b0fe84c63c4ce
|