我试图在Java中实现类似“播放列表生成器”的功能(类似线程:Youtube API: get the autoplay list of a track)。简单来说,该工具可在某些输入阶段执行与Youtube.com v3 API的通信,从而生成指定长度的视频序列。
它按照以下方式工作:
通过调用执行搜索请求:
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)。
当我使用输入“ progressive house mix”运行此视频时,我得到以下视频序列(行包含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网站上玩游戏时发生过这种情况,所以这对我来说很有意义。但是我没想到总是。
我的问题很简单-您对此行为有何解释?我做错什么了吗?有什么方法可以避免这种情况并使“ Up next”功能按预期运行?
谢谢, 马丁
我在两次请求之间添加了一些时间间隔(即使是几分钟),但这没有帮助。