我正在编写一种功能,允许用户输入Youtube视频URL。我想从这些网址中提取视频ID。
Youtube API是否支持某种函数,我可以通过该函数传递链接,它会返回视频ID。还是我必须自己解析字符串?
我正在使用PHP …在这方面,我将不胜感激任何指针/代码示例。
谢谢
以下是使用正则表达式从URL提取youtube ID的示例函数:
/**
* get youtube video ID from URL
*
* @param string $url
* @return string Youtube video id or FALSE if none found.
*/
function youtube_id_from_url($url) {
$pattern =
'%^# Match any youtube URL
(?:https?://)? # Optional scheme. Either http or https
(?:www\.)? # Optional www subdomain
(?: # Group host alternatives
youtu\.be/ # Either youtu.be,
| youtube\.com # or youtube.com
(?: # Group path alternatives
/embed/ # Either /embed/
| /v/ # or /v/
| /watch\?v= # or /watch\?v=
) # End path alternatives.
) # End host alternatives.
([\w-]{10,12}) # Allow 10-12 for 11 char youtube id.
$%x'
;
$result = preg_match($pattern, $url, $matches);
if ($result) {
return $matches[1];
}
return false;
}
echo youtube_id_from_url('http://youtu.be/NLqAF9hrVbY'); # NLqAF9hrVbY
它不是您要查找的API的直接来源,但可能会有所帮助。Youtube有一项固定服务:
$url = 'http://youtu.be/NLqAF9hrVbY';
var_dump(json_decode(file_get_contents(sprintf('http://www.youtube.com/oembed?url=%s&format=json', urlencode($url)))));
其中提供了有关URL的更多元信息:
object(stdClass)#1 (13) {
["provider_url"]=>
string(23) "http://www.youtube.com/"
["title"]=>
string(63) "Hang Gliding: 3 Flights in 8 Days at Northside Point of the Mtn"
["html"]=>
string(411) "<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/NLqAF9hrVbY?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/NLqAF9hrVbY?version=3" type="application/x-shockwave-flash" width="425" height="344" allowscriptaccess="always" allowfullscreen="true"></embed></object>"
["author_name"]=>
string(11) "widgewunner"
["height"]=>
int(344)
["thumbnail_width"]=>
int(480)
["width"]=>
int(425)
["version"]=>
string(3) "1.0"
["author_url"]=>
string(39) "http://www.youtube.com/user/widgewunner"
["provider_name"]=>
string(7) "YouTube"
["thumbnail_url"]=>
string(48) "http://i3.ytimg.com/vi/NLqAF9hrVbY/hqdefault.jpg"
["type"]=>
string(5) "video"
["thumbnail_height"]=>
int(360)
}
但是ID并不是响应的直接部分。但是,它可能包含您要查找的信息,并且可能对验证youtube URL有用。
所以我试图从用户上传的视频中抓取10个最新视频。 现在唯一的问题是,播放列表请求中唯一可见的日期是已发布的,这是视频上传的日期 - 而不是公开的日期,这会产生巨大的差异。 我注意到我可以通过视频请求获取正确的日期,但它似乎不是最好的地方。 让我给你看一个我正在处理的例子。 我们走Maroon5频道吧。 forUserName: Maroon5VEVO 获取 https://www.googleap
我需要提取5年前公司YouTube频道上的活动。我遇到了一个YouTube分析API的问题,因为它限制了我最近30天的活动。我正在考虑接下来尝试YouTube数据API V3,但我想首先在这里问一下,是否有人知道如何从YouTube频道中提取深层历史数据。我感兴趣的主要是每天每个视频的浏览量。我正在使用谷歌云平台,需要将数据存储在BigQuery中。 https://developers.goog
我们有一个网站,显示我们的YouTube视频频道和我们频道中最喜欢的视频等。我们使用YouTube数据API v2.0来获取数据。 例如: https://gdata.youtube.com/feeds/api/users/“ 用户标识 ”/播放列表?v=2 但现在这些链接返回“NetworkError: 410 Gone”。我们检查了新的YouTube Javascript API,但我们不知道
我需要视频的id,例如 https://www.youtube.com/watch?v=wIN0tTy-Jmg 我需要的id是wIN0tTy-Jmg 我知道https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.activities.list?part=snippet 但它只返回50个视频,有时我无法获得具有我需要的标题的
目前,我使用它是为了从给定频道获得视频ID列表: 去找https://www.googleapis.com/youtube/v3/search?order=date 这是可行的,但是我想从中获取视频的频道有超过50个在线视频。我已经研究过这个问题,YouTube API可以在一个频道上获取所有视频,但每个在线解决方案最多只能获取50个视频。 我怎样才能得到每一个视频,而不仅仅是50个?
我正在研究YouTubeAPI:https://developers.google.com/youtube/v3/docs/search/list 但是我找不到通过HTTP请求获取360视频列表的任何参数。我想获取q参数为“Ronaldo”的360视频(例如) 有没有人知道如何通过HTTP请求获取360视频或者另一种获取360视频的解决方案?