Как стать автором
Обновить

Комментарии 39

Спасибо за способ, пригодится.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

У меня первоначально была идея сделать скачивание музыки из плейлистов, однако если использовать ссылки на аудиодорожки гугла, то там надо будет скачанный webm конвертировать в mp3 с помощью ffmpeg. На моем слабом пк процесс для одного ролика занимал 40сек. Поэтому есть второй вариант — конвертировать сторонними сервисами на сайтах с помощью селениум, а потом извлекать ссылки на файл и скачивать. Далее этот файл с названием песни попадает в папку с названием плейлиста. Однако процесс по-прежнему долгий, а еще я перестал сохранять музыку на yt music, поэтому уже не надобно

НЛО прилетело и опубликовало эту надпись здесь

Если это так, то это очень круто, потому что это повысит скорость исполнения скрипта. Возможно я его доделаю и начну делать gui.

Сейчас проверил, не совсем так, как нужно работает. Для компьютеров разницы особо нет, что слушать webm или m4a. Из минусов то, что музыку из YT music скачать не получается, youtube-dl пишет, что видео форматы не найдены. Музыку хотел для плеера конвертировать, но увы там нет m4a.

А почему бы не использовать youtube-dl?
с её помощью можно сразу конвертить в mp3.
Я выше написал, что youtube-dl не хочет скачивать даже аудио-дорожку, если отсутствует видео-дорожка. То есть если я беру видео из youtube music (они не содержат видео-дорожек), то youtube-dl ее не скачает. Если вы скачиваете видео, то, конечно, это сработает.

В 22 году не исправили?

Нет, код не поддерживается

в 24м прекрасно работает

Позвольте прояснить пару моментов насчёт YouTube API:

YouTube API, конечно, наилучший вариант, если у вас какое-то свое приложение или проект, но там требуется зарегистрировать приложение и т.д.
Если имеется аккаунт Google, всё можно получить бесплатно за считаные секунды, а именно: создать проект и активировать YouTube API.

В «пробной» версии вам нужно постоянно авторизовываться для использования апи
Есть и другой путь: создать ключ API и использовать его в строке запроса (то есть, &key=YOUR_KEY).

еще там присутствует быстро заканчиваемая квота
Бесплатная ежедневная квота это 10000 кредитов, а один кредит может вернуть до 50 результатов. Правда, многое зависит от того, каких данных нужно получить (например, получение статистики для одного видеоролика стоит 3 кредитов). Поэтому важно внимательно читать документацию и выбрать только те данные, которые вам необходимы. Также, не забывайте, что некоторые запросы позволяют получать данные для 50 видеороликов одновременно (то есть, это выгоднее чем получить данные для каждого ролика по отдельности). Если 10000 кредитов не хватают, можно испытать удачу и запросить увеличения квоты.
  1. Под 'зарегистрировать приложение' я имел в виду заполнить анкету гуглу и отправить на модерацию. При регистрации от вас требуют защищенный сайт с пользовательским соглашением.
  2. Спасибо, не знал.
  3. Да, я знаю о параметре кол-ва получаемых данных, я их выкручивал на максимум. Все же квоты не хватит для массового использования. Пользователю, конечно, хватит, если он будет пользоваться своим личным.

К тому же, может кто-то без гугла живет.

1. Нет, не обязательно. Недавно расширял свою квоту путем регистрирования новых аккаунтов — приложение создается без проблем и без модерации

Думаю, тут некий оффтоп, ибо статья не обсуждает возможности YouTube API. Если вам нравится YouTube API, то используйте. Статья лишь описывает парсинг ютуба стандартными библиотеками.

Да, но в качестве аргументов условно против 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

Спасибо, что подсказали. Я постоянно авторизовывался по примеру из доки.

Сейчас потихоньку будут обновлять парсеры в связи с тем, что теперь ютуб очень редко выдает первую страницу с контентом, он выдаёт сразу страницу с токеном. Сейчас я с помощью регулярных выражений вытаскивают тот тэг скрипт ( в котором ранее мы через split вытаскивали токен ), а потом конвертирую его в json. Далее уже можно по-человечески вытащить токен. Структура этого json идентична тем, которые мы получали через токен. Теперь парсер для канала будет работать быстрее, т.к мы будем парсить его идентично плейлисту. Парсер поиска будет стабильно выдавать максимальное кол-во видео, т.к мы не будем использовать подгрузку данных, ибо их можно получать с помощью параметра page. Везде будет добавлен прокси. После написания всех парсеров будет сделан главный скрипт, в котором будут все парсеры объединены. Допустим, спарсили все видео из плейлиста, далее каждый видеоролик мы парсим отдельно, получая доп. информацию.

вот идея для парсера YouTube: извлекать аудио дорожку.
Есть годный контент вроде диалогов, рассуждений, которые можно слушать в фоне (YouTube Premium).
Думаю Telegram бот наилучший вариант: отправляю ссылку, получаю аудио файл.

У меня была идея скачивать аудио-дорожки как музыку, но я не мог их извлечь.

Спасибо тебе автор, а автогенерируемые субтитры вытянуть возможно?

Не знаю, но можете попробовать использовать модули распознавание речи

Ребята, подскажите, как спарсить выдачу по поисковому запросу. нужны просто ссылки на видео, которые потом в таргет засуну и буду показываться именно в них. раньше savefrom делал это легко и непринужденно. теперь список нигде не могу стянуть. что сделать?

В репо есть парсер поисковика, но он не работает. Ютуб постоянно что-то меняет, но не значительно. Попробуйте довести до ума.

Как я понял, это модуль для скачивания видео с ютуба. Спасибо, возможно кому-то из листающих комментарии это понадобится

К сожалению, я завершаю работу над этим проектом. Написание парсеров это лишь начало программирования. Данный проект, вследствие сложной и постоянно изменяющейся структуры YouTube, отнимает очень много времени. Я не хочу останавливаться на этом, поэтому перейду к следующим проектам. Исходники открыты — берите и пользуйтесь.

Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории