Подтвердить что ты не робот

Расширение Chrome для прослушивания и записи потокового аудио

Возможно ли, чтобы расширение Chrome прослушивало потоковое аудио с любой вкладки браузера? Я хотел бы захватить потоковые аудиоданные, а затем проанализировать их.

Спасибо

4b9b3361

Ответ 1

Вы можете попробовать 3 способа, ни один из них не гарантирует 100% -ную гарантию для удовлетворения ваших потребностей.

Прежде чем перейти к более подробным описаниям, я должен отметить, что расширения Chrome не предоставляют удобные инструменты для работы на уровне подключения - достаточно низкий уровень, необходимый для захвата потока. Это по дизайну. Вот почему 1-й способ:

  • Посмотрите на другие браузеры, например Firefox, который предоставляет API-интерфейсы низкого уровня для соединений. Они уже известны тем, что используются аналогичными расширениями. Вы можете взглянуть на MediaStealer. Если у вас нет особых требований к созданию вашей системы в Chrome, перейдите в Firefox.

  • Вы можете разработать расширение Chrome, которое перехватывает HTTP-запросы с помощью webRequest API, анализирует их заголовки и извлекает мультимедийные URL-адреса (например, содержащие MIME-тип аудио /mpeg, например, в HTTP-заголовках). Просто для быстрого примера кода вы смотрите на следующий вопрос SO - Как изменить заголовок ответа в Chrome. Имея URL-адрес, вы можете принудительно загрузить соответствующий файл в виде файла. Он поместится в папку загрузки по умолчанию и может иметь недружественное имя. (Я сделал такое расширение, но у меня нет требований для дальнейшей обработки). Если вам необходимо продолжить обработку таких файлов, может быть проблемой следить за ними в папке и выполнять дополнительный анализ в отдельной программе.

  • Вы можете посмотреть плагины NPAPI в целом и их потоковые API в частности. Я могу представить, что вы создали плагин, зарегистрированный для, опять же, аудио /mpeg MIME-тип, и получает данные с помощью методов NPP_NewStream, NPP_WriteReady и NPP_Write. Плагин можно обернуть в расширение Chrome. Хотя я сделал плагины NPAPI, я никогда не использовал этот API, и я не уверен, что он будет работать так, как ожидалось. Тем не менее, я упоминаю эту возможность здесь для полных. Этот метод требует некоторого кодирования, отличного от веб-кодирования, что означает C/С++. NB. Плагины NPAPI устарели и не поддерживаются в Chrome с сентября 2015 года.

Принимая во внимание, что у вас есть какая-либо внешняя (для расширения) услуга "отпечатков пальцев", которая звучит как интеллектуальная обработка данных, вам может быть интересно создать всю систему из браузера. Например, вы могли бы, возможно, задействовать HTTP-прокси-сервер, сохраняя средства передачи трафика.

Ответ 2

Если вы пишете расширение Chrome, вы можете использовать Chrome tabCapture API для записи звука.

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

Остальное остается в качестве упражнения для читателя; MDN больше документации о том, как использовать MediaRecorder.

Когда этот вопрос задавался в 2013 году, не было ни chrome.tabCapture, ни MediaRecorder.

Ответ 3

Мой privoxy имеет следующий журнал:

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

Итак, я получил URL-адрес потока и записал его:

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

Я получил файл, который можно воспроизвести в любом мультимедийном плеере.

Ответ 4

Решение Mac OSX с использованием soundflower: http://rogueamoeba.com/freebies/soundflower/

После установки soundflower он должен появиться как отдельное аудиоустройство в настройках звука (apple > system preferences > sound). Переключите компьютерный аудиосигнал на параметр 2ch (стерео, 16ch - объемный), затем внутри DAW, например "смелость", установите аудиовход в качестве звукового сигнала. Теперь звук должен быть направлен на ваш DAW, готовый для записи.

Примечание. Отвлекая звук от внутренних динамиков до звукового сигнала, вы сможете слышать звук только в том случае, если приложение "soundflowerbed" действительно открыто. Вы знаете, что он открыт, если в верхней правой панели задач есть 8-луночный кадр. Нажатие на этот значок дает вам варианты цветового звука.