Audiophile's Software

Прослушивание музыки с YouTube. Генератор сue для YouTube

Дата обновления: 07 Декабря 2017
Как загрузить треклист YouTube в foobar2000
2017-12-07T16:54
Audiophile's Software

Последнее время я довольно часто слушаю музыку на YouTube. Когда-то уже делал детальный разбор качества звука для этого сервиса и выяснил, что для многих видео присутствуют весьма качественные звуковые дорожки Opus 128+ kbps.

Сперва я слушал музыку прямо на сайте, затем качал Opus дорожку с помощью SaveFrom.net и загружал её в foobar2000, но в конце концов вспомнил о замечательном плагине YouTube Source. А забыл я о нём по той причине, что когда писал инструкцию, не предполагал, что YouTube всерьёз может выступать как сервис для распространения чисто музыкального материала. Сейчас же я понял, что фактически на YouTube огромное количество музыки, главным образом выкладываемой современными развивающимися коллективами, музыкантами и диджеями. Похоже, в этом YouTube практически не уступает SoundCloud, но при этом значительно превосходит его по качеству звучания.

Слушаю я по большей части разные компиляции и миксы, где присутствуют треки разных исполнителей. Выглядит это примерно так:

Да, плагин подгружает имя исполнителя (для всего видео), название микса и даже обложку — за это разработчику спасибо. Но нет самого главного — списка треков. Непонятно, что играет в данный момент, нельзя заскробблить трек на Last.fm; чтобы найти название текущего трека, нужно открывать страницу видео, искать таймкод, вычислять... В общем, крайне неудобно.

И я решил, что нужно что-то с этим делать. Ведь по сути вся информация, как правило, в наличии. Например, вот такой плейлист из описания видео:

0:00 - Archive Mind - Vivid Dreamer
03:42 -and nobody cared - Lost Highway Theme
04:42 - Philanthrope & Devaloop - Bomdigi
06:49 - My Neighbor is - Guru
09:10 - Vintage Beats - Organic Material
12:23 - 9 Lazy 9 - Electric Lazyland
15:42 - Nyctophiliac - The Cursed Gospel
17:26 - ep7a - Disbelieve
20:10 - Enigmatical - Thinkerman
21:41 - Dr. Quandary - No Flower
23:23 - DJ Cam - Dieu reconnaitra les siens
26:10 - deeB - The Grand Illusion
28:26 - Gramatik - Stairway to Hip Hop Heaven
31:33 - DJ Cam Quartet - Boss Guitar
35:23 - Vintage Beats - Had to do it
37:54 - Soupbox - Playin Beats
39:16 - Oliver Lowe - Autumn
40:09 - Mr. Moods - No Record Deal with DJ Hotwings
42:27 - Nyctophiliac - Blunted Session
44:26 - Red Snapper - The Sleepless
49:07 - Port Electric - Pollution
54:20 - Coldcut - Autumn Leaves

Отлично, у нас есть время начала, имя исполнителя и название трека. Осталось как-то передать эту информацию в плейлист плеера. Но как? Первым (и, как оказалось, верным) решением, которое мне пришло в голову, было создание файла Cue sheet. Некоторое время у меня ушло на то чтобы вспомнить структуру Cue, еще некоторое время на копипастинг значений в Блокноте, и — вуаля — файл Cue готов:

FILE videoplayback.webm WAVE
TRACK 01 AUDIO
PERFORMER "Archive Mind"
TITLE "Vivid Dreamer"
INDEX 01 00:00:00
TRACK 02 AUDIO
PERFORMER "-and nobody cared"
TITLE "Lost Highway Theme"
INDEX 01 03:42:00
TRACK 03 AUDIO
PERFORMER "Philanthrope & Devaloop"
TITLE Bomdigi
INDEX 01 04:42:00
TRACK 04 AUDIO
PERFORMER "My Neighbor is"
TITLE Guru
INDEX 01 06:49:00
TRACK 05 AUDIO
PERFORMER "Vintage Beats"
TITLE "Organic Material"
INDEX 01 09:10:00
TRACK 06 AUDIO
PERFORMER "9 Lazy 9"
TITLE "Electric Lazyland"
INDEX 01 12:23:00
TRACK 07 AUDIO
PERFORMER Nyctophiliac
TITLE "The Cursed Gospel"
INDEX 01 15:42:00
TRACK 08 AUDIO
PERFORMER ep7a
TITLE Disbelieve
INDEX 01 17:26:00
TRACK 09 AUDIO
PERFORMER Enigmatical
TITLE Thinkerman
INDEX 01 20:10:00
TRACK 10 AUDIO
PERFORMER "Dr. Quandary"
TITLE "No Flower"
INDEX 01 21:41:00
TRACK 11 AUDIO
PERFORMER "DJ Cam"
TITLE "Dieu reconnaitra les siens"
INDEX 01 23:23:00
TRACK 12 AUDIO
PERFORMER deeB
TITLE "The Grand Illusion"
INDEX 01 26:10:00
TRACK 13 AUDIO
PERFORMER Gramatik
TITLE "Stairway to Hip Hop Heaven"
INDEX 01 28:26:00
TRACK 14 AUDIO
PERFORMER "DJ Cam Quartet"
TITLE "Boss Guitar"
INDEX 01 31:33:00
TRACK 15 AUDIO
PERFORMER "Vintage Beats"
TITLE "Had to do it"
INDEX 01 35:23:00
TRACK 16 AUDIO
PERFORMER Soupbox
TITLE "Playin Beats"
INDEX 01 37:54:00
TRACK 17 AUDIO
PERFORMER "Oliver Lowe"
TITLE Autumn
INDEX 01 39:16:00
TRACK 18 AUDIO
PERFORMER "Mr. Moods"
TITLE "No Record Deal with DJ Hotwings"
INDEX 01 40:09:00
TRACK 19 AUDIO
PERFORMER Nyctophiliac
TITLE "Blunted Session"
INDEX 01 42:27:00
TRACK 20 AUDIO
PERFORMER "Red Snapper"
TITLE "The Sleepless"
INDEX 01 44:26:00
TRACK 21 AUDIO
PERFORMER "Port Electric"
TITLE Pollution
INDEX 01 49:07:00
TRACK 22 AUDIO
PERFORMER Coldcut
TITLE "Autumn Leaves"
INDEX 01 54:20:00

Я прописал в этом файле скачанный с YouTube videoplayback.weba (предварительно сменив расширение на webm) и открыл его через foobar2000 — всё работает! Сразу же я попробовал добавить микс через File->Add location, после чего прикрепил к треку Cue через Utils->Edit cuesheet в контекстном меню. Плейлист загрузился, однако имя артиста оставалось одинаковым для всех треков (тем, которое определил плагин). Эта проблема решилась предварительным удалением из треков имени исполнителя и повторным прикреплением Cue (потом я просто отключил автозаполнение этих тегов в настройках Youtube Source).

Всё бы хорошо, но я потратил на все эти манипуляции более получаса времени. Да, конечно, создавать cue вручную — долгая, однообразная работа. Так почему бы не поручить её программе?

Воспользовавшись знаниями веб-программирования и своим сервером audiophilesoft.com, я написал программный модуль, который выполняет автоматический парсинг YouTube плейлиста с помощью регулярных выражений, вытаскивает оттуда нужные значения и записывает их в cue-файл. Форма для автоматического преобразования находится по адресу audiophilesoft.com/generate_cue:

Просто скопируйте в поле ввода плейлист с YouTube, нажмите Get cue sheet, и сервер отдаст вам готовый файл cue. Затем этот файл можно положить рядом со скачанным с YouTube аудиофайлом (если вы указали в форме его имя) или же прикрепить к треку YouTube source через Utilities->Edit cuesheet.

Прошу заметить, что пока что скрипт работает в тестовом режиме, и в нём могут быть ошибки. На данный момент скрипт понимает плейлисты с треками вида ((0)1:)(0)2:(0)3( -) (Artist -) Title, где в скобках указаны фрагменты, которые можно опустить. То есть наличие количества часов и имени исполнителя опционально, единицы времени можно указывать без нуля впереди; между таймкодом и именем артиста/названием трека может быть отбитая пробелами черта. Роль черты может играть длинное тире, короткое тире или символ дефисоминуса с клавиатуры.

