Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Skript zum Download aus der ARD-Mediathek

Alles rund um das Thema Multimedia unter Linux

Moderator: Moderatoren

Antworten
abgdf
Guru
Guru
Beiträge: 3066
Registriert: 13. Apr 2004, 21:15

Skript zum Download aus der ARD-Mediathek

Beitrag von abgdf » 20. Feb 2018, 00:43

Hi,

wollte gestern was aus der ARD-Mediathek herunterladen. Vor einiger Zeit gab es dazu dieses Skript. Der Autor schreibt, das sei nicht mehr nötig, weil man mit einer ID aus der URL einfach so herunterladen könne. Genauer geht das so:

Code: Alles auswählen

1. URL Mediathek, z.B. "http://www.ardmediathek.de/tv/Der-Blaue-Planet/Der-Blaue-Planet-1/Das-Erste/Video?bcastId=49529922&documentId=50144564".
2. Man braucht die documentId, hier also 50144564.
3. Dann lädt man eine Textdatei im JSON-Format herunter:

wget 'http://www.ardmediathek.de/play/media/50144564'

4. In dieser Datei hält man nach .mp4-Dateien Ausschau.
Das wollte ich noch mehr automatisieren, und hab dazu ein Perl-Skript "show_ardstreams.pl" geschrieben. Mit

Code: Alles auswählen

show_ardstreams.pl 'http://www.ardmediathek.de/tv/Der-Blaue-Planet/Der-Blaue-Planet-1/Das-Erste/Video?bcastId=49529922&documentId=50144564'
sollte es einem direkt die Streams anzeigen. Hier wäre mal das Skript:

Code: Alles auswählen

#!/usr/bin/perl

use warnings;
use strict;

# show_ardstreams.pl, abgdf@gmx.net
# GNU GPL, V.2, 2018

use LWP::Simple;
use Cwd;

my $MEDIATHEKURL = "http://www.ardmediathek.de/tv/Der-Blaue-Planet/Der-Blaue-Planet-1/Das-Erste/Video?bcastId=49529922&documentId=50144564";

if ($#ARGV < 0) {
    print "\nUsage: show_ardstreams.pl MEDIATHEKURL\n\n";
    exit 1;
};
$MEDIATHEKURL = $ARGV[0];
chomp($MEDIATHEKURL);

if ($MEDIATHEKURL !~ /documentId=/) {
    print "\nError: '/documentId=' has to be in MEDIATHEKURL. Aborting.\n\n";
    exit 2;
}

my $thisdir = getcwd();
my $tempdir = "$thisdir/temp";

sub getDocumentId {
    my $mediathekurl = shift;
    my @a = split(/documentId=/, $mediathekurl);
    my $b = $a[1];
    chomp($b);
    return $b;
}

sub getBcastId {
    my $mediathekurl = shift;
    my @a = split(/bcastId=/, $mediathekurl);
    my $b = $a[1];
    @a = split(/\&documentId=/, $b);
    $b = $a[0];
    return $b;
}

sub disruptJson {
    my $json = shift;
    $json =~ s/https\://g;
    $json =~ s/http\://g;
    my @a = split(/\n/, $json);
    my $i; my $u; my @b; my @c; my @d; my @e;
    my $streamurl;
    @b = ();
    # Split the Json at ":" and put the elements into a list:
    for $i (@a) {
        @c = split(/\:/, $i);
        for $u (@c) {
            push(@b, $u);
        }
    }
    # Split the broken elements at "," and put the remains into a list:
    for $i (@b) {
        @c = split(/\,/, $i);
        for $u (@c) {
            push(@d, $u);
        }
    }
    # Only keep elements with ".mp4":
    @e = grep(/\.mp4/, @d);
    @b = ();
    # Extract element-parts between quotes, "........":
    for $i (@e) {
        if ($i =~ m/"([^"]*)\.mp4/) {
            $streamurl = "http:$1.mp4";
            push(@b, $streamurl);
        }
    }
    return @b;
}

my $documentid =  getDocumentId($MEDIATHEKURL);
my $bcastid =  getBcastId($MEDIATHEKURL);

