Philip Maloney Stream Fetcher
Mit dem unten aufgeführten quick n’dirty PHP-Script kann automatisch der aktuelle Philip Maloney Stream von srf.ch heruntergeladen und zu einem MP3 konvertiert werden. Mit Angabe der UID können auch die Streams der vorhergehenden 10 Wochen heruntergeladen werden.
Das Script wurde mehrfach überarbeitet und optimiert. Die aktuelle Version lädt den RTMP Stream herunter und konvertiert ihn dann zu einem MP3. Das MP3 wird zudem mit den korrekten ID3-Tags versehen. Die Verwendung des Scripts geschieht auf eigene Gefahr!
Das Bereitstellen der MP3 im Internet ist nicht legal. Deshalb wird es von dieser Seite aus keine Links auf die mp3-Dateien geben!
Hinweis:
Mittlerweile gibt es auch eine auf Python basierende Lösung von tschinz.
Script
Das Script wurde unter Linux (Ubuntu) sowie auf der Synology Diskstation getestet. Es werden die Tools php, ffmpeg, rtmpdump und mp3info benötigt.
<?php /***************************************************************** * This script finds the streaming data for a Philip Maloney * stream and downloads it. The stream is splitted in multiple * aac files which get merged and converted to a mp3 file * Copyright (c) 2015 by George Ruinelli <george [at] ruinelli.ch> * Updates & Infos: www.ruinelli.ch/maloney * Use this script at your own risc! * The Philip Maloney streams are copyright by Roger Graf (www.rogergraf.ch) * The streams are prvided by www.srf.ch (www.srf.ch/sendungen/maloney) * It is forbiden to provide the generated mp3 files on the internet! * * This script has to be run on a command line under linux or * another equal system. It depends on PHP, ffmpeg and mp3info (optional)! * Run it without a parameter and it downloads the latest episode. * To download a specific stream, provide its ID as a parameter * I.e. a6056b76-a537-43f3-a9a2-9d72ba63f430 * * Changelog: * 03.01.2015 - Initial Release * 02.02.2015 - ID grabber updated * 16.05.2016 - Changed to direct RTMP stream download * (With support of <manu [at] labor4.ch> * 09.08.2016 - Removed problematic curl_setopt lines * (With support of nonofyourbusiness) *****************************************************************/ $PATH_TO_FFMPEG = "ffmpeg"; $PATH_TO_RTMPDUMP = "rtmpdump"; $PATH_TO_ID_TAGGER = "../bin/mp3info"; /* Nothing to change bejond this line */ // Report simple running errors error_reporting(E_ERROR | E_WARNING | E_PARSE); /***************************************************************** * Helper function * It gets the data from a URL using curl *****************************************************************/ function get_data($url) { echo "Fetching $url...\n"; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); $data = curl_exec($ch); curl_close($ch); return $data; } echo "*****************************************************************\n"; echo "* Downloading a Philip Maloney stream\n"; echo "* Copyright (c) 2015-2016 by George Ruinelli <george [at] ruinelli.ch>\n"; echo "* Updates & Infos: www.ruinelli.ch/maloney\n"; echo "*****************************************************************\n"; /***************************************************************** * Get the ID of the stream *****************************************************************/ // $ID = $_GET["ID"]; $ID = $argv[1]; if($ID == ""){ echo "No ID given, downloading the latest stream\n"; for($i=0; $i < 10; $i++){ //it seems that this failes sometimes under cron, so try it multiple times echo "Try $i\n"; $overview = get_data("www.srf.ch/sendungen/maloney"); // echo "$overview\n"; $overview_arr = explode("\n", $overview); // $overview_audioembed_urls = array_values(preg_grep('/audioembed/', $overview_arr)); //get list of all linked streams and their IDs // [0] => href="http://www.srf.ch/player/radio/audioembed?id=a6056b76-a537-43f3-a9a2-9d72ba63f430&amp;mode=inline&amp;autoplay=true&amp;html5playersize=small" $overview_audioembed_urls = array_values(preg_grep('/popupaudioplayer/', $overview_arr)); //get list of all linked streams and their IDs // href="http://www.srf.ch/play/radio/popupaudioplayer?id=22095695-98a9-4837-bbe0-18e7a94cfe6f" print_r($overview_audioembed_urls); $p1 = strpos($overview_audioembed_urls[0], "?id="); //select most top (latest) stream // $p2 = strpos($overview_audioembed_urls[0], "&amp;mode"); $p2 = $p1 + strlen("?id=") + strlen("22095695-98a9-4837-bbe0-18e7a94cfe6f"); $ID = substr($overview_audioembed_urls[0], $p1 + strlen("?id="), $p2 - $p1 - strlen("?id=")); echo "ID: $ID\n"; // exit; if($ID != "")break; } } if($ID == ""){ echo "No ID given, quitting\n"; exit; } echo "Found ID: \"$ID\"\n"; /***************************************************************** * Get XML data of stream *****************************************************************/ echo "Fetching Philipp Maloney Episode with ID $ID\n"; $xml_url="http://www.srf.ch/webservice/ais/report/audio/withLiveStreams/$ID.xml"; // I.e. http://www.srf.ch/webservice/ais/report/audio/withLiveStreams/a6056b76-a537-43f3-a9a2-9d72ba63f430.xml $xml_data = get_data($xml_url); $p = xml_parser_create(); xml_parse_into_struct($p, $xml_data, $vals, $index); xml_parser_free($p); // print_r($index); // print_r($vals); $title_id = $index['TITLE'][0]; $title = $vals[$title_id]['value']; $lead_id = $index['LEAD'][0]; $lead = $vals[$lead_id]['value']; $setTitle_id = $index['ASSETSETTITLE'][0]; $setTitle = $vals[$setTitle_id]['value']; $publishedDate_id = $index['PUBLISHEDDATE'][0]; $publishedDate = $vals[$publishedDate_id]['value']; // $hlsPlaylistUrl_id = $index['HLSPLAYLISTURL'][0]; // $hlsPlaylistUrl = $vals[$hlsPlaylistUrl_id]['value']; $Url_id = $index['RTMPURL'][0]; $Url = $vals[$Url_id]['value']; echo "Title: \"$title\"\n"; echo "Description: \"$lead\"\n"; echo "Broadcasted: \"$setTitle\"\n"; // echo "hlsPlaylistUrl: $hlsPlaylistUrl\n"; echo "Url: $Url\n"; // $mp3 = date('Y-m-d') . " - $title.mp3"; $mp3 = substr($publishedDate, 0, 10) . " - $title.mp3"; echo "Final mp3 file: $mp3\n"; /***************************************************************** * Download *****************************************************************/ exec("$PATH_TO_RTMPDUMP -r $Url -o ../tmp/stream_dump.flv"); //Its an FLV container! echo "\nDownload completed\n"; /***************************************************************** * Convert to MP3 *****************************************************************/ exec("$PATH_TO_FFMPEG -y -loglevel panic -stats -i ../tmp/stream_dump.flv -vn -c:a copy \"$mp3\""); echo "\nConversion to MP3 completed\n"; /***************************************************************** * Add ID3 Tags * Note: There are other tools which would support ID3v2 or newer * However due to my lazyness, I did not compile them for my * Synology Diskstation *****************************************************************/ echo "Adding ID3 Tags...\n"; exec("$PATH_TO_ID_TAGGER -t \"$title\" \"$mp3\""); exec("$PATH_TO_ID_TAGGER -l \"Philip Maloney\" \"$mp3\""); exec("$PATH_TO_ID_TAGGER -a \"Roger Graf\" \"$mp3\""); exec("$PATH_TO_ID_TAGGER -c \"$lead\" \"$mp3\""); //max 30 characters on ID3v1.0! exec("echo \"$ID\" > \"$mp3.txt\""); exec("echo \"$title\" >> \"$mp3.txt\""); exec("echo \"$lead\" >> \"$mp3.txt\""); exec("echo \"$xml_url\" >> \"$mp3.txt\""); echo "Completed\n"; echo "*****************************************************************\n"; exec("$PATH_TO_ID_TAGGER \"$mp3\""); echo "*****************************************************************\n"; ?>
Das Script rufe ich über einen Management-Script auf:
#!/bin/sh cd "/volume1/music/Speziell/Philip_Maloney" mkdir -p tmp cd tmp php ../bin/download_maloney.php > fetch.log file=`ls *.mp3` target_folder=`echo ${file:0:4}` mkdir -p ../$target_folder mv *.mp3 ../$target_folder mv *.mp3.txt ../$target_folder rm * cd ..
Und diesen Script rufe ich periodisch per Cron Job auf (Zeile in /etc/crontab):
0 0 * * 1 root /volume1/music/Speziell/Philip_Maloney/bin/run.sh
Updates
03.01.2015
Anstatt dem umständlichen Herunterladen der einzelnen aac-Dateien kann mittels avconv direkt auf die m3u8 Playlist verwiesen werden und daraus eine mp3-Datei generiert werden:
avconv -i http://srfaodorigin-vh.akamaihd.net/i/world/maloney/a6056b76-a537-43f3-a9a2-9d72ba63f430.,q20,.mp4.csmil/master.m3u8 foo.mp3
Besten Dank an Philippe K. für den Tipp.
02.02.2015
ID grabber aktualisiert.
17.05.2016
Umbau zum Herunterladen des RTMP Streams anstatt wie vorher die einzelnen aac-Dateien.
Besten Dank an Manu für das Beispiel mit dem RTMP Stream.
09.08.2016
Die Zugriffsrechte auf den Streaming-Server wurden offenbar verbessert.
Dank dem Tipp (Siehe Kommentar) konnte das Script wieder zum Laufen gebracht werden. Besten Dank!
Alle bis heute existierenden Maloney-folgen (001-388) sind als Downloads mit dem Link
http://uu.canna.to/cpuser/links.php
in der Rubrik „Hörspiele“ verfügbar
Vielen Dank für diese Quelle. Der Link zum einen Teil der ersten 100 Folgen läuft allerdings leider ins Leere. Kennt jemand eine alternative Quelle für die ersten 100 Folgen?
Bei SRF scheint der Stream-Fetcher auch nicht mehr zu funktionieren (Python-Skript).
Folgendes bash-script funktioniert auch und braucht kein php:
https://gist.github.com/anonymous/3ba1b5a4998e5c3f7331438cd9cfd3e5
update: https://gist.github.com/anonymous/6c0572cbc0ec6653dc3f8623ba84bb56
Hallo Leute,
habe mich von hier inspirieren lassen und was ähnlichen in Python geschrieben. Für diejenige welche das bevorzugen könnt ihr folgendes Script anschauen.
https://github.com/tschinz/maloney_streamfetcher
tschinz
Ein schön aufgeräumtes Script (nicht wie mein Quick n‘ Dirty Hack).
Besten Dank für den Link!
Neues Problem:
*****************************************************************
* Downloading a Philip Maloney stream
* Copyright (c) 2015 by George Ruinelli
* Updates & Infos: http://www.ruinelli.ch/maloney
*****************************************************************
Found ID: „5460a0a3-3866-4c5f-89e2-f8da9f058b29“
Fetching Philipp Maloney Episode with ID 5460a0a3-3866-4c5f-89e2-f8da9f058b29
Fetching http://www.srf.ch/webservice/ais/report/audio/withLiveStreams/5460a0a3-3866-4c5f-89e2-f8da9f058b29.xml…
Title: „Access Denied“
Description: „“
Broadcasted: „“
Url:
Final mp3 file: – Access Denied.mp3
RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
ERROR: RTMP URL: No :// in url!
WARNING: Couldn’t parse the specified url (-o)!
ERROR: You must specify a hostname (–host) or url (-r „rtmp://host[:port]/playpath“) containing a hostname
Download completed
Conversion to MP3 completed
Adding ID3 Tags…
sh: 1: ../bin/mp3info: not found
sh: 1: ../bin/mp3info: not found
sh: 1: ../bin/mp3info: not found
sh: 1: ../bin/mp3info: not found
Completed
*****************************************************************
sh: 1: ../bin/mp3info: not found
*****************************************************************
Was mache ich falsch?
Grüße!
Es scheint so, als ob die URLs nun geblockt werden, wenn sie nicht von einem Webbrowser aufgerufen werden. Eigentlich verwendet der Script daher extra einen gültigen Agent, aber es scheint trotzdem nicht zu gehen. Auf die Schnelle sehe ich leider noch keine Lösung…
Lösche einfach folgende Zeilen aus dem Script:
curl_setopt( $ch, CURLOPT_USERAGENT, „Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1“ );
curl_setopt( $ch, CURLOPT_COOKIEJAR, $cookie );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $ch, CURLOPT_ENCODING, „“ );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_AUTOREFERER, true );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
curl_setopt( $ch, CURLOPT_TIMEOUT, $timeout );
curl_setopt( $ch, CURLOPT_MAXREDIRS, 10 );
einzig behalten musst du:
curl_setopt( $ch, CURLOPT_URL, $url );
Funktioniert so wieder!
Vielen, vielen Dank!
Danke!
Die Zeile
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
wird auch noch benötigt, damit die Meta-Daten korrekt in die TXT-Datei (und später in die ID3-Tags) geschrieben werden.
Hier noch ein vollständiger log, vielleicht hilfts ja:
*****************************************************************
* Downloading a Philip Maloney stream
* Copyright (c) 2015 by George Ruinelli
* Updates & Infos: http://www.ruinelli.ch/maloney
*****************************************************************
No ID given, downloading the latest stream
Try 0
Fetching http://www.srf.ch/sendungen/maloney...
Array
(
[0] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=48ff7e4f-afb8-456a-9173-b298843a0ea7″
[1] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=1623d308-8baf-4f73-b0c2-57554371839f“
[2] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=2a5f75a0-47c7-45a9-9f48-1009b8a8e90e“
[3] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=2da8f565-66c2-4e30-ab7b-8675bb54bdce“
[4] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=2277efe0-642f-4083-b31c-f686769b0fd4″
[5] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=2444de3e-240c-42a5-ba08-7653798a12b8″
[6] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=2c78c91e-30a4-4fe7-9b92-b846174264d7″
[7] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=5f6a85ff-b039-4876-b80a-bcc1d6368675″
[8] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=5efe02eb-96b2-43c6-a2ff-1bf2df1f9437″
[9] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=9563e9bc-4ffe-4e61-8867-e3a87839380b“
[10] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=13cf4607-537a-4c4d-9905-36db73d76f8a“
)
ID: 48ff7e4f-afb8-456a-9173-b298843a0ea7
Found ID: „48ff7e4f-afb8-456a-9173-b298843a0ea7“
Fetching Philipp Maloney Episode with ID 48ff7e4f-afb8-456a-9173-b298843a0ea7
Fetching http://www.srf.ch/webservice/ais/report/audio/withLiveStreams/48ff7e4f-afb8-456a-9173-b298843a0ea7.xml…
Title: „Die Frau im Keller“
Description: „Maloneys Klientin glaubt, dass einer ihrer Nachbarn eine Frau gefangen hält. Da ihr Verdacht mehr als nur vage ist, sucht Maloney den Nachbarn auf, um möglichst rasch zu einem Ergebnis zu kommen.“
Broadcasted: „Maloney vom 05.06.2016 11:10:00“
Url: rtmp://cp23910.edgefcs.net/ondemand/mp3:mpc/assets/audio/maloney/2016/6/2/643a219d-d9c7-4aaa-83ea-2eddb6592d9b
Final mp3 file: 2016-06-05 – Die Frau im Keller.mp3
RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
Failed to open file! ../tmp/stream_dump.flv
Download completed
Conversion to MP3 completed
Adding ID3 Tags…
sh: 1: ../bin/mp3info: not found
sh: 1: ../bin/mp3info: not found
sh: 1: ../bin/mp3info: not found
sh: 1: ../bin/mp3info: not found
Completed
*****************************************************************
sh: 1: ../bin/mp3info: not found
*****************************************************************
Hatte das selbe Problem
Zeile
exec(„$PATH_TO_RTMPDUMP -r $Url -o ../tmp/stream_dump.flv“);
ersetzen durch
exec(„$PATH_TO_RTMPDUMP -r $Url -o ./tmp/stream_dump.flv“);
ausserdem den Ordner tmp manuel erstellen.
Cheers
ah und natürlich
Zeile
exec(„$PATH_TO_FFMPEG -y -loglevel panic -stats -i ../tmp/stream_dump.flv -vn -c:a copy \“$mp3\““);
durch
exec(„$PATH_TO_FFMPEG -y -loglevel panic -stats -i ./tmp/stream_dump.flv -vn -c:a copy \“$mp3\““);
Noch eine Frage, habe ich die erlaubnis einen Fork des Scriptes erstellen? Sie haben da ja so eine Copyright Notiz zu Beginn des Scriptes.
Vielen Dank
Vielen Dank !
Hat so funktioniert.
Vielleicht lag es auch an meinen Zugriffsrechten.
Muss das mal überprüfen.
Auf jeden Fall klappt es jetzt so.
Es kommt natürlich darauf an, in welchem Verzeichnis Du dich gerade befindest.
Bevor ich den Script aufrufe, erstelle ich per Cron Job das tmp Verzeichnis (wenn es denn noch nicht existiert) und wechsle hinein. Und am Schluss räume ich wieder auf:
cd /home/user/Musik/Philipp_Maloney
mkdir -p tmp
cd tmp
php ../bin/download_maloney.php > fetch.log
rm *
Natürlich darfst Du das Script forken, ist ja schliesslich Open Source. Das Copyright hindert dich nicht daran. Was Du aber in jedem Fall machen musst ist, das ursprüngliche Copyright nicht zu entfernen…
Ich benutze Ubuntu 16.04. Beim Ausführen des Scripts zeigt er mir unter anderem „Failed to open file! ../tmp/stream_dump.flv“. Problem mit „RTMPDump v2.4“?
Bis Ubuntu 15.10 hat es noch super geklappt.
Grüße und ein Dankeschön für das Script
Hast Du die neuste Version genommen? Ich habe im Juni ein Update gemacht, weil es nicht mehr funktionierte.
Ansonsten würde ich einmal kontrollieren, ob die Datei tmp/stream_dump.flv überhaupt generiert wird. Ev. kann er den Ordner oder die Datei nicht erstellen, z.B. wegen ungenügenden Zugriffsrechten?
Geht wohl nicht mehr siehe output:
*****************************************************************
* Downloading a Philip Maloney stream
* Copyright (c) 2015 by George Ruinelli
* Updates & Infos: http://www.ruinelli.ch/maloney
*****************************************************************
No ID given, downloading the latest stream
Try 0
Fetching http://www.srf.ch/sendungen/maloney...
Array
(
[0] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=2277efe0-642f-4083-b31c-f686769b0fd4″
[1] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=2444de3e-240c-42a5-ba08-7653798a12b8″
[2] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=2c78c91e-30a4-4fe7-9b92-b846174264d7″
[3] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=5f6a85ff-b039-4876-b80a-bcc1d6368675″
[4] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=5efe02eb-96b2-43c6-a2ff-1bf2df1f9437″
[5] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=9563e9bc-4ffe-4e61-8867-e3a87839380b“
[6] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=13cf4607-537a-4c4d-9905-36db73d76f8a“
[7] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=62147e61-9ec2-4a87-b131-6f249ee7ef94″
[8] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=f9c25f95-52bb-4b4b-b71d-a5493a05c248″
[9] => href=“http://www.srf.ch/play/radio/popupaudioplayer?id=0250bd97-203f-4ec3-b068-1c98610964ae“
)
Found ID: „2277efe0-642f-4083-b31c-f686769b0fd4“
Fetching Philipp Maloney Episode with ID 2277efe0-642f-4083-b31c-f686769b0fd4
Fetching http://www.srf.ch/webservice/ais/report/audio/withLiveStreams/2277efe0-642f-4083-b31c-f686769b0fd4.xml…
Title: „Ein seltsames Paar“
Description: „Maloney erhält einen Anruf von einer Frau, die sich bedroht fühlt. Als Maloney sie aufsucht, empfängt ihn die Polizei. In der Wohnung liegt eine tote Frau.“
Broadcasted: „Maloney vom 08.05.2016 11:10:00“
Final mp3 file: 2016-05-08 – Ein seltsames Paar.mp3
Fetching …
Fetching …
Downloading parts (0)
Downloaded 0 parts
Merging parts with ffmpeg and save as mp3 (stream duration approx. 0 minutes = 0kB @ 128 kbits/s)…
Merging completed
Deleting temporary files…
Adding ID3 Tags…
Error opening MP3: 2016-05-08 – Ein seltsames Paar.mp3: No such file or directory
Error opening MP3: 2016-05-08 – Ein seltsames Paar.mp3: No such file or directory
Error opening MP3: 2016-05-08 – Ein seltsames Paar.mp3: No such file or directory
Error opening MP3: 2016-05-08 – Ein seltsames Paar.mp3: No such file or directory
Completed
*****************************************************************
Error opening MP3: 2016-05-08 – Ein seltsames Paar.mp3: No such file or directory
Looks like the mp3 stream is missing for new episodes, just a rtmp stream now.
Funktioniert das Script bei euch noch?
Sau blöde frage: du schreibst das Tool soll ab Kommandozeile gestartet werden. Also beispielsweise ./Script.php.
Wird ein Webserver und php dazu benötigt? (Apache o.ä?)
Wenn das so wär, wärs dann nicht sinnvoll das Script im Verzeichnis des Webservers zu erstellen, und durch einen Browser zu starten? (ergäbe natürlich div. Optionen wie im Anschluss des abgearbeiteten Scripts due bereits heruntergeladenen aufzulisten. Oder verstehe ich es falsch?
Du benötigst nur PHP, aber keinen Webserver, da es auf der Kommandozeile gestartet werden muss. Natürlich könntest Du es auch über einen Webserver starten. Dafür müsstest Du aber die Parameterübergabe überarbeiten. Ausserdem hat PHP mehrere Restriktionen, wenn es über einen Webserver gestartet wird, z.B. Zugriffsrechte und eine maximale Laufzeit von 30 Sekunden (könnte durch den Script verlängert werden).
Ich starte es wöchentlich über einen CRON-Job, deshalb ist ein Aufruf via Webserver für mich nicht sinnvoll.
Vielen Dank für dieses nützliche Script. Läuft prima unter Ubuntu.
sudo apt-get install php5-curl php5-cli ffmpeg mp3info
dekte bei mir alle Abhängigkeiten ab.
Dann noch $PATH_TO_ID_TAGGER = „/usr/bin/mp3info“; im Script anpassen und los gehts mit
php .php
Danke!
Script läuft auch unter Windows (Server 2012 R2 mit PHP installiert).
Die Tools wget, ffmpeg und mp3info gehören samt dependency’s aufs System (Pfad), oder in denselben Ordner wie das Script.
Im Script dann noch alle „rm -f“ in „del“ ändern.
Dann muss nur noch eine Zeile angepasst werden:
ALT: exec(„echo \“file $i-fixed.aac\“ >> filelist.txt“);
NEU: exec(„echo file $i-fixed.aac >> filelist.txt“); ffmpeg
Das Windows-Echo verhält sich da wohl etwas anders…
Danke auch an asdf – mit dem Offset-URL, und etwas gefrickel, lassen sich die älteren gut finden und herunterladen.
FYI: Du kannst auch diesen AJAX call für den Crawler verwenden: http://www.srf.ch/sendungen/maloney/layout/set/ajax/Sendungen/maloney/sendungen/(offset)/10
Der Offset ist optional und kann man anpassen. Dies wäre zumindest weniger HTML (schneller) und damit kommst Du auch an älteren Folgen.
greets
thx guys