当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

Youtube

授权协议 MIT License
开发语言 PHP
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 不详
投 递 者 百里杰
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Youtube

Laravel PHP Facade/Wrapper for the Youtube Data API v3 ( Non-OAuth )

Requirements

Looking for Youtube Package for either of these: PHP 5, Laravel 5.0, Laravel 4? Visit the php5-branch

Installation

Run in console below command to download package to your project:

composer require alaouy/youtube

Configuration

In /config/app.php add YoutubeServiceProvider (Laravel < 5.5):

Alaouy\Youtube\YoutubeServiceProvider::class,

Do not forget to add also Youtube facade there (Laravel < 5.5):

'Youtube' => Alaouy\Youtube\Facades\Youtube::class,

Publish config settings:

$ php artisan vendor:publish --provider="Alaouy\Youtube\YoutubeServiceProvider"

Set your Youtube API key in the file:

/config/youtube.php

Or in the .env file

YOUTUBE_API_KEY = KEY

Or you can set the key programmatically at run time :

Youtube::setApiKey('KEY');

Usage

// use Alaouy\Youtube\Facades\Youtube;


// Return an STD PHP object
$video = Youtube::getVideoInfo('rie-hPVJ7Sw');

// Get multiple videos info from an array
$videoList = Youtube::getVideoInfo(['rie-hPVJ7Sw','iKHTawgyKWQ']);

// Get localized video info
$video = Youtube::getLocalizedVideoInfo('vjF9GgrY9c0', 'pl');

// Get multiple videos related to a video
$relatedVideos = Youtube::getRelatedVideos('iKHTawgyKWQ');

// Get comment threads by videoId
$commentThreads = Youtube::getCommentThreadsByVideoId('zwiUB_Lh3iA');

// Get popular videos in a country, return an array of PHP objects
$videoList = Youtube::getPopularVideos('us');

// Search playlists, channels and videos. return an array of PHP objects
$results = Youtube::search('Android');

// Only search videos, return an array of PHP objects
$videoList = Youtube::searchVideos('Android');

// Search only videos in a given channel, return an array of PHP objects
$videoList = Youtube::searchChannelVideos('keyword', 'UCk1SpWNzOs4MYmr0uICEntg', 40);

// List videos in a given channel, return an array of PHP objects
$videoList = Youtube::listChannelVideos('UCk1SpWNzOs4MYmr0uICEntg', 40);

$results = Youtube::searchAdvanced([ /* params */ ]);

// Get channel data by channel name, return an STD PHP object
$channel = Youtube::getChannelByName('xdadevelopers');

// Get channel data by channel ID, return an STD PHP object
$channel = Youtube::getChannelById('UCk1SpWNzOs4MYmr0uICEntg');

// Get playlist by ID, return an STD PHP object
$playlist = Youtube::getPlaylistById('PL590L5WQmH8fJ54F369BLDSqIwcs-TCfs');

// Get playlists by multiple ID's, return an array of STD PHP objects
$playlists = Youtube::getPlaylistById(['PL590L5WQmH8fJ54F369BLDSqIwcs-TCfs', 'PL590L5WQmH8cUsRyHkk1cPGxW0j5kmhm0']);

// Get playlist by channel ID, return an array of PHP objects
$playlists = Youtube::getPlaylistsByChannelId('UCk1SpWNzOs4MYmr0uICEntg');

// Get items in a playlist by playlist ID, return an array of PHP objects
$playlistItems = Youtube::getPlaylistItemsByPlaylistId('PL590L5WQmH8fJ54F369BLDSqIwcs-TCfs');

// Get channel activities by channel ID, return an array of PHP objects
$activities = Youtube::getActivitiesByChannelId('UCk1SpWNzOs4MYmr0uICEntg');

// Retrieve video ID from original YouTube URL
$videoId = Youtube::parseVidFromURL('https://www.youtube.com/watch?v=moSFlvxnbgk');
// result: moSFlvxnbgk

Validation Rules

// use Alaouy\Youtube\Rules\ValidYoutubeVideo;


// Validate a YouTube Video URL
[
    'youtube_video_url' => ['bail', 'required', new ValidYoutubeVideo]
];

You can use the bail rule in conjunction with this in order to prevent unnecessary queries.

Basic Search Pagination

// Set default parameters
$params = [
    'q'             => 'Android',
    'type'          => 'video',
    'part'          => 'id, snippet',
    'maxResults'    => 50
];

// Make intial call. with second argument to reveal page info such as page tokens
$search = Youtube::searchAdvanced($params, true);

// Check if we have a pageToken
if (isset($search['info']['nextPageToken'])) {
    $params['pageToken'] = $search['info']['nextPageToken'];
}

// Make another call and repeat
$search = Youtube::searchAdvanced($params, true);

// Add results key with info parameter set
print_r($search['results']);

/* Alternative approach with new built-in paginateResults function */

// Same params as before
$params = [
    'q'             => 'Android',
    'type'          => 'video',
    'part'          => 'id, snippet',
    'maxResults'    => 50
];

// An array to store page tokens so we can go back and forth
$pageTokens = [];

// Make inital search
$search = Youtube::paginateResults($params, null);

// Store token
$pageTokens[] = $search['info']['nextPageToken'];

// Go to next page in result
$search = Youtube::paginateResults($params, $pageTokens[0]);

// Store token
$pageTokens[] = $search['info']['nextPageToken'];

// Go to next page in result
$search = Youtube::paginateResults($params, $pageTokens[1]);

