从zend框架中的YouTube URL获取YouTube视频Id


Fetch YouTube Video Id from youtube URL in zend framework

这是我的youtube tube URL,来自facebook Id。我在Zend框架中使用facebook中的FQL查询获取此url

这是我的url = "http://www.youtube.com/attribution_link?a=AbE6fYtNaa4&u=%2Fwatch%3Fv%3DNbyHNASFi6U%26feature%3Dshare"

现在我需要获取它的ID,这样我就可以把它传递给这个代码,这样我就可以生成它的视频细节。

function listYoutubeVideo($id) {
    $video = array();
    try {   
        $yt = new Zend_Gdata_YouTube();
        $videoEntry = $yt->getVideoEntry($id);

        $videoEntry = $yt->getQueryUrl($id);

            $videoThumbnails = $videoEntry->getVideoThumbnails();
            $video = array(
                'thumbnail' => $videoThumbnails[0]['url'],
                'title' => $videoEntry->getVideoTitle(),
                'description' => $videoEntry->getVideoDescription(),
                'tags' => implode(', ', $videoEntry->getVideoTags()),
                'url' => $videoEntry->getVideoWatchPageUrl(),
                'flash' => $videoEntry->getFlashPlayerUrl(),
                'dura' => $videoEntry->getVideoDuration(),
                'id' => $videoEntry->getVideoId()
            );
    } catch (Exception $e) {
        echo $e->getMessage();
        exit();
    }

    return $video;
}

所以我只需要找到它的youtube ID从youtube URL在Zend框架。请提供解决方案。是否有任何方法存在于"Zend_Gdata_YouTube"类从那里我可以得到它的ID形式传递它的youtube URL

您有唯一的视频ID。在您的情况下(https://www.youtube.com/watch?v=NbyHNASFi6U&feature=share) ID等于NbyHNASFi6U

$url = 'http://www.youtube.com/attribution_link?a=AbE6fYtNaa4&u=%2Fwatch%3Fv%3DNbyHNASFi6U%26feature%3Dshare';
$url = urldecode($url);
$query_string = end(explode('?',$url));
parse_str($query_string);
$videoID = $v;
print $videoID;
// OUTPUT
NbyHNASFi6U

视频观看页面的URL总是这样的格式:

http://www.youtube.com/watch?v=XXXXXXXXXXX

其中XXXXXXXXXXX是唯一的视频ID,由11个字母和数字组成(如果没记错,还可以加上连字符和下划线)。

public function get_id($url)
{
    $ytshorturl = 'youtu.be/';
    $ytlongurl = 'www.youtube.com/watch?v=';
    if (strpos($url, $ytshorturl) !== false) {
        $url = str_replace($ytshorturl, $ytlongurl, $url);
    }
    $components = parse_url($url);
    parse_str($components['query'], $results);
    return $results['v'];
}
$url = "https://youtu.be/oeg192rQ1xE"; //sample url
print(get_id($url));