Coder Social home page Coder Social logo

mtv_dl's Introduction

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

  • No GUI or web interface. Less then 1000 lines of code. Only python dependencies.
  • 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 download --dir=/media --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.8 or later
  • everything in requirements.txt

The easiest way is to install using pip:

$ python3 -m pip install 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.

This project is supported by:

mtv_dl's People

Contributors

divialth avatar dobatymo avatar fnep avatar imolb avatar nebukadneza avatar tam1m avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.