HomeLinuxPhilip Maloney Stream Fetcher

Comments

Philip Maloney Stream Fetcher — 24 Comments

  1. 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 );

  2. 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…

  3. 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?

  4. 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

  5. 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.

  6. 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

  7. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *