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

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Valiksim, видимо просто надоело всегда держать "руку на пульсе" + проблемы с каптчами и антиботами + снижение выплат кранами. Ничего нового не нашел - ушел в шахматы и саморазвитие.
Donmid, Спасибо, рад что статья понравилась!
 

prmaaq

Client
Регистрация
08.05.2014
Сообщения
22
Благодарностей
5
Баллы
3
Интересно и позовательно, спасибо, а еще сорри за оффтоп, а в чем рисуешь такие схемки?
img.jpg
 
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113

Fantomics

Client
Регистрация
01.06.2016
Сообщения
68
Благодарностей
12
Баллы
8
Юрий, ты как всегда не ищешь легких путей для решения определенных задач. Я тоже для планирования, как и ты, использую Mindjet :-).
Хорошая статья, мне понравилась, с оригинальным оформлением.
 
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Юрий, ты как всегда не ищешь легких путей для решения определенных задач. Я тоже для планирования, как и ты, использую Mindjet :-).
Хорошая статья, мне понравилась, с оригинальным оформлением.
Спасибо. Данная програмулина удобна для создания ТЗ на написание шаблонов для Зеннопостера, так как позволяет ничего не забыть и описать весь желаемый процесс.
Парсинг в MySQL более удобен, чем парсинг просто в файлы, так как позволяет парсить в одно место одновременно с нескольких компьютеров.
 
Регистрация
12.07.2014
Сообщения
916
Благодарностей
372
Баллы
63
Юрий зачет! :ay::ay:
Прям для меня очень полезная статья. Давно думал взяться за ютуб...
Проголосовал.:D
 
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Юрий зачет! :ay::ay:
Прям для меня очень полезная статья. Давно думал взяться за ютуб...
Проголосовал.:D
Спасибо! Рад, что статья понравилась. Она узкоспециализированная - не всем нужна работа с базами данных, не всем удобнее работать через API, да и не всем вообще нужно парсить информацию с YouTube.
Но, тем, кого данная информация будет интересовать - то в статье я постарался рассмотреть все вопросы, с решением которых я сам раньше испытывал проблемы.
 

disksale

Client
Регистрация
31.01.2011
Сообщения
52
Благодарностей
9
Баллы
8
Статья отличная.
Но у меня есть вопрос по логике шаблона 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х шагах

В чем моя ошибка?
 
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Статья отличная.
Но у меня есть вопрос по логике шаблона 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х шагах

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

P.S. В входящих настройках идентификатор канала задан при написании шаблона, чтобы быстрее тестировать шаблон без базы данных, исключив из шаблона первые экшины обращения к базе за идентификатором.
 
Последнее редактирование:

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 994
Благодарностей
787
Баллы
113
прикольный у тебя блог, случайно на подпись посмотрел) но что то не нашёл как подписаться с оповещением на мыло, так бы всегда узнавал сразу же про обнову.
 
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
прикольный у тебя блог, случайно на подпись посмотрел) но что то не нашёл как подписаться с оповещением на мыло, так бы всегда узнавал сразу же про обнову.
Я убрал форму подписки - за 5 лет подписалось целых 20 или 30 человек.
картинка.jpg

Но, RSS транслируется на фидбирнер - собственно подписаться на почту при желании можно тут:
https://feedburner.google.com/fb/a/mailverify?uri=yosyfovych
 

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83
Я убрал форму подписки - за 5 лет подписалось целых 20 или 30 человек.
Зря убрал. У меня на сайте по 100 человек в день (спамеров) подписывалось. Теперь подсчитай, сколько ты потерял?
 
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Зря убрал. У меня на сайте по 100 человек в день (спамеров) подписывалось. Теперь подсчитай, сколько ты потерял?
Цель с которой я веду блог отличается от тех целей, с которыми блоги ведут другие люди.
Все зацикливаются на подписчиках и аудитории - а для меня блог больше служит способом структурировать свой опыт/знания в первую очередь.
Все пишут блоги и затачиваются под ключевые слова - я же не заморачивался этим никогда, пишу чисто что мне нравится, и не факт что кому-то кроме меня это будет интересно (прям как и канал на ютубе - в первую очередь веду его для себя).
Важно конечно, чтобы он окупал сам себя (хостинг, домен) - раньше он требовал моих вложений, а сейчас он окупает себя не имея подписчиков и постоянных читателей + каких-то пару долларов наверно даже в плюс выходит :-)
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
В качестве бонуса добавлю к данной теме возможность скачивания субтитров, как оригинальных, так и созданных ютубом автоматически.
Описание логики если что тут.
Вот такой получился шаблончик, который из коробки не работает - но привести его к нужному виду думаю получится каждому.
скачиваем субтитры.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>
Использовать для чего можно - для генерации сайтов, блогов, сценариев для своих видео, да и на биржах фриланса востребована транскрибация видео/аудио :-)
 

Вложения

AgentRassilok

Известная личность
Регистрация
08.11.2016
Сообщения
1 272
Благодарностей
466
Баллы
83
автор есть скайп? есть идеи для заработка с хорошим доходом. так же интересно перенимать опыть в сфере блоггерства. мой блог - в подписи, добавляйся в вк, буду рад
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
автор есть скайп? есть идеи для заработка с хорошим доходом. так же интересно перенимать опыть в сфере блоггерства. мой блог - в подписи, добавляйся в вк, буду рад
Скайп есть в профиле - я его точно заполнял - обращайтесь в случае необходимости, смогу чем-то помочь - помогу.
Я с Украины - ВК как и многие другие сервисы заблокированы.
В данный момент я не ищу идеи для заработка - осваиваю материал полученный в всех конкурсных статьях и благодаря одной из ваших статей с прошлых конкурсов подсел на шахматы - больше чем пол года не могу от них избавиться...
 

vierasen

Client
Регистрация
10.12.2015
Сообщения
582
Благодарностей
277
Баллы
63
Скайп есть в профиле - я его точно заполнял - обращайтесь в случае необходимости, смогу чем-то помочь - помогу.
Я с Украины - ВК как и многие другие сервисы заблокированы.
В данный момент я не ищу идеи для заработка - осваиваю материал полученный в всех конкурсных статьях и благодаря одной из ваших статей с прошлых конкурсов подсел на шахматы - больше чем пол года не могу от них избавиться...
Ну кому, кому, а вам блокировка мешает зайти на ВК или другие сервисы? Это же элементарно обходится.
 
  • Спасибо
Реакции: BAZAg

BAZAg

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

AgentRassilok

Известная личность
Регистрация
08.11.2016
Сообщения
1 272
Благодарностей
466
Баллы
83
Скайп есть в профиле - я его точно заполнял - обращайтесь в случае необходимости, смогу чем-то помочь - помогу.
Я с Украины - ВК как и многие другие сервисы заблокированы.
В данный момент я не ищу идеи для заработка - осваиваю материал полученный в всех конкурсных статьях и благодаря одной из ваших статей с прошлых конкурсов подсел на шахматы - больше чем пол года не могу от них избавиться...
в скайпе добавил) рад знакомству ) про тебя парниша мне писал месяц назад еще твой блог кидал))

по шахматам - да такая зараза )) но я то месяц играю то не играю вообще )
 
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Решил все же записать видосик и продемонстрировать как запускаются данные шаблоны и какой результат получается после их выполнения.
Будет интересно тем, кто не прочитал статью полностью.
 

Лев

Client
Регистрация
09.12.2014
Сообщения
290
Благодарностей
273
Баллы
63
Кстати замечание по статье, забыл добавить под спойлер Знакомство свой девиз "Я Юрий Йосифович, и я считаю что денег в интернете хватит всем".
 
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Кстати замечание по статье, забыл добавить под спойлер Знакомство свой девиз "Я Юрий Йосифович, и я считаю что денег в интернете хватит всем".
Это да. Только уже сейчас возможности редактировать статью нет, да и особо не разгонишься редактировать, когда чтобы сохранить необходимо кучу раз ввести каптчу.
 

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
550
Баллы
93
Спасибо за статью, информация, подача и оформление - все на самом высоком уровне! Я как раз поднимаю свое мастерство в работе с базами данных, и твоя статья этому значительно поспособствует!
 
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Спасибо за статью, информация, подача и оформление - все на самом высоком уровне! Я как раз поднимаю свое мастерство в работе с базами данных, и твоя статья этому значительно поспособствует!
Спасибо. По базам данных где-то на форуме есть специально созданная тема, куда я парочку роликов с примерами забрасывал, в частности вот этот:
А в данной статье уже изложена информация, которая позволяет адаптировать данные шаблоны + базу данных под парсинг любого сайта в многопоточном режиме + пример работы с API YouTube (хотя, я сознательно не рассматривал вариант работы с авторизацией, так как не знаю как подключить nuget пакеты Google для работы их в Зеннопостере - но для общедоступной информации авторизация не нужна, может когда-то и с этим разберусь).

И естественно решение в статье полностью работоспособное, проверенное, оттестированное - работает с коробки, сам его использую по необходимости :-)
 
  • Спасибо
Реакции: garat

denchik

Client
Регистрация
26.05.2017
Сообщения
50
Благодарностей
100
Баллы
33
Юрий, спасибо за статью и шаблон - очень круто. Проголосовал за Вас. Хотел бы у вас спросить, а то моих знаний не хватает, чтобы до этого додуматься. Задача следующая: нужно исходный список видео проверить на кол-во просмотров, комментарием, лайков и дислайков. Скажите, как это сделать в вашем шаблоне? Простое добавление id видео без канала на даёт ничего, шаблоны не обрабатывают их. Заранее благодарен.
 
  • Спасибо
Реакции: BAZAg

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Юрий, спасибо за статью и шаблон - очень круто. Проголосовал за Вас. Хотел бы у вас спросить, а то моих знаний не хватает, чтобы до этого додуматься. Задача следующая: нужно исходный список видео проверить на кол-во просмотров, комментарием, лайков и дислайков. Скажите, как это сделать в вашем шаблоне? Простое добавление 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
 

amazdad

Client
Регистрация
11.11.2014
Сообщения
45
Благодарностей
5
Баллы
8
BAZAg, спасибо за информацию. У Вас случайно нет шаблона на скачивание неоригинальных субтитров?
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113

amazdad

Client
Регистрация
11.11.2014
Сообщения
45
Благодарностей
5
Баллы
8
Этот шаблон выкачивает оригинальные субтитры, т.е. если они загружены владельцем видео. А если владелец видео не загружал субтитры, то их формирует ютуб, вот они не выкачиваются.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 786
Благодарностей
2 450
Баллы
113
Этот шаблон выкачивает оригинальные субтитры, т.е. если они загружены владельцем видео. А если владелец видео не загружал субтитры, то их формирует ютуб, вот они не выкачиваются.
Ссылка на скачивание сгенерированных субтитров имеет примерно такой вид:
Код:
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

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