Как авторизоваться на YouTube с помощью Python (Request)?
Добрый вечер.
Поставил себе задачу спарсить данный из Youtube Library Music (https://www.youtube.com/audiolibrary/music) методом запросов.
Естественно youtube запросил авторизацию.
Я почти не работал с модулем requests , и не могу точно осознать , какой путь решения данной проблемы будет более правильным:
Попробовать сначала отправить запрос на Авторизацию : ( https://accounts.google.com/signin/v2/identifier?f. ) , а после в сохранённой сессии продолжить выполнять задачу по парсингу..
Или пройти сразу по ссылке (https://www.youtube.com/audiolibrary/music) , и залогиниться там.
Этот вопрос довольно простой , да и проблема не в нём.
Проблема в том , что я не знаю , как залогиниться. При post запросе Form Data ( в ней должны быть отправляемые логин и пароль ) содержит много странностей , но где и куда вставлять пароль я так и не понял.
Понятное дело , что авторизация на ютуб это не на форум для знакомств заходить , но не может же быть всё так проблематично?
В чём моя ошибка и куда стоит смотреть для её решения?
Поискав на хабре нашёл информацию о том , что простыми пост-гет запросами на ютубе не пошарить , неужели без селениума не обойтись? А если и с ним , то как передать открытую с помощью него сессию , чтобы работать с ней дальше через requests?
Буду рад любому мнению.
- Вопрос задан более года назад
- 597 просмотров
- Вконтакте

Алгоритм прост.
Определяете, возможно ли получить данные, отключив JS. Например, с помощью этой инструкции
https://developers.google.com/web/tools/chrome-dev.
Если с отключенным JS нужных данных не появляется, тогда у вас остается два варианта:
— Разбираться в логике получения данных, ковыряя JS скрипты, которые обрабатывают данные. Найти их можно, на вкладке Sources
— Использовать Selenium, имитируя действия пользователя
Для выбора элементов на странице вам пригодится язык запросов XPath Тутор
Расширение для отладки Xpath Helper
YouTube API ч.4 Загрузка видео на Python ( videos.insert )

В предыдущем видео я разобрался получением необходимых токенов и созданием сервиса для работы с YouTube API на Python. Сегодня сделаю загрузку видео.
Важное дополнение про блокировку видео , см. коммент .
Мда, подтверждаю проблему. Похоже корни здесь https://developers.google.com/youtube/v3/revision_history#release_notes_07_28_2020 .
После блокировки на почту gmail на аккаунте канала приходит письмо:
«Наши специалисты проверили ваши материалы и обнаружили, что в них нарушаются правила YouTube, а именно правила в отношении спама, мошенничества и обмана. В связи с этим мы установили ограниченный доступ для следующего контента на вашем канале»
Пока предполагаю что видео загруженное через приложение в статусе теста нельзя сделать публичным даже руками, пока нашел только это https://support.google.com/youtube/answer/7300965 «вы не сможете обжаловать наше решение, если ролик был загружен с помощью неподтвержденного сервиса API. Чтобы вернуть доступ к видео, вам потребуется загрузить его снова. Для этого воспользуйтесь подтвержденным API или добавьте контент напрямую на сайте YouTube» .
Самое обидное что этого ограничения вроде бы нет для проектов созданных до 28 июля 2020 года, а я их вдруг решил почистить и удалил все старые неделю назад и теперь не могу проверить :((( .
Навожу порядок в коде
В предыдущих сериях весь код, включая токены, я намеренно делал в одном файле. Так удобнее для видео. Но код растет и ориентироваться в одном файле теперь стало неудобно. Поэтому я его немного причесал, сделал пакет для YouTube API, попрятал токены и выложил все это на GitHub. Конкретно для сегодняшнего видео сделал отдельную ветку.
Ничего слишком сложного, если с Питоном немножко знакомы, то разберетесь. А здесь буду говорить только о двух конкретных функциях, а все остальное см. предыдущие серии сериала Разбираюсь с YouTube API и здесь по тегу YouTube API .
Есть ли способ автоматически возобновить прерванную загрузку на YouTube с помощью Python GData?
В настоящее время я использую настройки по умолчанию (которые, как я полагаю, используют API v. 1) и стандартный скрипт Python для загрузки видео на YouTube для загрузки видео. Однако любое незначительное прерывание в сети приводит к прерыванию всей загрузки, и ее приходится начинать с самого начала (плюс, мне нужно очистить неудачные загрузки..)
Есть ли простой способ заставить такие загрузки автоматически возобновляться путем повторных попыток подключения после каждого разрыва соединения? Я предполагаю, что решение должно включать, среди прочего, использование gdata api v.2.