13

Kann eine Chrome-Erweiterung für Streaming-Audio von den Tabs des Browsers empfangen werden? Ich möchte die Streaming-Audiodaten erfassen und dann analysieren.Chrome-Erweiterung zum Abhören und Aufzeichnen von Streaming-Audio

Dank

+0

Aus der Spitze meines Kopfes (und anfängliche googling unterstützt dies), kann ich keinen Weg finden, dies zu tun. Es klingt auch wie eine massive Sicherheitslücke, also kann ich mir nicht vorstellen, dass irgendein Browser es eilig hätte, es zu unterstützen. –

+0

Musst du auf Audio hören? Können Sie stattdessen nach Netzwerkanforderungen suchen? Funktioniert das auf jeder Site oder für eine bestimmte Site? Zielen Sie auf alle Plattformen oder nur auf eine? – Brad

+0

Nun möchte ich die Streaming-Audio-Daten (sagen wir von einer Online-Radio-Show) greifen und an einen Audio-Fingerabdruck-Dienst senden. Im Idealfall würde es auf jeder Website funktionieren und ich werde wahrscheinlich mit der Ausrichtung nur auf Chrome beginnen. – OneDimensionalmc

Antwort

10

Sie 3 Möglichkeiten versuchen könnte, tut weder das eine 100% ige Garantie geben Sie Ihre Bedürfnisse zu erfüllen.

Bevor ich auf detailliertere Beschreibungen eingehe, muss ich anmerken, dass Chrome-Erweiterungen keine praktischen Tools zum Arbeiten pro Verbindungsebene bieten - ausreichend niedrige Ebene, erforderlich für Stream-Erfassung. Das ist Absicht. Aus diesem Grunde ist der 1-st Weg ist:

  1. bei anderen Browsern zu betrachten, zum Beispiel Firefox, der Low-Level-APIs für die Verbindungen. Es ist bereits bekannt, dass sie von ähnlichen Erweiterungen verwendet werden. Sie können sich MediaStealer ansehen. Wenn Sie keine spezielle Anforderung zum Erstellen Ihres Systems in Chrome haben, sollten Sie möglicherweise zu Firefox wechseln.

  2. Sie eine Chrome-Erweiterung entwickeln, die dazwischen und HTTP-Anfragen über webRequest API, analysiert deren Header und extrahiert Medien URLs (wie mit Audio/MPEG MIME-Typ, beispielsweise in der HTTP-Header). Nur für ein kurzes Beispiel für Code, den Sie machen, schauen Sie sich die folgende SO-Frage an - How to change response header in Chrome. Mit der URL können Sie den entsprechenden Medien-Download als Datei erzwingen. Es landet im Standard-Download-Ordner und hat möglicherweise einen unfreundlichen Namen. (Ich habe eine solche Erweiterung gemacht, aber ich habe keine Anforderungen für die weitere Verarbeitung). Wenn Sie solche Dateien weiter verarbeiten müssen, kann es eine Herausforderung sein, sie im Ordner zu überwachen und zusätzliche Analysen in einem separaten Programm auszuführen.

  3. Sie können sich NPAPI-Plugins im Allgemeinen und ihre streaming APIs im Besonderen ansehen. Ich kann mir vorstellen, dass du ein Plugin erstellst, das wiederum für den audio/mpeg MIME-Typ registriert ist und die Daten über NPP_NewStream, NPP_WriteReady und NPP_Write Methoden erhält. Das Plugin kann in eine Chrome-Erweiterung eingebunden werden. Obwohl ich NPAPI-Plugins gemacht habe, habe ich diese API nie benutzt, und ich bin mir nicht sicher, ob es wie erwartet funktioniert. Nichtsdestotrotz erwähne ich diese Möglichkeit hier für CompleteNees. Diese Methode erfordert etwas anderes Codieren als das Web-Coding, also C/C++. NB. NPAPI Plugins sind veraltet und nicht in Chrome seit September unterstützt 2015

Unter Berücksichtigung, dass Sie einige externe haben (nach Erweiterung) „Fingerabdrucks Service“ im Auge, die wie eine intelligente Datenverarbeitung klingt, Sie kann daran interessiert sein, das gesamte System aus einem Browser zu erstellen. Sie könnten beispielsweise einen HTTP-Proxy verwenden, um Medien vom Weiterleiten von Datenverkehr zu befreien.

1

Mein privoxy hat folgendes Protokoll:

2013-08-28 18:25:27.953 00002f44 Request: api.audioaddict.com/v1/di/listener_sessions.jsonp?_method=POST&callback=_AudioAddict_WP_ListenerSession_create&listener_session%5Bid%5D=null&listener_session%5Bis_premium%5D=false&listener_session%5Bmember_id%5D=null&listener_session%5Bdevice_id%5D=6&listener_session%5Bchannel_id%5D=178&listener_session%5Bstream_set_key%5D=webplayer&_=1377699927926 
2013-08-28 18:25:27.969 0000268c Request: api.audioaddict.com/v1/ping.jsonp?callback=_AudioAddict_WP_Ping__ping&_=1377699927928 
2013-08-28 18:25:27.985 00002d48 Request: api.audioaddict.com/v1/di/track_history/channel/178.jsonp?callback=_AudioAddict_TrackHistory_Channel&_=1377699927942 
2013-08-28 18:25:54.080 00003360 Request: pub7.di.fm/di_progressivepsy_aac?type=.flv 

Also habe ich die Stream URL und aufzeichnen:

D:\Profiles\user\temp>wget pub7.di.fm/di_progressivepsy_aac?type=.flv 
--18:26:32-- http://pub7.di.fm/di_progressivepsy_aac?type=.flv 
      => `[email protected]=.flv' 
Resolving pub7.di.fm... done. 
Connecting to pub7.di.fm[67.221.255.50]:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: unspecified [video/x-flv] 

    [     <=>    ] 1,234,151  8.96K/s 

ich die Datei bekam, die in jedem Multimedia pleer reproduziert werden können.

2

Mac OSX Lösung mit Soundflower: http://rogueamoeba.com/freebies/soundflower/

Nach der Installation von Soundflower als separates Audiogerät in den Klangeinstellungen (Apple> Systemeinstellungen> Ton) erscheinen soll.Leiten Sie den Ton des Computers auf die 2-Kanal-Option um (Stereo, 16-Kanal ist Surround), und stellen Sie den Audioeingang in einer DAW wie "Audacity" als Soundflower ein. Nun sollte der Sound zu Ihrer DAW geleitet werden, bereit für die Aufnahme.

Hinweis: Wenn Sie den Ton von den internen Lautsprechern zu Soundflower umgeleitet haben, können Sie nur den Ton hören, wenn die App 'soundflowerbed' tatsächlich geöffnet ist. Sie wissen, dass es offen ist, wenn sich in der oberen rechten Taskleiste ein 8-beiniger Blob befindet. Wenn Sie auf dieses Symbol klicken, erhalten Sie die Sound-Flower-Optionen.

2

Wenn Sie eine Chrome-Erweiterung schreiben, können Sie mit dem Chrome tabCapture API Audio aufnehmen.

chrome.tabCapture.capture({audio: true}, function(stream) { 
    var recorder = new MediaRecorder(stream); 
    [...] 
}); 

Der Rest ist eine Übung für den Leser; MDN verfügt über more documentation zur Verwendung von MediaRecorder.

Wenn diese Frage 2013 gestellt wurde, gab es weder chrome.tabCapture noch MediaRecorder.

Verwandte Themen