Я пытался реализовать что-то вроде «генератора списков воспроизведения» в Java (похожая тема: Youtube API: получить список автозапуска трека ). Просто инструмент, который на каком-то этапе ввода осуществляет связь с API Youtube.com v3, генерируя последовательность видео определенной длины.
Работает следующим образом:
- Введена фаза поиска.
Выполняется поисковый запрос путем вызова:
YouTube.Search.List req = youtube.search().list("snippet");
req.setType("video");
req.setMaxResults(1l);
req.setQ(phase);
Из ответа извлекается первое видео и его videoID.
По запросу запрашивается видео "Up next":
YouTube.Search.List req = youtube.search().list("snippet");
req.setType("video");
req.setRelatedToVideoId(id);
Шаги 3 и 4 повторяются указанное время (например, 10x).
- Результатом является список собранных видео.
Когда я запускаю это с вводом «прогрессивный домашний микс», я получаю следующую последовательность видео (строки содержат videoID, заголовок и длину):
2SVQ1LYElnY, ♫ Best Progressive House Mix 2018 Vol. #5 ♫, 1:54:32
KvRVky0r7YM, Progressive House · Relaxing Focus Music · 24/7 Live Radio, 0:00
VnzIsEgSrCE, Beautiful Piano Music LIVE 24/7: Instrumental Music for Relaxation, Study, Stress Relief, 0:00
3NycM9lYdRI, Relaxing Piano Music: Romantic Music, Beautiful Relaxing Music, Sleep Music, Stress Relief ★122, 3:36:39
y7e-GC6oGhg, Beautiful Piano Music 24/7: Study Music, Relaxing Music, Sleep Music, Meditation Music, 0:00
hlWiI4xVXKY, Beautiful Relaxing Music - Peaceful Piano Music & Guitar Music by Soothing Relaxation, 3:03:39
y7e-GC6oGhg, Beautiful Piano Music 24/7: Study Music, Relaxing Music, Sleep Music, Meditation Music, 0:00
hlWiI4xVXKY, Beautiful Relaxing Music - Peaceful Piano Music & Guitar Music by Soothing Relaxation, 3:03:39
y7e-GC6oGhg, Beautiful Piano Music 24/7: Study Music, Relaxing Music, Sleep Music, Meditation Music, 0:00
hlWiI4xVXKY, Beautiful Relaxing Music - Peaceful Piano Music & Guitar Music by Soothing Relaxation, 3:03:39
Как вы видите, он начинает зацикливаться после загрузки нескольких видео. В некоторых случаях он повторяет только два видео даже с самого начала.
ИМХО, это вызвано тем, что Youtube думает "О, так ты хочешь это видео? Хорошо, вот и ты". затем «О, тебе не понравилось, потому что сейчас меньше секунды, а ты хочешь еще одного? Хорошо, вот оно!» и затем: «О, тебе это тоже не нравится? Что ж, похоже, я не могу тебя удовлетворить, почему я даже пытаюсь что-то сделать? Разве ты не хотел бы просто попробовать предыдущее видео снова, не так ли? Может быть, ты передумал. " который затем зацикливается.
Я помню, это однажды случилось со мной, когда я играл на сайте youtube, так что для меня это имеет смысл. Но я не ожидал, что это произойдет всегда .
Мой вопрос прост - есть ли у вас какое-либо объяснение такого поведения? Я делаю что-то не так? Есть ли способ, как этого избежать и заставить функцию «Вперед» работать должным образом?
Спасибо,
Martin
EDIT
Я добавил некоторую паузу между запросами (даже минуты), но это не помогло.