2 место Парсинг открытой информации с YouTube через APIv3 в MySQL

Valiksim, видимо просто надоело всегда держать "руку на пульсе" + проблемы с каптчами и антиботами + снижение выплат кранами. Ничего нового не нашел - ушел в шахматы и саморазвитие.
Donmid, Спасибо, рад что статья понравилась!
 
Интересно и позовательно, спасибо, а еще сорри за оффтоп, а в чем рисуешь такие схемки?
img.jpg
 
  • Спасибо
Реакции: BAZAg
Юрий, ты как всегда не ищешь легких путей для решения определенных задач. Я тоже для планирования, как и ты, использую Mindjet :-).
Хорошая статья, мне понравилась, с оригинальным оформлением.
 
  • Спасибо
Реакции: BAZAg
Юрий, ты как всегда не ищешь легких путей для решения определенных задач. Я тоже для планирования, как и ты, использую Mindjet :-).
Хорошая статья, мне понравилась, с оригинальным оформлением.
Спасибо. Данная програмулина удобна для создания ТЗ на написание шаблонов для Зеннопостера, так как позволяет ничего не забыть и описать весь желаемый процесс.
Парсинг в MySQL более удобен, чем парсинг просто в файлы, так как позволяет парсить в одно место одновременно с нескольких компьютеров.
 
Юрий зачет! :ay::ay:
Прям для меня очень полезная статья. Давно думал взяться за ютуб...
Проголосовал.:D
Спасибо! Рад, что статья понравилась. Она узкоспециализированная - не всем нужна работа с базами данных, не всем удобнее работать через API, да и не всем вообще нужно парсить информацию с YouTube.
Но, тем, кого данная информация будет интересовать - то в статье я постарался рассмотреть все вопросы, с решением которых я сам раньше испытывал проблемы.
 
Статья отличная.
Но у меня есть вопрос по логике шаблона 001_youtube_api_parsing_info_channel
ID канала мы задаём с пользовательских настройках и сохраняем в переменную id_channel.
Помним, что таблица "channel" у нас пока еще не имеет записей.
Делаем первый запрос в базу:
SELECT channel.id FROM channel WHERE channel.`status` = 0 LIMIT 1 - в результате запроса получаем "ничего"
и это ничего сохраняем в переменную {-Variable.id_channel-}, тем самым перезаписывая наше ID канала на "ничего".

т.е. выходит что мы зацикливаемся на этих 3х шагах
95c501c55adb4df59c0444b8cb7c0989.png

В чем моя ошибка?
 
  • Спасибо
Реакции: BAZAg
Статья отличная.
Но у меня есть вопрос по логике шаблона 001_youtube_api_parsing_info_channel
ID канала мы задаём с пользовательских настройках и сохраняем в переменную id_channel.
Помним, что таблица "channel" у нас пока еще не имеет записей.
Делаем первый запрос в базу:
SELECT channel.id FROM channel WHERE channel.`status` = 0 LIMIT 1 - в результате запроса получаем "ничего"
и это ничего сохраняем в переменную {-Variable.id_channel-}, тем самым перезаписывая наше ID канала на "ничего".

т.е. выходит что мы зацикливаемся на этих 3х шагах
95c501c55adb4df59c0444b8cb7c0989.png

В чем моя ошибка?
Если мы с базы данных ничего не получили - значит произойдет завершение шаблона (прежде отправив в базу запрос удаления всех пустых строк).
Если у нас в базе данных еще нет канала - то можно начать выполнение шаблона с запроса к API - тогда получив информацию о канале он будет добавлен в базу данных (в входящих настройках уже указан идентификатор - он и будет использован для первого запроса).
Или - можно добавить идентификаторы каналов в базу данных через Navicat.

P.S. В входящих настройках идентификатор канала задан при написании шаблона, чтобы быстрее тестировать шаблон без базы данных, исключив из шаблона первые экшины обращения к базе за идентификатором.
 
Последнее редактирование:
прикольный у тебя блог, случайно на подпись посмотрел) но что то не нашёл как подписаться с оповещением на мыло, так бы всегда узнавал сразу же про обнову.
 
  • Спасибо
Реакции: BAZAg
прикольный у тебя блог, случайно на подпись посмотрел) но что то не нашёл как подписаться с оповещением на мыло, так бы всегда узнавал сразу же про обнову.
Я убрал форму подписки - за 5 лет подписалось целых 20 или 30 человек.
картинка.jpg

Но, RSS транслируется на фидбирнер - собственно подписаться на почту при желании можно тут:
https://feedburner.google.com/fb/a/mailverify?uri=yosyfovych
 
Я убрал форму подписки - за 5 лет подписалось целых 20 или 30 человек.
Зря убрал. У меня на сайте по 100 человек в день (спамеров) подписывалось. Теперь подсчитай, сколько ты потерял?
 
  • Спасибо
Реакции: BAZAg
Зря убрал. У меня на сайте по 100 человек в день (спамеров) подписывалось. Теперь подсчитай, сколько ты потерял?
Цель с которой я веду блог отличается от тех целей, с которыми блоги ведут другие люди.
Все зацикливаются на подписчиках и аудитории - а для меня блог больше служит способом структурировать свой опыт/знания в первую очередь.
Все пишут блоги и затачиваются под ключевые слова - я же не заморачивался этим никогда, пишу чисто что мне нравится, и не факт что кому-то кроме меня это будет интересно (прям как и канал на ютубе - в первую очередь веду его для себя).
Важно конечно, чтобы он окупал сам себя (хостинг, домен) - раньше он требовал моих вложений, а сейчас он окупает себя не имея подписчиков и постоянных читателей + каких-то пару долларов наверно даже в плюс выходит :)
 
В качестве бонуса добавлю к данной теме возможность скачивания субтитров, как оригинальных, так и созданных ютубом автоматически.
Описание логики если что тут.
Вот такой получился шаблончик, который из коробки не работает - но привести его к нужному виду думаю получится каждому.
скачиваем субтитры.jpg

Результат работы проверил на своем ролике:

XML:
Развернуть Свернуть Копировать
<?xml version="1.0" encoding="utf-8" ?>
<transcript>
<text start="1.42" dur="1.26">Здравствуйте!</text>
<text start="2.68" dur="1.82">Меня зовут Юрий Йосифович</text>
<text start="4.7" dur="2">и я автор этого блога.</text>
<text start="7" dur="2">Еще с детства я четко уяснил,</text>
<text start="9.12" dur="1.6">что работать головой</text>
<text start="10.94" dur="2.04">куда проще, чем работать руками.</text>
<text start="13.5" dur="1">Со временем,</text>
<text start="14.5" dur="1.24">я также понял,</text>
<text start="16" dur="1.12">что в интернете есть деньги</text>
<text start="17.54" dur="1.76">и пошел на их поиски!</text>
<text start="19.74" dur="2.56">Оказывается, заработок в интернете, -</text>
<text start="22.48" dur="3.44">это циклические повторения рутинных действий</text>
<text start="25.92" dur="3.06">которые, впринципе, можно автоматизировать.</text>
<text start="29.48" dur="1.28">С этой целью</text>
<text start="30.92" dur="0.96">мне пришлось</text>
<text start="31.88" dur="1.96">испытать множество программ</text>
<text start="33.84" dur="1.6">таких как TopGen,</text>
<text start="35.78" dur="0.96">Zebroid,</text>
<text start="36.96" dur="1.28">AutoClickExtreme,</text>
<text start="38.5" dur="0.8">iMacros,</text>
<text start="39.7" dur="1.22">ZennoposterPRO,</text>
<text start="41.32" dur="1.08">CapMonstr2.</text>
<text start="42.4" dur="1.82">Собственно, в своих видео</text>
<text start="44.46" dur="0.92">я показываю</text>
<text start="45.5" dur="1.54">полезную, по моему мнению,</text>
<text start="47.04" dur="0.86">информацию</text>
<text start="48.42" dur="3.5">на темы заработка и автоматизации</text>
<text start="52.32" dur="3.22">Если вам интересны мои размышления,</text>
<text start="56.38" dur="2">рекомендую подписаться на канал,</text>
<text start="58.38" dur="1.76">чтобы получать уведомления</text>
<text start="60.14" dur="0.94">о новых роликах.</text>
</transcript>
XML:
Развернуть Свернуть Копировать
<?xml version="1.0" encoding="utf-8" ?><transcript><text start="1.509" dur="1.251">здравствуйте</text>
<text start="2.76" dur="1.89">меня зовут юрийосипов оч</text>
<text start="4.65" dur="2.45">я полтора этого блока</text>
<text start="7.1" dur="2.26">еще с детства я четкоуяснить</text>
<text start="9.36" dur="1.489">что работа головой</text>
<text start="10.849" dur="2.61">куда проще чемработать руками</text>
<text start="13.459" dur="1.151">со временем</text>
<text start="14.61" dur="2.96">я также понял что винтернете есть деньги</text>
<text start="17.57" dur="2.119">и пошел на их поиски</text>
<text start="19.689" dur="1.91">оказываетсязаработок в интернете</text>
<text start="21.599" dur="2.75">этот циклическоеповторения</text>
<text start="24.349" dur="1.67">вырученные действий</text>
<text start="26.019" dur="1.941">которые в принципеможно вот</text>
<text start="27.96" dur="1.479">амортизировать</text>
<text start="29.439" dur="2.51">зато италию мнепришлось</text>
<text start="31.949" dur="2.851">испытать множествопрограмм таких как</text>
<text start="34.8" dur="0.96">тула пр</text>
<text start="35.76" dur="1.029">закроют</text>
<text start="36.789" dur="1.571">а вот у плиты экстрим</text>
<text start="38.36" dur="1.11">поймал кураж</text>
<text start="39.47" dur="1.83">разработка по</text>
<text start="41.3" dur="2.42">как быстро 2собственно в своих</text>
<text start="43.72" dur="0.589">регионах</text>
<text start="44.309" dur="2.43">я показываю полезнуюпо моему мнению</text>
<text start="46.739" dur="1.751">информации</text>
<text start="48.49" dur="1.79">на темы заработка</text>
<text start="50.28" dur="2.42">и автоматизации</text>
<text start="52.7" dur="3.4">если вам интереснымои размышления</text>
<text start="56.1" dur="1.93">рекомендуютподписался на канал</text>
<text start="58.03" dur="2.66">чтобы получатьуведомления а новых</text>
<text start="60.69" dur="0.5">роликах</text>
</transcript>
Использовать для чего можно - для генерации сайтов, блогов, сценариев для своих видео, да и на биржах фриланса востребована транскрибация видео/аудио :-)
 

Вложения

автор есть скайп? есть идеи для заработка с хорошим доходом. так же интересно перенимать опыть в сфере блоггерства. мой блог - в подписи, добавляйся в вк, буду рад
 
автор есть скайп? есть идеи для заработка с хорошим доходом. так же интересно перенимать опыть в сфере блоггерства. мой блог - в подписи, добавляйся в вк, буду рад
Скайп есть в профиле - я его точно заполнял - обращайтесь в случае необходимости, смогу чем-то помочь - помогу.
Я с Украины - ВК как и многие другие сервисы заблокированы.
В данный момент я не ищу идеи для заработка - осваиваю материал полученный в всех конкурсных статьях и благодаря одной из ваших статей с прошлых конкурсов подсел на шахматы - больше чем пол года не могу от них избавиться...
 
Скайп есть в профиле - я его точно заполнял - обращайтесь в случае необходимости, смогу чем-то помочь - помогу.
Я с Украины - ВК как и многие другие сервисы заблокированы.
В данный момент я не ищу идеи для заработка - осваиваю материал полученный в всех конкурсных статьях и благодаря одной из ваших статей с прошлых конкурсов подсел на шахматы - больше чем пол года не могу от них избавиться...

Ну кому, кому, а вам блокировка мешает зайти на ВК или другие сервисы? Это же элементарно обходится.
 
  • Спасибо
Реакции: BAZAg
Ну кому, кому, а вам блокировка мешает зайти на ВК или другие сервисы? Это же элементарно обходится.
Я уверен, что все просто (прокси, VPN, VPS, VDS).
Если бы у меня бизнес был построен на ВК или я получал бы кучу денег на свой Яндекс кошелек, или к примеру мне сильно нравилась бы социальная сеть Мой Мир - то я не отказал бы себе в удовольствии использовать запрещенные сервисы.
Но, три года (время санкций) заморачиваться тем, как сегодня быстрее, лучше, дешевле зайти на данные сервисы у меня желания нет - куда проще просто отказаться от их использования и использовать альтернативные.
 
  • Спасибо
Реакции: Nord
Скайп есть в профиле - я его точно заполнял - обращайтесь в случае необходимости, смогу чем-то помочь - помогу.
Я с Украины - ВК как и многие другие сервисы заблокированы.
В данный момент я не ищу идеи для заработка - осваиваю материал полученный в всех конкурсных статьях и благодаря одной из ваших статей с прошлых конкурсов подсел на шахматы - больше чем пол года не могу от них избавиться...
в скайпе добавил) рад знакомству ) про тебя парниша мне писал месяц назад еще твой блог кидал))

по шахматам - да такая зараза )) но я то месяц играю то не играю вообще )
 
  • Спасибо
Реакции: BAZAg
Решил все же записать видосик и продемонстрировать как запускаются данные шаблоны и какой результат получается после их выполнения.
Будет интересно тем, кто не прочитал статью полностью.
 
Кстати замечание по статье, забыл добавить под спойлер Знакомство свой девиз "Я Юрий Йосифович, и я считаю что денег в интернете хватит всем".
 
  • Спасибо
Реакции: BAZAg
Кстати замечание по статье, забыл добавить под спойлер Знакомство свой девиз "Я Юрий Йосифович, и я считаю что денег в интернете хватит всем".
Это да. Только уже сейчас возможности редактировать статью нет, да и особо не разгонишься редактировать, когда чтобы сохранить необходимо кучу раз ввести каптчу.
 
Спасибо за статью, информация, подача и оформление - все на самом высоком уровне! Я как раз поднимаю свое мастерство в работе с базами данных, и твоя статья этому значительно поспособствует!
 
  • Спасибо
Реакции: BAZAg
Спасибо за статью, информация, подача и оформление - все на самом высоком уровне! Я как раз поднимаю свое мастерство в работе с базами данных, и твоя статья этому значительно поспособствует!
Спасибо. По базам данных где-то на форуме есть специально созданная тема, куда я парочку роликов с примерами забрасывал, в частности вот этот:
А в данной статье уже изложена информация, которая позволяет адаптировать данные шаблоны + базу данных под парсинг любого сайта в многопоточном режиме + пример работы с API YouTube (хотя, я сознательно не рассматривал вариант работы с авторизацией, так как не знаю как подключить nuget пакеты Google для работы их в Зеннопостере - но для общедоступной информации авторизация не нужна, может когда-то и с этим разберусь).

И естественно решение в статье полностью работоспособное, проверенное, оттестированное - работает с коробки, сам его использую по необходимости :)
 
  • Спасибо
Реакции: garat
Юрий, спасибо за статью и шаблон - очень круто. Проголосовал за Вас. Хотел бы у вас спросить, а то моих знаний не хватает, чтобы до этого додуматься. Задача следующая: нужно исходный список видео проверить на кол-во просмотров, комментарием, лайков и дислайков. Скажите, как это сделать в вашем шаблоне? Простое добавление id видео без канала на даёт ничего, шаблоны не обрабатывают их. Заранее благодарен.
 
  • Спасибо
Реакции: BAZAg
Юрий, спасибо за статью и шаблон - очень круто. Проголосовал за Вас. Хотел бы у вас спросить, а то моих знаний не хватает, чтобы до этого додуматься. Задача следующая: нужно исходный список видео проверить на кол-во просмотров, комментарием, лайков и дислайков. Скажите, как это сделать в вашем шаблоне? Простое добавление id видео без канала на даёт ничего, шаблоны не обрабатывают их. Заранее благодарен.
Спасибо.
На сколько я понял - есть список видео.
Дальше берем строку в переменную (или 50 строк через запятую) и отправляем GET на YouTube
Код:
Развернуть Свернуть Копировать
https://www.googleapis.com/youtube/v3/videos?id=ID-VIDEO&part=id,snippet,status,statistics&key=API-KEY
шаблон-картинка.jpg

После чего - получаем результат в виде JSON.
Впринципе перед добавлением в базу данных результат будет в переменной - и оттуда можно сохранить к примеру в таблицу.
Все лишние экшины можно удалить с шаблона.
шаб-два.jpg
 
BAZAg, спасибо за информацию. У Вас случайно нет шаблона на скачивание неоригинальных субтитров?
 
Этот шаблон выкачивает оригинальные субтитры, т.е. если они загружены владельцем видео. А если владелец видео не загружал субтитры, то их формирует ютуб, вот они не выкачиваются.
 
Этот шаблон выкачивает оригинальные субтитры, т.е. если они загружены владельцем видео. А если владелец видео не загружал субтитры, то их формирует ютуб, вот они не выкачиваются.
Ссылка на скачивание сгенерированных субтитров имеет примерно такой вид:
Код:
Развернуть Свернуть Копировать
https://www.youtube.com/api/timedtext?v=8QMq7sd5-h4&caps=asr&hl=en_US&sparams=asr_langs%2Ccaps%2Cv%2Cexpire&expire=1506613027&key=yttt1&asr_langs=de%2Cit%2Cko%2Cfr%2Cen%2Cja%2Ces%2Cru%2Cpt%2Cnl&signature=610EEF452B8E971AB68FBAD0842AED31AE243C55.317D025232FF0325179D958B9ED316091AC22CBC&kind=asr&lang=ru

Первым запросом получаем страничку, дальше регуляркой примерно такой ищем данную ссылку:
Код:
Развернуть Свернуть Копировать
(?<=\{\\"baseUrl\\":\\")https:\\/\\/www\.youtube\.com\\/api\\/timedtext.*?(?=\\")

После чего заменяем \\u0026 на &.
Заменяем /\ на \.
Дальше отправляем GET запрос по полученному url - результатом будут автоматически сгенерированные субтитры.

---

Если ссылка, о которой говорится выше не получена - это значит что видео еще не набрало какое-то количество просмотров и ютуб еще не успел сгенерировать для него автоматические субтитры.
 
  • Спасибо
Реакции: bezvozni и amazdad

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)