我需要一种方法来获取完全随机的 YouTube 视频。没有限制。
如何使用 YouTube API?
** 编辑 * OK,这里是我到目前为止所尝试的:
1 - 在 youtube 开发站点上浏览了 api 和示例。 http://www.youtube.com/dev/没有运气找到正确的 API 或在那里做它的方法。
2 - 当然是谷歌搜索 ;) 得到了 http://randomyoutubevideo.net/但他们只提供 THEM 的 api,供我和 youtube 之间使用。 <这让我希望这实际上是可能的。
3 - 甚至查看了 youtube 应用程序库 http://youtube-gallery.appspot.com/看看是否有人在这样做。以及如何。
我还将做的是在 youtube 讨论页面上提问。也许有人可以提供帮助。
最佳答案
#第 1 步:创建 API key
- 创建一个谷歌帐户
- 访问:https://console.developers.google.com/
- 创建一个新项目:点击头部菜单中的 Create new Project 并为其命名
- 现在激活 YouTube 数据 API:点击它并启用它。
- 插入您的应用信息
- 点击“创建凭证”
- 点击我需要什么?
- 记下您的 API key
现在您可以访问 YouTube-API。
#第 2 步:使用 YouTube-API 抓取视频
在这一步中,我们使用 YouTube-API 来获取随机的 VideoId。使用以下代码示例,您将从 YouTube 搜索中获得 50 个随机视频。这是最大值。您可以将它们存储在数据库中或直接返回随机 ID。
注意:限制为 30,000 单位/秒/用户和每天 1,000,000。
Codesamples
[C#-Example]
using System;
using System.Linq;
using System.Net;
using Newtonsoft.Json;
namespace YouTube
{
class Program
{
private static Random random = new Random();
public static string RandomString(int length)
{
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
return new string(Enumerable.Repeat(chars, length)
.Select(s => s[random.Next(s.Length)]).ToArray());
}
static void Main(string[] args)
{
var count = 50;
var API_KEY = "YOUR KEY";
var q = RandomString(3);
var url = "https://www.googleapis.com/youtube/v3/search?key=" + API_KEY + "&maxResults="+count+"&part=snippet&type=video&q=" +q;
using (WebClient wc = new WebClient())
{
var json = wc.DownloadString(url);
dynamic jsonObject = JsonConvert.DeserializeObject(json);
foreach (var line in jsonObject["items"])
{
Console.WriteLine(line["id"]["videoId"]);
/*store your id*/
}
Console.Read();
}
}
}
}
[PHP-Example]
function crawlVideos($count = 50)
{
$q = $this->generateRandomString(3);
$url = "https://www.googleapis.com/youtube/v3/search?key=" . self::API_KEY . "&maxResults=$count&part=snippet&type=video&q=" . $q;
$JSON = file_get_contents($url);
$JSON_Data_search = json_decode($JSON);
foreach ($JSON_Data_search->{"items"} as $result) {
$videoId = ($result->{"id"}->{"videoId"});
/*Insert video to your database*/
}
}
function generateRandomString($length = 10)
{
return substr(str_shuffle(str_repeat($x = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', ceil($length / strlen($x)))), 1, $length);
}
[Python-Example]
import json
import urllib.request
import string
import random
count = 50
API_KEY = 'your_key'
random = ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(3))
urlData = "https://www.googleapis.com/youtube/v3/search?key={}&maxResults={}&part=snippet&type=video&q={}".format(API_KEY,count,random)
webURL = urllib.request.urlopen(urlData)
data = webURL.read()
encoding = webURL.info().get_content_charset('utf-8')
results = json.loads(data.decode(encoding))
for data in results['items']:
videoId = (data['id']['videoId'])
print(videoId)
#store your ids
#第 3 步:生成/返回您的视频 URL
现在从数据库中读取一个随机 ID,例如:
SELECT 'id'
FROM yttable
WHERE 1 ORDER BY RAND() LIMIT 1
您的随机视频是:
https://www.youtube.com/embed/[random ID]
玩得开心!
关于c# - 如何使用 YouTube API 获取随机 YouTube 视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11315416/