Кстати, уже начав писать модуль, я вдруг вспомнил, что по спецификации cue не поддерживает таймкоды больше 99 мин 59 с. Приятным сюрпризом оказалось то, что в foobar2000 это ограничение не действует — значение минут может быть и трёхзначным, так что можно генерировать cue для миксов продолжительностью более полутора часов.

В общем, я надеюсь, что этот скрипт пригодится кому-то кроме меня. Пишите ваши отзывы, багрепорты и предложения по улучшению.

P. S. В ближайшее время хочу пообщаться с разработчиком Youtube Source — возможно, он включит автопарсинг описания и генерацию плейлиста foobar2000 в свой плагин. Это было бы логичнее и проще.

Добавлено: я написал разработчику и получил ответ. Он действительно планирует добавить в скором времени парсинг описания видео для автоматического формирования треклиста.

Информация от спонсора

ХАСЛОГ: каталог файлов. Здесь можно выбрать и скачать бесплатные программы для Windows. Для каждой программы имеются подробное описание и скриншоты.

 
   
Добавил: Audiophile | Просмотров: 429 | Рейтинг: 5.0/5, голосов: 2
Комментариев: 22
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
0   Спам
[12] master (12 Декабря 2017 20:15)
привет
Тарас, а зачем скачивать то файлы? на мой взгляд, вся прелесть этого плагина как раз и заключается в онлайн проигрывании своих плейлистов, может я чего не понял
и я тоже запал на эту мульку с YouTube могу если тебе интересно поделится своим решением
могу кинуть ссыль тебе в личку на мой сайт где я подробно описываю весь процесс по потоковому радио в фубар
вообще ищу простые решения

зы
мы с тобой в друзьях на FB  music
0  
[13] Audiophile (12 Декабря 2017 20:29)
Audiophile
Скачивать - чтобы слушать в оффлайне. Или порезать на треки и слушать на телефоне, например. Но я и не говорю, что скачивать аудиофайл обязательно.
0   Спам
[14] master (12 Декабря 2017 20:35)
Цитата
Просто скопируйте в поле ввода плейлист с YouTube, нажмите Get cue sheet, и сервер отдаст вам готовый файл cue. Затем этот файл можно положить рядом со скачанным с YouTube аудиофайлом (если вы указали в форме его имя) или же прикрепить к треку YouTube source через Utilities->Edit cuesheet.
вот 
ладно, это понятно, тогда зачем нужен куе файл не пойму?
ведь все это дело хоть качай хоть не качай будет потреково
0  
[15] Audiophile (12 Декабря 2017 20:38)
Audiophile
Как вы добьётесь потрекового отображения в плеере вот такого микса без Cue файла?
https://www.youtube.com/watch?v=_RJmYacpSoc
0   Спам
[16] master (12 Декабря 2017 20:42)
понятно, а теги треков будут отображаться в проигрывателях?
0  
[17] Audiophile (12 Декабря 2017 20:45)
Audiophile
Теги треков? При проигрывании через CUE вся иноформация о треках прописана в cue. Да и откуда теги для каждого трека, если файл-источник для всего микса один?
0   Спам
[18] master (12 Декабря 2017 20:51)
ну так качаем те конвертируем "файл-источник для всего микса" и слушаем ничем больше не заморачиваясь
а конвертировать то в WAV?
сам знаешь это не дело
ну только если очень надо
блин как то все это..
0  
[19] Audiophile (12 Декабря 2017 21:30)
Audiophile
Не понял. Вы о чем? Я говорил о конвертации? О конвертации в WAV??
0   Спам
[20] master (12 Декабря 2017 22:15)
не не Тарас это я говорю
можно я на примере, например, нужно мне скачать, то есть конвертировать музыку с ютуб средствами фубар
первое нужно выбрать формат так?
ну не mp3 же?
выбираю WAV или FLAC
вот и говорю не дело это
Тегов тоже как бы не предвидится 
Цитата
а зачем скачивать то файлы? на мой взгляд, вся прелесть этого плагина как раз и заключается в онлайн проигрывании своих плейлистов, может я чего не понял

