ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – 如何获取包含某个单词的youtube vids的视频片段

2019-08-28 21:28:28  阅读:261  来源: 互联网

标签:youtube-data-api php parsing youtube youtube-api


好的,基于这个视频; https://www.youtube.com/watch?v=7tjfeEAdY0I

我很好奇是否有可能创建一个PHP脚本,它会自动获取某个YouTube频道上的所有视频(在此示例中为https://www.youtube.com/user/whitehouse/videos),抓取所有视频,查看特定行或单词的成绩单,然后保存视频使用正确的时间戳,可以将所有这些视频合并为一个.

我知道有一个API可用于获取特定用户的所有YouTube视频网址,并且您可以获得每个视频的成绩单,但扫描所有视频会非常耗费资源.如果你们对如何创建这样的脚本有任何想法,我很好奇.

解决方法:

可以使用YouTube V3 API捕获与特定YouTube频道的视频相关的所有信息.
可以在here找到YouTube API的文档
相关的API功能可以在here找到

从API调用中从json响应中检索视频的脚本的过程将不是资源密集型的,并且可以在代码行中实现,因为json解析是标准过程,并且在大多数语言(包括PHP)上都受支持.

使用PHP包装器,可以通过几行代码实现.

程序:

首先,发送在频道下列出频道的请求以接收关于由频道ID表示的特定YouTube频道的所有内容细节.相关的代码段是:

$channelsResponse = $service->channels->listChannels('contentDetails', array('forUsername' => $channelId));

第二步是解析每个视频项,这些视频项使用for循环方便地完成,如:

foreach ($channelsResponse['items'] as $channel)  {}

第三步是从当前项获取上传列表ID,并使用参数’snippet’向API发送另一个请求.

此时,您将获得json格式的所有内容相关数据,您需要解析并获取所需的信息.

整个代码段是:

$channelsResponse = $service->channels->listChannels('contentDetails', array('forUsername' => $channelId));

$data = [];

foreach ($channelsResponse['items'] as $channel) 
{

  $uploadsListId = $channel['contentDetails']['relatedPlaylists']['uploads'];

  $playlistItemsResponse = $service->playlistItems->listPlaylistItems(
'snippet', array(
                    'playlistId' => $uploadsListId,
                    'maxResults' => 50
                )
   );

  foreach ($playlistItemsResponse['items'] as $playlistItem) 
  {
        $data[] = $playlistItem['snippet'];
  }
 }

标签:youtube-data-api,php,parsing,youtube,youtube-api
来源: https://codeday.me/bug/20190828/1755774.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有