Skip to main content

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.

Release files for mtv_dl 0.28.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mtv_dl 0.28.0
File Size Uploaded
mtv_dl-0.28.0.tar.gz 19.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mtv_dl 0.28.0
File Interpreter ABI Platform
mtv_dl-0.28.0-py3-none-any.whl Python 3 none any Details

Total release size: 39.3 kB

Release files / mtv_dl-0.28.0.tar.gz

Download URL mtv_dl-0.28.0.tar.gz
Size 19.3 kB
Tags Source
SHA-256 checksum
How to use checksums
626f19ac8e2358a3c3771f9b57af52f595d20ab491c968a6cceafd3ed7c0f8ec
BLAKE2b-256 checksum
How to use checksums
6d91e3f42b435d50bbe0b862a4aa27ab2f9ef79bba34cfe95cfc489f59c173e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","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}

Release files / mtv_dl-0.28.0-py3-none-any.whl

Download URL mtv_dl-0.28.0-py3-none-any.whl
Size 20.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d49af4bb0e269bc8816bfab57f554d86e7d34c8ff09e1bcdb89127799d55fd1c
BLAKE2b-256 checksum
How to use checksums
234ecb890b566d32c2a36680c4a66de34b3cc99db272e409452501ce7a725e5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","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}

Release history Release notifications | RSS feed

This release

0.28.0 This release

2 release files

0.27.3

2 release files

0.27.2

2 release files

0.26.0

2 release files

0.24.0

2 release files

0.23.0

2 release files

0.21.5

2 release files

0.21.4

2 release files

0.21.3

2 release files

0.21.0

2 release files

0.20.5

2 release files

0.19.0

2 release files

0.18.5

2 release files

0.18.1

2 release files

0.18

2 release files

0.17

2 release files

0.16

2 release files

0.15

2 release files

0.14

2 release files

0.13

2 release files

0.12

2 release files

0.11

2 release files

0.10

3 release files

0.9

1 release file

0.8

2 release files

0.7

2 release files

0.6

2 release files

0.5

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page