由于缺少eurl参数,将某些YouTube视频嵌入UIWebView时出现问题

时间:2012-11-23 16:49:22

标签: youtube-api

我正在查看标准iOS UIWebView中的HTML页面。在这个页面中,我有一个标准的YouTube嵌入式,如下所示:

<iframe id="video-play" width="624" height="350" src="http://www.youtube.com/embed/hBLf_N-T0vI" allowfullscreen class="hide fade"></iframe>

这在浏览器的所有情况下都可以正常工作,并且在大多数情况下在UIWebView中都可以。但对于一些视频,我得到了(我认为误导性)消息: “上传者尚未在您所在的国家/地区播放此视频。”

问题出在get_video_info调用的某个地方,并且与UIWebView似乎欧元参数设置为“未知”的事实相关

因此,此请求在UIWebView中起作用:

http://www.youtube.com/get_video_info?html5=1&video_id=hBLf_N-T0vI&eurl=unknown&ps=native&el=embedded&hl=en_GB

这失败了,错误代码150和我上面提到的错误消息(它在浏览器中可以正常工作,所以使用下面的原始HTTP请求)

http://www.youtube.com/get_video_info?html5=1&video_id=DldaCQby3j4&eurl=unknown&ps=native&el=embedded&hl=en_GB

如果我将eurl = unkown更改为eurl = http://rubbish.com/,那么它会再次运作:

http://www.youtube.com/get_video_info?html5=1&video_id=DldaCQby3j4&eurl=http://rubbish.com&ps=native&el=embedded&hl=en_GB

我试图查看失败的视频的属性,但无法弄清楚导致好的和坏的视频之间的区别。我已经看过嵌入设置,隐私和跟踪设置以及我能想到的任何其他内容。

我的另一个选择是弄清楚如何在请求中添加eurl参数。

帮助! 乔恩

如果有人想要完整的HTTP请求/响应:

BAD REQUEST

GET /get_video_info?html5=1&video_id=DldaCQby3j4&eurl=unknown&ps=native&el=embedded&hl=en_GB HTTP/1.1
Host: www.youtube.com

坏回应

HTTP/1.1 200 OK
Date: Fri, 23 Nov 2012 15:42:47 GMT
Server: gwiseguy/2.0
X-Content-Type-Options: nosniff
Access-Control-Allow-Origin: *
Set-Cookie: use_hitbox=d5c5516c3379125f43aa0d495d100d6ddAEAAAAw; path=/; domain=.youtube.com
Set-Cookie: VISITOR_INFO1_LIVE=fH943IGDAFc; path=/; domain=.youtube.com; expires=Sun, 21-Jul-2013 15:42:47 GMT
Expires: Tue, 27 Apr 1971 19:44:06 EST
Cache-Control: no-cache
P3P: CP="This is not a P3P policy! See //support.google.com/accounts/bin/answer.py?answer=151657&hl=en-US for more info."
Content-Type: application/x-www-form-urlencoded
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Transfer-Encoding: chunked

status=fail&errorcode=150&reason=The+uploader+has+not+made+this+video+available+in+your+country.&storyboard_spec=http%3A%2F%2Fi1.ytimg.com%2Fsb%2FDldaCQby3j4%2Fstoryboard3_L%24L%2F%24N.jpg%7C48%2327%23100%2310%2310%230%23default%23w3GCNZfS0BvXcAQIB1BBnUJRlrY%7C80%2345%23112%2310%2310%232000%23M%24M%23VDmT14lMI4g0sdAxTbIujmEIkkI%7C160%2390%23112%235%235%232000%23M%24M%23c1uKcYcKallke_fsXgoUOkSHnwA&errordetail=0

GOOD REQUEST

GET /get_video_info?html5=1&video_id=DldaCQby3j4&eurl=http%3A%2F%2Frubbish.com%2F&ps=native&el=embedded&hl=en_GB HTTP/1.1

主持人:www.youtube.com

良好的回应

HTTP/1.1 200 OK
Date: Fri, 23 Nov 2012 15:42:34 GMT
Server: gwiseguy/2.0
X-Content-Type-Options: nosniff
Access-Control-Allow-Origin: *
Set-Cookie: use_hitbox=d5c5516c3379125f43aa0d495d100d6ddAEAAAAw; path=/; domain=.youtube.com
Set-Cookie: VISITOR_INFO1_LIVE=zG2n4ZwVAdY; path=/; domain=.youtube.com; expires=Sun, 21-Jul-2013 15:42:33 GMT
Expires: Tue, 27 Apr 1971 19:44:06 EST
Cache-Control: no-cache
P3P: CP="This is not a P3P policy! See //support.google.com/accounts/bin/answer.py?answer=151657&hl=en-US for more info."
Content-Type: application/x-www-form-urlencoded
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Transfer-Encoding: chunked

account_playback_token .... (chopped for brevity).

1 个答案:

答案 0 :(得分:0)

可能与“声称”的视频有关。 YouTube上的联系人回复了我们:

  

“视频[有效]已声明,而其他视频则无效   索赔过程中出现的问题导致了这个问题。“