使用curl获取所有YouTube视频

时间:2013-01-17 12:46:13

标签: php youtube

我是PHP的初学者。我的项目中有一项任务,即使用PHP中的curl从YouTube链接中获取所有视频。是否可以显示来自YouTube的所有视频?

我在Google搜索中找到了此代码:

<?php
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, 'http://www.youtube.com');
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 $contents = curl_exec ($ch);
 echo $contents;
 curl_close ($ch);
?>

它会显示YouTube网站,但是当我点击任何视频时,它都无法播放。

3 个答案:

答案 0 :(得分:3)

您可以通过两种格式XmlJson从youtube oemebed界面获取数据,这两种格式会返回有关视频的元数据:

http://www.youtube.com/oembed?url={videoUrlHere}&format=json

使用您的示例,致电:

http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v=B4CRkpBGQzU&format=json

所以,你可以这样做:

$url = "Your_Youtube_video_link";

示例:

$url = "http://www.youtube.com/watch?v=m7svJHmgJqs"

$youtube = "http://www.youtube.com/oembed?url=" . $url. "&format=json";
$curl = curl_init($youtube);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($curl);
curl_close($curl);
$result = json_decode($return, true);
echo $result['html'];

尝试一下......希望它会对你有帮助。

答案 1 :(得分:1)

您可以使用curl检索Google主页(或替代页面),并使用html5lib等库解析返回的html。如果您想尝试这种方法,第一步可能是在相关页面上“查看源代码”并查看链接的结构。

解决问题的一种更优雅的方法可能是使用Youtube API(一种与Youtube系统交互的方式),这可以让您直接检索链接。例如,可以让Youtube API向您发送链接。试试this

答案 2 :(得分:1)

您还可以使用file_get_contents获取所有YouTube频道视频
下面是样本和工作代码

<?php
$Youtube_API_Key = ""; // you can obtain api key :  https://developers.google.com/youtube/registering_an_application
$Youtube_channel_id = "";
$TotalVideso = 50; // 50 is max , if you want more video you need Youtube secret key.
$order= "date"; ////allowed order : date,rating,relevance,title,videocount,viewcount
$url = "https://www.googleapis.com/youtube/v3/search?key=".$Youtube_API_Key."&channelId=".$Youtube_channel_id."&part=id&order=".$order."&maxResults=".$TotalVideso."&format=json";
$data = file_get_contents($url);
$JsonDecodeData=json_decode($data, true);
print_r($data);
?>