YouTube API无边框播放器令牌到期

时间:2013-06-24 09:57:40

标签: youtube youtube-api token chromeless

摘要

我的Flex / AS3应用程序中有一个Youtube API无边框播放器。有时我需要播放器连续播放Youtube电影(不间断)。

问题

  • 播放12小时或更长时间后,第一个播放器初始化请求生成的API令牌即将过期。

     http://www.youtube.com/apiplayer?version=3&modestbranding=1&autoplay=0
    

    此处的问题是,在令牌过期后再次调用的API调用 loadVideoById 无法开始播放视频,因为令牌未自动续订。

  • 播放我们的播放列表(每个项目通过拨打 loadVideoById 播放)播放时间为4-5小时或更长时间后,视频有时会开始播放并突然卡住。虽然没有调度错误事件。

已知解决方案

  • 因此,对于第一个问题,解决方案是通过卸载播放器并使用API​​调用再次加载来每12小时更新一次令牌:

     http://www.youtube.com/apiplayer?version=3&modestbranding=1&autoplay=0 
    
  • 对于第二个问题,没有任何想法。需要你的帮助。

相关的源代码

private function CreateYoutubePlayerSWF():void {
    ...
    theYoutubeLoader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit);
    theYoutubeLoader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3&modestbranding=1&autoplay=0"));
    ...
}

private function PlayPendingVideo():void {
    ...         
    theYoutubePlayer.loadVideoById(videoWaitingToPlayInfo.videoWaitingToPlay);
    ...
}

请求&反应

当玩家停止播放时,这就是我在小提琴手中得到的结果:

"request": {
      "method": "GET",
      "url": "http://www.youtube.com/get_video?cpn=Lj5HaLu7MzS5kG-T&fmt=35&splay=1&t=vjVQa1PpcFNwMVrYUDFOTTG-7co1uJFo3oyrB-qoP_k=&video_id=j-vJJSqw5Q4&eurl=http%3A%2F%2Fwatchitoo.com%2Fiframe.php%3Fid%3Dwwa-154%26scale%3Dfalse%26layout%3D14&asv=3&el=embedded&ps=chromeless&ptk=youtube_none&noflv=1",
      ...
      "queryString": [
        {
          "name": "cpn",
          "value": "Lj5HaLu7MzS5kG-T"
        },
        {
          "name": "fmt",
          "value": "35"
        },
        {
          "name": "splay",
          "value": "1"
        },
        {
          "name": "t",
          "value": "vjVQa1PpcFNwMVrYUDFOTTG-7co1uJFo3oyrB-qoP_k"
        },
        {
          "name": "video_id",
          "value": "j-vJJSqw5Q4"
        },
        {
          "name": "eurl",
          "value": "http%3A%2F%2Fwatchitoo.com%2Fiframe.php%3Fid%3Dwwa-154%26scale%3Dfalse%26layout%3D14"
        },
        {
          "name": "asv",
          "value": "3"
        },
        {
          "name": "el",
          "value": "embedded"
        },
        {
          "name": "ps",
          "value": "chromeless"
        },
        {
          "name": "ptk",
          "value": "youtube_none"
        },
        {
          "name": "noflv",
          "value": "1"
        }

    "response": {
      "status": 410,
      "statusText": "Gone",
      "httpVersion": "HTTP/1.1",
      "headers": [
        {
          "name": "Date",
          "value": "Wed, 26 Jun 2013 16:32:37 GMT"
        },
        {
          "name": "X-Content-Type-Options",
          "value": "nosniff"
        },
        {
          "name": "Server",
          "value": "Apache"
        },
        {
          "name": "X-Frame-Options",
          "value": "SAMEORIGIN"
        },
        {
          "name": "Content-Type",
          "value": "video/x-flv"
        },
        {
          "name": "Cache-Control",
          "value": "no-cache"
        },
        {
          "name": "Content-Length",
          "value": "0"
        },
        {
          "name": "Expires",
          "value": "Tue, 27 Apr 1971 19:44:06 EST"
        }

0 个答案:

没有答案