This YouTube video可以嵌入到大多数网站(例如Stackoverflow)中,但不能嵌入到Rap Genius中。您可以使用firebug将嵌入的代码粘贴到Rap Genius中来自己尝试。您会看到以下内容:
我需要一种方法来检测视频是否被Rap Genius特别阻止。
请注意,这不同于检查视频是否可以嵌入到任何地方–即,如果您获取http://gdata.youtube.com/feeds/api/videos?v=2&alt=jsonc&q=_kmeFXjjGfk
,您将在JSON响应中看到data.items[0].accessControl.embed == 'allowed'
一个线索:在视频开始播放之前,播放器会向一个如下所示的网址发出请求:
http://www.youtube.com/get_video_info?video_id=_kmeFXjjGfk&el=embedded&ps=default&eurl=http%3A%2F%2Frapgenius%2Ecom&hl=en_US
curl 时会给出以下响应:
status=fail&errorcode=150&reason=This+video+contains+content+from+UMG%2C+who+has+blocked+it+from+display+on+this+website.%3Cbr%2F%3E%3Cu%3E%3Ca+href%3D%27http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D_kmeFXjjGfk%26feature%3Dplayer_embedded%27+target%3D%27_blank%27%3EWatch+on+YouTube%3C%2Fa%3E%3C%2Fu%3E&fslarge=1
所以也许我可以查询这个URL?在所有情况下都可以使用吗?有没有“官方”的方式来做到这一点?
最佳答案
我有错误:
我发现请求包含嵌入式视频的页面时使用了https。切换回http似乎已解决了该问题。