Парсер YouTube через API

Пресет парсинг YouTube API 1.0

Available for license holders

btr

A-Parser Enterprise License
A-Parser Enterprise
Добрый день всем, интересует подобный парсер как отдельный парсер, либо если это реализуемо, на Net::HTTP.
Лимиты у ютуба неплохие для парсинга(до 3000 запросов в секунду, до 5 000 000 запросов в сутки), апарсером бы да без прокси самое то.
 
чем не устраивает обычный парсер ютюба?
 
Через API гораздо быстрее парсится.
Так же если использовать несколько API ключей, то можно и увеличить лимиты.
 
имело бы смысл если без API медленно парсилось, но даже на демо версии в 100 потоков парсит 50 запросов в минуту на дефолт настройках, т.е. 500 страниц выдачи\мин
 
при парсинге по API не требуются прокси, за счет этого скорость гораздо выше.
 
при этом необходимо кучу гемора сделать с ключом для API. какая конечная цель? нужны такие дикие объемы что без апи никуда? или скорость ради скорости?
 
у нас политика весьма простая, если можно обойтись без API и лимитов - то парсим доступную выдачу
 
конечная цель конечно скорость, сейчас к примеру для 1 дора (~10к ключей) парсится ютуб 30-60 минут(в зависимости от проксей) хотелось конечно пошустрее с таким софтом как апарсер это более чем реально.
 
сколько видео на ключ используется? может настройки не оптимизированы? 10к х 1 страницу при нормальном числе потоков должно гораздо быстрее собирать
 
видео используется одно, настройки такие:

wc8Uv7U.png
 
Парсер YouTube через API за 5 минут:

uw1h2.png


Код:
eyJwcmVzZXQiOiJZb3VUdWJlIEFQSSIsInZhbHVlIjp7InByZXNldCI6IllvdVR1
YmUgQVBJIiwicGFyc2VycyI6W1siTmV0OjpIVFRQIiwiTm8gUHJveHkiLHsidHlw
ZSI6Im92ZXJyaWRlIiwiaWQiOiJxdWVyeWZvcm1hdCIsInZhbHVlIjoiaHR0cHM6
Ly93d3cuZ29vZ2xlYXBpcy5jb20veW91dHViZS92My9zZWFyY2g/cT0kcXVlcnkm
a2V5PTxBUElLRVk+JnBhcnQ9c25pcHBldCZtYXhSZXN1bHRzPTEifSx7InR5cGUi
OiJvcHRpb25zIiwiaWQiOiJjaGVja0NvbnRlbnQiLCJ2YWx1ZSI6InlvdXR1YmUj
c2VhcmNoTGlzdFJlc3BvbnNlIn0seyJ0eXBlIjoib3ZlcnJpZGUiLCJpZCI6ImZv
cm1hdHJlc3VsdCIsInZhbHVlIjoiWyUgcmVzdWx0ID0gdG9vbHMucGFyc2VKU09O
KGRhdGEpICVddmlkZW9JZDogJHJlc3VsdC5pdGVtcy4wLmlkLnZpZGVvSWQsIHRp
dGxlOiAkcmVzdWx0Lml0ZW1zLjAuc25pcHBldC50aXRsZVxcbiJ9XV0sInJlc3Vs
dHNGb3JtYXQiOiIkcDEucHJlc2V0IiwicmVzdWx0c1NhdmVUbyI6ImZpbGUiLCJy
ZXN1bHRzRmlsZU5hbWUiOiIkZGF0ZWZpbGUuZm9ybWF0KCkudHh0IiwiYWRkaXRp
b25hbEZvcm1hdHMiOltdLCJyZXN1bHRzVW5pcXVlIjoibm8iLCJxdWVyeUZvcm1h
dCI6WyIkcXVlcnkiXSwidW5pcXVlUXVlcmllcyI6ZmFsc2UsInNhdmVGYWlsZWRR
dWVyaWVzIjpmYWxzZSwiaXRlcmF0b3JPcHRpb25zIjp7Im9uQWxsTGV2ZWxzIjpm
YWxzZSwicXVlcnlCdWlsZGVyc0FmdGVySXRlcmF0b3IiOmZhbHNlLCJxdWVyeUJ1
aWxkZXJzT25BbGxMZXZlbHMiOmZhbHNlfSwicmVzdWx0c09wdGlvbnMiOnsib3Zl
cndyaXRlIjpmYWxzZX0sImRvTG9nIjoibm8iLCJrZWVwVW5pcXVlIjoiTm8iLCJt
b3JlT3B0aW9ucyI6ZmFsc2UsInJlc3VsdHNQcmVwZW5kIjoiIiwicmVzdWx0c0Fw
cGVuZCI6IiIsInF1ZXJ5QnVpbGRlcnMiOltdLCJyZXN1bHRzQnVpbGRlcnMiOltd
LCJjb25maWdPdmVycmlkZXMiOltdfSwicGFyc2Vyc0NvbmZQcmVzZXRzIjp7Ik5l
dDo6SFRUUCI6eyJObyBQcm94eSI6eyJxdWVyeWZvcm1hdCI6IiRxdWVyeSIsImdv
b2RDb2RlIjoiIiwidXNlcHJveHkiOmZhbHNlLCJmb3JtYXRyZXN1bHQiOiIkY29k
ZSAkcmVhc29uXFxuJGhlYWRlcnNcXG5cXG4kZGF0YSIsImRldGVjdGNoYXJzZXQi
OjAsInByb3h5cmV0cmllcyI6IjEwIiwidXNlci1hZ2VudCI6Ik1vemlsbGEvNC4w
IChjb21wYXRpYmxlOyBNU0lFIDYuMDsgV2luZG93cyBOVCA1LjE7IFNWMSkiLCJj
b29raWVzIjoiIiwicmVjdXJzZSI6NywidGltZW91dCI6NjAsIm1ldGhvZCI6IkdF
VCIsImRvX2d6aXAiOnRydWUsImJyb3dzZXIiOjAsIm9ubHloZWFkZXJzIjowLCJw
cm94eWJhbm5lZGNsZWFudXAiOiIzMDAiLCJtYXhfc2l6ZSI6IjI2MjE0NCIsInJl
cXVlc3RkZWxheSI6MCwiaGVhZGVycyI6IiIsImJvZHkiOiIifX19fQ==

Стоит отметить что каждый поисковый запрос стоит 100 квоты, т.е. лимит запросов на один API ключ примерно 500к запросов в сутки
 
Подскажите еще, как вывести все результаты построчно. Сейчас выводится только первый.
[% result = tools.parseJSON(data) %]videoId: $result.items.0.id.videoId, title: $result.items.0.snippet.title\n
 
Подскажите еще, как вывести все результаты построчно.
Измените формат результата:
Код:
[% result = tools.parseJSON(data);
FOREACH result.items;
    'videoId: ' _ id.videoId _ ', title: ' _ snippet.title _ ', description: ' _ snippet.description _ "\n";
END %]
Кол-во результатов задается в Query format параметром maxResults.
YC9Yq.png

Инструкция по получению APIKEY, а также описание возможностей API Youtube: https://developers.google.com/youtube/v3/getting-started
 
@Forbidden , @Support А как можно в подобном пресете использовать не один токен а например 10/20 штук?
Мне в частности не для этого пресета нужно, апи контакта пытаюсь парсить, на один токен ограничения не удовлетворяют мои потребности =(
 
Нужно, чтобы каждый запрос повторялся с каждым из токенов или для каждого запроса брался один рандомный токен?
 
для каждого запроса нужно рандомный токен.
А еще лучше чтоб токены использовались как то по порядку, таким образом можно хоть как то контролировать "нагрузку" на токены.
 
Для рандома используйте в формате запроса такой шаблон:
Код:
[% list = [
'aaa'
'bbb'
'ccc'
'zzz'
];
USE Math;
n = Math.int(Math.rand(list.size));
apikey = list.$n -%]
https://www.googleapis.com/youtube/v3/search?q=$query&key=$apikey&part=snippet&maxResults=1

Если нужно по порядку - тогда так:
Код:
[% list = [
'aaa'
'bbb'
'ccc'
'zzz'
];
n = query.num % list.size;
apikey = list.$n -%]
https://www.googleapis.com/youtube/v3/search?q=$query&key=$apikey&part=snippet&maxResults=1

Вместо aaa, bbb... нужно вписать токены.
 
Последнее редактирование:
Назад
Верх