Question Extension Chrome pour écouter et capturer les flux audio en continu


Est-il possible pour une extension Chrome d’écouter du streaming audio depuis n’importe quel onglet du navigateur? Je voudrais capturer les données audio en streaming et ensuite les analyser.

Merci


14
2018-03-19 21:52


origine


Réponses:


Vous pouvez essayer 3 façons, et aucune ne fournit une garantie à 100% pour répondre à vos besoins.

Avant d'entrer dans des descriptions plus détaillées, je dois noter que les extensions Chrome ne fournissent pas d'outils pratiques pour travailler par niveau de connexion - suffisamment niveau faible, requis pour la capture de flux. C'est par conception. C'est pourquoi la 1ère voie est:

  1. Pour regarder d'autres navigateurs, par exemple Firefox, qui fournit des API de bas niveau pour les connexions. Ils sont déjà connus pour être utilisés par des extensions similaires. Vous pouvez regarder MediaStealer. Si vous n'avez pas besoin de créer votre système sur Chrome, vous devez éventuellement passer à Firefox.

  2. Vous pouvez développer une extension Chrome, qui intercepte les requêtes HTTP au moyen de webRequest API, analyse leurs en-têtes et extrait les URL des médias (telles que le type MIME audio / mpeg, par exemple, dans les en-têtes HTTP). Juste pour un exemple rapide de code, vous regardez la question SO suivante - Comment changer l'en-tête de réponse dans Chrome. Ayant l'URL, vous pouvez forcer le téléchargement du support approprié en tant que fichier. Il va atterrir dans le dossier de téléchargements par défaut et peut avoir un nom peu convivial. (J'ai fait une telle extension, mais je n'ai pas d'exigences pour le traitement ultérieur). Si vous devez traiter davantage de tels fichiers, il peut être difficile de les surveiller dans le dossier et d’effectuer des analyses supplémentaires dans un programme distinct.

  3. Vous pouvez regarder les plugins NPAPI en général, et leurs API de streaming en particulier. Je peux imaginer que vous créez un plug-in enregistré pour, encore une fois, le type MIME audio / mpeg, et reçoit les données via NPP_NewStream, NPP_WriteReady et NPP_Write méthodes. Le plug-in peut être intégré dans une extension Chrome. Bien que j'ai créé des plugins NPAPI, je n'ai jamais utilisé cette API et je ne suis pas sûr que cela fonctionne comme prévu. Néanmoins, je mentionne cette possibilité ici pour les complets. Cette méthode nécessite un codage autre que le codage Web, ce qui signifie C / C ++. NB Les plug-ins NPAPI sont obsolètes et non pris en charge dans Chrome depuis septembre 2015.

Étant donné que vous avez en tête un service externe de prise d'empreinte (à l'extension), qui ressemble à un traitement de données intelligent, vous pouvez être intéressé par la création de tout le système à partir d'un navigateur. Par exemple, vous pourriez, éventuellement, impliquer un proxy HTTP, en évitant que le média ne passe le trafic.


10
2018-04-11 12:45



Solution Mac OSX utilisant soundflower: http://rogueamoeba.com/freebies/soundflower/

Après l'installation de soundflower, il devrait apparaître comme un périphérique audio distinct dans les préférences audio (apple> préférences système> son). Déviez l’audio de l’ordinateur sur l’option 2ch (stéréo, 16ch est surround), puis dans une DAW, telle que «audacity», définissez l’entrée audio comme soundflower. Le son doit maintenant être acheminé vers votre DAW pour l’enregistrement.

Remarque: après avoir transféré l'audio des haut-parleurs internes vers Soundflower, vous ne pourrez entendre le son que si l'application «soundflowerbed» est réellement ouverte. Vous savez qu'il est ouvert s'il y a un blob à 8 pattes dans la barre des tâches en haut à droite. En cliquant sur cette icône, vous obtenez les options de fleurs sonores.


3
2018-02-21 20:34



Si vous écrivez une extension Chrome, vous pouvez utiliser le API Chrome tabCapture pour enregistrer de l'audio.

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

Le reste est laissé comme exercice au lecteur; MDN a plus de documentation sur la façon d'utiliser MediaRecorder.

Lorsque cette question a été posée en 2013, ni chrome.tabCapture ni MediaRecorder n'existaient.


3
2017-12-23 19:18



Mon domaine privé a le journal suivant:

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

J'ai donc l'URL du flux et l'enregistre:

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
           => `di_progressivepsy_aac@type=.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

J'ai le fichier qui peut être reproduit dans n'importe quel format multimédia.


1
2017-08-28 14:32