Комментарии 39
У меня первоначально была идея сделать скачивание музыки из плейлистов, однако если использовать ссылки на аудиодорожки гугла, то там надо будет скачанный webm конвертировать в mp3 с помощью ffmpeg. На моем слабом пк процесс для одного ролика занимал 40сек. Поэтому есть второй вариант — конвертировать сторонними сервисами на сайтах с помощью селениум, а потом извлекать ссылки на файл и скачивать. Далее этот файл с названием песни попадает в папку с названием плейлиста. Однако процесс по-прежнему долгий, а еще я перестал сохранять музыку на yt music, поэтому уже не надобно
Если это так, то это очень круто, потому что это повысит скорость исполнения скрипта. Возможно я его доделаю и начну делать gui.
Сейчас проверил, не совсем так, как нужно работает. Для компьютеров разницы особо нет, что слушать webm или m4a. Из минусов то, что музыку из YT music скачать не получается, youtube-dl пишет, что видео форматы не найдены. Музыку хотел для плеера конвертировать, но увы там нет m4a.
с её помощью можно сразу конвертить в mp3.
YouTube API, конечно, наилучший вариант, если у вас какое-то свое приложение или проект, но там требуется зарегистрировать приложение и т.д.Если имеется аккаунт Google, всё можно получить бесплатно за считаные секунды, а именно: создать проект и активировать YouTube API.
В «пробной» версии вам нужно постоянно авторизовываться для использования апиЕсть и другой путь: создать ключ API и использовать его в строке запроса (то есть,
&key=YOUR_KEY
).еще там присутствует быстро заканчиваемая квотаБесплатная ежедневная квота это 10000 кредитов, а один кредит может вернуть до 50 результатов. Правда, многое зависит от того, каких данных нужно получить (например, получение статистики для одного видеоролика стоит 3 кредитов). Поэтому важно внимательно читать документацию и выбрать только те данные, которые вам необходимы. Также, не забывайте, что некоторые запросы позволяют получать данные для 50 видеороликов одновременно (то есть, это выгоднее чем получить данные для каждого ролика по отдельности). Если 10000 кредитов не хватают, можно испытать удачу и запросить увеличения квоты.
- Под 'зарегистрировать приложение' я имел в виду заполнить анкету гуглу и отправить на модерацию. При регистрации от вас требуют защищенный сайт с пользовательским соглашением.
- Спасибо, не знал.
- Да, я знаю о параметре кол-ва получаемых данных, я их выкручивал на максимум. Все же квоты не хватит для массового использования. Пользователю, конечно, хватит, если он будет пользоваться своим личным.
К тому же, может кто-то без гугла живет.
Думаю, тут некий оффтоп, ибо статья не обсуждает возможности YouTube API. Если вам нравится YouTube API, то используйте. Статья лишь описывает парсинг ютуба стандартными библиотеками.
Ничего не имею против альтернатив, благодарю за исследование
На один аккаунт можно создать 10 проектов. Квоты даются только на 1 проект, или на аккаунт?
Если имеется аккаунт Google, всё можно получить бесплатно за считаные секунды, а именно: создать проект и активировать YouTube API.
"Бесплатно и за считанные секунды" можно получить только API Key. С его помощью можно получать публичные данные с каналов.
Какая-то часть Youtube Data API требует авторизацию и тут нужно получать OAuth 2.0 Client ID. И сразу его получить не получится. Нужна либо верификация приложения, которая может продлиться до 6 недель, либо взять GSuite за минимум $6 в месяц, в этом случае тоже не быстро, воспользоваться можно будет через месяц и после оплаты $30 за GSuite и только для внутреннего использования.
Недавно начал разбираться с этим API, поправьте, если что-то неправильно написал.
Какая-то часть Youtube Data API требует авторизацию и тут нужно получать OAuth 2.0 Client ID. И сразу его получить не получится. Нужна либо верификация приложения, которая может продлиться до 6 недель, ...
Неправильно написал. Заново создал новый проект, в старом проекте, который был создан давно, почему-то исчерпан лимит авторизаций. Создал в новом проекте OAuth 2.0 Client ID. При создании выдают такую информацию: "OAuth is limited to 100 sensitive scope logins until the OAuth consent screen is verified. This may require a verification process that can take several days."
И сейчас получилось авторизоваться. Скрипт сработал и выдал нужную информацию.
Я об этом и говорил. К тому же, нужен сайт свой с защищенным соединением и написанным в нем соглашением использования приложения. А такое есть, наверно, только у больших проектов, а у нас просто парсер
Если не секрет, сколько проксей / разных ip используете? На какие нибудь лимиты натыкались?
В «пробной» версии вам нужно постоянно авторизовываться для использования апи
Если действительно нужна авторизация, то можно только один раз авторизоваться, получить токен доступа и использовать его. Например, как здесь: https://developers.google.com/drive/api/v3/quickstart/python
Вот сделал пример: https://github.com/nomhoi/youtube_data_api_quickstart
Сейчас потихоньку будут обновлять парсеры в связи с тем, что теперь ютуб очень редко выдает первую страницу с контентом, он выдаёт сразу страницу с токеном. Сейчас я с помощью регулярных выражений вытаскивают тот тэг скрипт ( в котором ранее мы через split вытаскивали токен ), а потом конвертирую его в json. Далее уже можно по-человечески вытащить токен. Структура этого json идентична тем, которые мы получали через токен. Теперь парсер для канала будет работать быстрее, т.к мы будем парсить его идентично плейлисту. Парсер поиска будет стабильно выдавать максимальное кол-во видео, т.к мы не будем использовать подгрузку данных, ибо их можно получать с помощью параметра page. Везде будет добавлен прокси. После написания всех парсеров будет сделан главный скрипт, в котором будут все парсеры объединены. Допустим, спарсили все видео из плейлиста, далее каждый видеоролик мы парсим отдельно, получая доп. информацию.
Есть годный контент вроде диалогов, рассуждений, которые можно слушать в фоне (YouTube Premium).
Думаю Telegram бот наилучший вариант: отправляю ссылку, получаю аудио файл.
Ребята, подскажите, как спарсить выдачу по поисковому запросу. нужны просто ссылки на видео, которые потом в таргет засуну и буду показываться именно в них. раньше savefrom делал это легко и непринужденно. теперь список нигде не могу стянуть. что сделать?
К сожалению, я завершаю работу над этим проектом. Написание парсеров это лишь начало программирования. Данный проект, вследствие сложной и постоянно изменяющейся структуры YouTube, отнимает очень много времени. Я не хочу останавливаться на этом, поэтому перейду к следующим проектам. Исходники открыты — берите и пользуйтесь.
Парсинг YouTube, включая подгружаемые данные, без YouTube API