# The JSON with the streams is found at this URL:
my $json = get("http://www.ardmediathek.de/play/media/$documentid");
my @streamlist = disruptJson($json);
if ($#streamlist == -1) {
    print "Error: No streams found. Something's wrong.\n";
    exit 3;
}

print "\n";
print "Stream-list:\n";
for my $i (@streamlist) {
    print "$i\n";
}
print "\n";
Ob es funktioniert, hängt davon ab, ob die ARD diesen Mechanismus so beibehält und die JSON-Datei auch in Zukunft in diesem Format bleibt. Heute ist der 20.02.2018.

Werbung:
Benutzeravatar
Heinz-Peter
Guru
Guru
Beiträge: 1971
Registriert: 24. Okt 2005, 14:04

Re: Skript zum Download aus der ARD-Mediathek

Beitrag von Heinz-Peter » 20. Feb 2018, 08:15

Hallo abgdf,

ich lade öfter die mp4 von WDR Servizezeit herunter. Das geht aber auch durch ARD Mediathek.
Schön das jetzt einfacher geht.

Danke und Grüße

Heinz-Peter
Mein Betriebssystem: Suse 13.2/42.2/42.3, Prozessor: Pentium 4 550 (3,40 GHz, FSB800, Hyper-Threading), Grafikkarte: Nvidia Geforce 6610XL (PCIe)/128MByte.
Wir müssen lernen, entweder als Brüder miteinander zu leben oder als Narren unterzugehen.

Benutzeravatar
soyo
Hacker
Hacker
Beiträge: 559
Registriert: 30. Nov 2009, 18:25

Re: Skript zum Download aus der ARD-Mediathek

Beitrag von soyo » 20. Feb 2018, 08:28

Hi
Ich geh hier her :
https://mediathekviewweb.de/#

Gebe bei Suche (wie im esten Beispiel) Der blaue Planet ein.
Dann auf das Videobutton.
wähl die Qualität aus , aufs Diskettensymbol.
Läuft der Film , mit der rechten Maustaste ins Video , Video speichern .
Bestätigen wo gespeichert werden soll , schon läuft der Download , und der Tab kann geschlossen werden.
MfG soyo

abgdf
Guru
Guru
Beiträge: 3066
Registriert: 13. Apr 2004, 21:15

Re: Skript zum Download aus der ARD-Mediathek

Beitrag von abgdf » 20. Feb 2018, 16:29

Cool, danke.

Hier ist noch die Nachricht, daß beide Projekte jetzt zusammenarbeiten:
https://mediathekview.de/news/mediathekviewweb/
Erscheint hier irgendwie sinnvoll, das in einer Weboberfläche anzubieten.

Sauerland
Guru
Guru
Beiträge: 3080
Registriert: 5. Aug 2007, 17:57
Wohnort: Sauerland

Re: Skript zum Download aus der ARD-Mediathek

Beitrag von Sauerland » 20. Feb 2018, 17:13

Ich klicke in Mediathekview13 rechts auf den Film----- Film aufzeichnen.....
Desktop: OpenSUSE Leap 42.3, Nvidia-Grafik Kernel 4.4
Laptop: OpenSUSE Leap 42.3, Intel-Skylake, Kernel 4.x, Windows 10

Benutzeravatar
soyo
Hacker
Hacker
Beiträge: 559
Registriert: 30. Nov 2009, 18:25

Re: Skript zum Download aus der ARD-Mediathek

Beitrag von soyo » 20. Feb 2018, 18:21

Hi
Sauerland hat geschrieben:
20. Feb 2018, 17:13
Ich klicke in Mediathekview13 rechts auf den Film----- Film aufzeichnen.....
Hab ich früher auch benutzt .
Aber , da ich es zu selten nutzte , dauerte es immer ca. 6-10min (ich DSL2000) die Filmliste zu laden , bis ich überhaupt was suchen und anwählen konnte.(Merkwürdig ist , bis ca 90% Prozent rennt es(Ladebalken) , für den Rest braucht es die Zeit.
MfG soyo

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste