Как iTunes анализирует файлы m3u

У меня есть файл M3U здесь. Когда я скачал файл и открыл его в iTunes, программа успешно начала воспроизводить потоковое аудио и показала мне имя исполнителя и название песни. Более того, iTunes отправляет уведомление об изменении трека и показывает имя исполнителя и название песни!

Интересно, как iTunes догадывается об этом? В файле нет списка исполнителей, есть только ссылка на потоковое аудио. Когда я иду по этому адресу, указанному в файле, я вижу веб-страницу с некоторой информацией. ITunes анализирует эти страницы и ищет имя исполнителя? Не думай так...

Может кто-нибудь объяснить мне, как получить информацию о песне из файла m3u, который содержит только ссылку на аудиопоток, как это делает iTunes? Пример кода в Obj-C или Swift о том, как это сделать программно, будет высоко оценен!

1 ответ

Это происходит в самом аудио потоке (с использованием протокола Icecast), а не из файла m3u. Вы можете доказать это, открыв файл m3u, взяв HTTP-URL-адрес внутри, и поместив его в VLC, и вы увидите, что данные трека все еще там.

Есть немного больше информации по этому вопросу: как извлечь потоковые "сейчас воспроизводимые" данные, встроенные в аудио (радио) поток Icecast на Samsung Smart-TV

В этом вопросе также есть кое-что специфичное для obj-c: Получение метаданных SHOUTcast на Mac

И объяснение протокола здесь: http://www.smackfu.com/stuff/programming/shoutcast.html

Также, если вам интересно, как я выяснил, что поток является Icecast, я открыл Wireshark и отфильтровал его по "ip.src == 79.120.77.11", а затем запустил поток и в одном из первых нескольких пакетов. было немного данных, начинающих "ледяное уведомление" и упоминание о Shoutcast. Пару пакетов позже также есть название радиостанции.

Другие вопросы по тегам