// Store token
$pageTokens[] = $search['info']['nextPageToken'];

// Go back a page
$search = Youtube::paginateResults($params, $pageTokens[0]);

// Add results key with info parameter set
print_r($search['results']);

The pagination above is quite basic. Depending on what you are trying to achieve you may want to create a recursive function that traverses the results.

Manual Class Instantiation

// Directly call the YouTube constructor
$youtube = new Youtube(config('YOUTUBE_API_KEY'));

// By default, if the $_SERVER['HTTP_HOST'] header is set,
// it will be used as the `Referer` header. To override
// this setting, set 'use-http-host' to false during
// object construction:
$youtube = new Youtube(config('YOUTUBE_API_KEY'), ['use-http-host' => false]);

// This setting can also be set after the object was created
$youtube->useHttpHost(false);

Run Unit Test

If you have PHPUnit installed in your environment, run:

$ phpunit

If you don't have PHPUnit installed, you can run the following:

$ composer update
$ ./vendor/bin/phpunit

Format of returned data

The returned JSON is decoded as PHP objects (not Array).Please read the "Reference" section of the Official API doc.

Youtube Data API v3

Donation

If you find this project to be of use to you please consider buying me a cup of tea :)

paypal

Credits

Built on code from Madcoda's php-youtube-api.

  • Youtube是什么平台?有什么用?一个浏览器可以同时登录多个Youtube账号吗?今天我们小编就来跟大家简单聊聊。 Youtube是什么平台? YouTube是源自美国的视频分享网站,也是目前全球最大的视频搜索和分享平台,于2005年2月14日成立,网站的口号为“Broadcast Yourself”(为自己代言),让用户上传、观看、分享及评论视频。YouTube 分短视频(shorts),长视

  • 填入要下载的YT地址,下载生成的文本文件,把文件内容贴到文本框中,点击发送,就可以看到视频的真实下载地址了: http://kej.tw/flvretriever

 相关资料
  • 问题内容: 我获得了这段代码,以便从www.youtube.com/watch?v=xxxxxxx之类的链接获取youtube ID 基本上这将使我轻松获得id v = xxxxxxxx 但我注意到有时youtube链接会像这样 我正在从提要中获取链接,所以我需要为此构建一个正则表达式,还是需要一个解析器来为我获取它? 问题答案: 尝试了其他方法,但在我的情况下失败了-调整了正则表达式以适合我的网

  • 问题内容: 我正在使用一个Android应用程序来录制视频,并允许用户使用YouTube数据API v3将其直接上传到YouTube。 我已经在Google的API控制台中设置了我的应用。在服务下,我启用了YouTube数据API v3。在API访问下,我有一个“已安装应用程序的客户端ID”部分(包括一个客户端ID和客户端密钥)和一个“简单API访问”部分->“ Android应用程序的密钥(带有

  • 问题内容: 我需要从Java网络应用程序中的 第3方(公开可用的YouTube视频) 中读取隐藏字幕文本,即我尚未上传内容。 尽管YouTube数据API的v2 限制了对字幕信息的访问权限,但上传视频的人 却似乎很奇怪,它只能访问除这一项数据以外的所有内容。我希望可以在API的第3版中看到此限制,但现在唯一引用隐藏式字幕的方法是布尔方法,以确认CC是否已附加到视频。甚至所有者也似乎无法立即下载它。

  • 问题内容: 我想访问YouTube视频并使用自己的媒体播放器播放。我可以使用youtube数据API获取视频属性(标题,网址等)。我可以访问视频流并使用我自己的媒体播放器(例如Android Media Player)播放它。我正在JAVA中尝试所有这些。 提前致谢.. :) 问题答案: 你不能 请查看此处以进一步了解API可以处理的内容: YoutubeAPI 如果可以在其中获得InputStr

  • 问题内容: new YouTubePageStreamUriGetter().execute( 该代码不起作用 问题答案: 编辑3 您可以使用Lib:https : //github.com/HaarigerHarald/android- youtubeExtractor 例如: 他们使用以下方法解密Signature: 现在,使用此库, 高质量视频会 丢失 音频,因此我将MediaMuxer用于

  • 问题内容: 我已经对这个网址的请求:与指标:。 回应: 我要求的行和实际数据在哪里?在文档中,这是我从youtube请求数据时 应该 返回的内容: 但是我没有“行”:[]数据。我的帐户是否没有任何分析功能,或者我做错了什么? 如果我能到我得到返回。 问题答案: 在docs中:“如果没有数据可用于给定查询,则将在响应中省略rows元素。”

  • 问题内容: 我正在实施一项服务,一旦将视频上传到其他服务器上,它就会自动将视频上传到YouTube频道。 刚开始时,我使用的是ClientLogin身份验证和YouTube API v2.0 –直接上载, 并且一切运行正常。但是,由于不建议使用ClientLogin,因此我尝试更新以使用v3.0。 我检查了此文档,并假定该文件存储在本地(在我的情况下不是),并且该服务将不在本地计算机上运行,​​并

  • 问题内容: 如何以编程方式获取正在播放的YouTube视频的字幕? 最初,我尝试通过YouTube API 离线进行此操作,但似乎 YouTube禁止获取您不是所有者的视频的字幕。 现在,我正在尝试在线进行。我没有找到用于字幕的YouTube Player Api方法,我也试图通过videojs播放器将YouTube字幕作为TextTrack来获取,就像通常视频的处理方式一样,但是以下方法不起作用