0

私の質問のあいまいなタイトルをお詫びします。友人のWordpressサイトのYoutubeビデオストリームが突然壊れた理由を理解しようとしています。

私は今それを解読しようとしていますが、私がこれの頭または尾を作っている間、誰かが私を正しい方向に向けることができるかどうかを確認するためにここに投稿すると思いました。

ありがとうございました。

問題のページ:http
://www.advocatedai ​​ly.com/advocatetv/ページのエラー:

Warning: main() [function.main]: Node no longer exists in /home/advocate/public_html/wp-content/themes/process/advocate-tv.php on line 45

Warning: main() [function.main]: Node no longer exists in /home/advocate/public_html/wp-content/themes/process/advocate-tv.php on line 45

Fatal error: Call to a member function attributes() on a non-object in /home/advocate/public_html/wp-content/themes/process/advocate-tv.php on line 48

40行目から55行目:

 // get video player URL
                  $attrs = $media->group->player->attributes();
                  $watch = $attrs['url']; 

                  // get video thumbnail
                  $attrs = $media->group->thumbnail[0]->attributes();
                  $thumbnail = $attrs['url']; 

                  // get <yt:duration> node for video length
                  $yt = $media->children('http://gdata.youtube.com/schemas/2007');
                  $attrs = $yt->duration->attributes();
                  $length = $attrs['seconds']; 

                  //get <yt:videoId> node for Video ID
                  $yt = $media->children('http://gdata.youtube.com/schemas/2007');
                  $playlistVideoID = $yt->videoid;

問題領域の完全なスニペット:

    </div>
    <div id="mainPlaylist" class="grid_6 omega">
        <h3 class="title">Legal Feed with Kate Wheeler</h3>
        <ul id="playlists">
            <?php
                // Loop through each video in each playlist

                // read feed into SimpleXML object
                // *Moved into header to load main Video as well
                $playlistFeedURL = 'http://gdata.youtube.com/feeds/api/playlists/6549D4CA7BB99B16?v=2';
                $sxml = simplexml_load_file($playlistFeedURL);

                // iterate over entries in feed
                foreach ($sxml->entry as $entry) {
                  // get nodes in media: namespace for media information
                  $media = $entry->children('http://search.yahoo.com/mrss/');

                  // get video player URL
                  $attrs = $media->group->player->attributes();
                  $watch = $attrs['url']; 

                  // get video thumbnail
                  $attrs = $media->group->thumbnail[0]->attributes();
                  $thumbnail = $attrs['url']; 

                  // get <yt:duration> node for video length
                  $yt = $media->children('http://gdata.youtube.com/schemas/2007');
                  $attrs = $yt->duration->attributes();
                  $length = $attrs['seconds']; 

                  //get <yt:videoId> node for Video ID
                  $yt = $media->children('http://gdata.youtube.com/schemas/2007');
                  $playlistVideoID = $yt->videoid;


                  // get <yt:stats> node for viewer statistics
                  $yt = $entry->children('http://gdata.youtube.com/schemas/2007');
                  $attrs = $yt->statistics->attributes();
                  $viewCount = $attrs['viewCount']; 

                  // get <gd:rating> node for video ratings
                  $gd = $entry->children('http://schemas.google.com/g/2005'); 
                  if ($gd->rating) {
                    $attrs = $gd->rating->attributes();
                    $rating = $attrs['average'];  
                  } else {
                    $rating = 0; 
                  }

                  ?>
                  <div class="item">
                      <span class="thumbnail left" rel="<?php echo $entry->id; ?>">
                        <a href="<?php echo $watch; ?>" rel="<?php echo $playlistVideoID; ?>" onclick="_run();"><img src="<?php echo $thumbnail;?>" /></a>
                      </span>
                      <a href="<?php echo $watch; ?>" rel="<?php echo $playlistVideoID; ?>" onclick="_run();"><?php echo $media->group->title; ?></a>
                      <span class="attr">Duration:</span> <?php printf('%0.2f', $length/60); ?> min.
                      <div class="clear"></div>
                  </div>      
                <?php
                }           
            ?>
        </ul>
    </div>
    <div class="hr-single grid_16"></div>
</div>
<div class="article grid_10">
    <div id="recentUploads">
        <h3 class="grid_8">Recent Uploads</h3>
        <div class="clear"></div>
        <ul>
            <?php
            // Loop through each video in each playlist

            // read feed into SimpleXML object
            // *Moved into header to load main Video as well
            $playlistFeedURL = 'http://gdata.youtube.com/feeds/api/playlists/755260781A134FFF?v=2';
            $sxml = simplexml_load_file($playlistFeedURL);

            // iterate over entries in feed
            foreach ($sxml->entry as $entry) {
              // get nodes in media: namespace for media information
              $media = $entry->children('http://search.yahoo.com/mrss/');

              // get video player URL
              $attrs = $media->group->player->attributes();
              $watch = $attrs['url']; 

              // get video thumbnail
              $attrs = $media->group->thumbnail[0]->attributes();
              $thumbnail = $attrs['url']; 

              // get <yt:duration> node for video length
              $yt = $media->children('http://gdata.youtube.com/schemas/2007');
              $attrs = $yt->duration->attributes();
              $length = $attrs['seconds']; 

              //get <yt:videoId> node for Video ID
              $yt = $media->children('http://gdata.youtube.com/schemas/2007');
              $playlistVideoID = $yt->videoid;


              // get <yt:stats> node for viewer statistics
              $yt = $entry->children('http://gdata.youtube.com/schemas/2007');
              $attrs = $yt->statistics->attributes();
              $viewCount = $attrs['viewCount']; 

              // get <gd:rating> node for video ratings
              $gd = $entry->children('http://schemas.google.com/g/2005'); 
              if ($gd->rating) {
                $attrs = $gd->rating->attributes();
                $rating = $attrs['average'];  
              } else {
                $rating = 0; 
              }

              ?>
              <div class="item">
                  <div class="thumbnail left" rel="<?php echo $entry->id; ?>">
                    <a href="<?php echo $watch; ?>" rel="<?php echo $playlistVideoID; ?>" onclick="_run();"><img src="<?php echo $thumbnail;?>" /></a>
                  </div>
                  <div class="">
                      <a href="<?php echo $watch; ?>" rel="<?php echo $playlistVideoID; ?>" onclick="_run();"><?php echo $media->group->title; ?></a>
                      <span class="attr">Duration:</span> <?php printf('%0.2f', $length/60); ?> min.
                      <p><?php echo $media->group->description; ?></p>  
                  </div>
                  <div class="clear"></div>
              </div>      
            <?php
            }           
        ?>
        </ul>
    </div>
4

1 に答える 1

3

私に起こったのと同じことがあなたにも起こったのではないかと思います。

コードによると、APIがプレイリストを正しく検出していないようです http://gdata.youtube.com/feeds/api/playlists/6549D4CA7BB99B16?v=2

問題のある通話を修正するために、プレイリストIDにPLを追加しました:* PL * 6549D4CA7BB99B16 http://gdata.youtube.com/feeds/api/playlists/PL6549D4CA7BB99B16?v=2

これをグーグルで検索しているときに、PLを呼び出しに含める機能を追加することについて何かを参照しているブログ投稿を見つけました。apiblog.youtube.com/2012/08/playlists-now-with-more-pl.html

クイック検索では、プレイリストIDを送信する古い方法が削除されていることに気づきませんでした。

于 2012-11-14T23:48:10.937 に答える