куе файл тоже как то бесполезен получается
вот не вариант, прости со всем уважением к тебе или я просто чего-то не улавливаю
0  
[21] Audiophile (12 Декабря 2017 22:21)
Audiophile
Вы что-то серьёзно не улавливаете. Причем тут FLAC и WAV, если музыка на YouTube изначально в lossy (opus, aac, vorbis)??
Если вам нужно конвертировать потреково для телефона - генерируете Cue, присовокупляете его в фубаре к видео Youtube, как я здесь описал, и потом обычным способом конвертируете в любой lossy формат - получатся отдельные файлы для каждого трека, с тегами естественно (занчения будут взяты из cue). Скорей всего можно даже и не конвертировать, а просто скачать Opus или AAC и порезать его по Cue на части (для этого есть утилиты консольные, но там нужно разбираться).
0   Спам
[22] master (12 Декабря 2017 22:29)
с тегами?
это другое дело
аналогично с форматами и именно скачать
я пытался вам сказать про нежелательную lossy перекодировку

Спасибо за разъяснения буду с нетерпением ждать, что у васполучится в данном направлении
0   Спам
[11] 2500k (11 Декабря 2017 23:00)
афигеть, и эту всю красоту можно сразу конвертировать из плейлиста в удобный формат, если что O_O фубар не перестаёт удивлять =) ждем нормальной поддержки плейлистов. молодец Админ, что написал ему.
0   Спам
[4] anta777 (09 Декабря 2017 15:38)
А что будет выше по качеству при скачке с youtube - opus 160 , но 48000 или
AAC 128, но 44100 ?
0  
[5] Audiophile (09 Декабря 2017 15:40)
Audiophile
Частота дискретизации в lossy вообще роли не играет (если она не ниже 44100 Гц). Opus значительно качественней AAC - делайте выводы.
0   Спам
[6] anta777 (09 Декабря 2017 16:07)
А ресемплер не испортит качество opus ?
Ведь , если исходник был в 44100, то для получения 48000 применяется ресемплер, неизвестно как настроенный.
0  
[7] Audiophile (09 Декабря 2017 17:03)
Audiophile
Очень даже известно. Opus использует качественно отстроенный Speex resampler.
Вот тут есть о частоте семплирования: https://audiophilesoft.ru/publ/audiocoding/opus_faq/9-1-0-313
0   Спам
[1] 2500k (08 Декабря 2017 17:45)
Добрый день! разве не такое качество выдает MPC Black Edition если в качестве потока выбрать WebM?



а сейчас заглянул, пишут там vorbis. ну там и aac сносный на 720p как по мне) комфорт побеждает все таки) Спасибо за интересный гайд, из за него зарегистрировался ;)

p.s. и не все есть в opus вроде, некоторые подгружаются все равно в aac
0  
[2] Audiophile (08 Декабря 2017 20:21)
Audiophile
У вас какой-то плагин стоит? Я скопировал ссылку на WebM 360 в MPC, у меня в "Перейти" ничего нет.
0   Спам
[3] 2500k (08 Декабря 2017 21:51)
у меня mpc black edition, там плагин уже в коробке. там выставлятете качество видео, я просто скопировал ссылку своего плейлиста на ютубе. в BE так же грамотней реализован вывод звука через wasapi
0   Спам
[8] Rollinnn (09 Декабря 2017 18:34)
Rollinnn
Какой аудио поток подцепит MPC-BE, взависит от того, что выставлено в настройках в разделе Воспроизведение->YouTube->Предпочитаемый формат. Для mp4 аудио будет в aac, для WebM в Opus. Это на свежих видео.
Битрейт аудио, возможно, зависит от того, какое предпочтительное разрешение видео выбрано (для низких разрешений же YouTube по умолчанию и аудио отдаёт хуже качеством), но это я не проверял.
0  
[9] Audiophile (09 Декабря 2017 20:27)
Audiophile
Всё равно MPC - не самый лучший вариант. Соль Youtube Source в том, что можно юзать вывод и DSP foobar2000. Да и плейлист в MPC, мягко говоря, не очень.
0   Спам
[10] 2500k (09 Декабря 2017 22:16)
я конечно топить за тот или иной плеер не буду, но MPC тоже достаточно удобный, плейлист можно тоже открытым сделать и убрать в трей.