首頁 後端開發 php教程 php 取得Youtube某個User所有Video信息

php 取得Youtube某個User所有Video信息

Aug 08, 2016 am 09:31 AM
gt info quot youtube

php 獲取Youtube某個User所有Video信息

因工作需要,獲取Youtube上某個用戶的所有視頻信息,寫了這個類,分享給大家。

YTUserVideo.class.php

<?php
/** 获取Youtube某个User所有Video信息
*   Date:   2015-01-08
*   Author: fdipzone
*   Ver:    1.0
*
*   Func:
*   public  getVideosInfo 获取用户所有视频信息
*   private getVideoNum   获取用户视频数量
*   private getVideoInfo  获取视频信息
*   private getContent    视频简介整理
*   private unescape      unicode转中文
*/

class YTUserVideo{ // class start

    private $_user = &#39;&#39;; // 用户名称


    /** 初始化
    * @param String $user 用户名称
    */
    public function __construct($user=&#39;&#39;){
        if($user!=&#39;&#39;){
            $this->_user = $user;
        }else{
            throw new Exception("user is empty", 1);
        }
    }


    /** 获取user所有视频信息
    * @return Array
    */
    public function getVideosInfo(){

        $info = array();

        // 获取视频数量
        $videonum = $this->getVideoNum();

        // 获取视频信息
        for($i=1; $i<=$videonum; $i++){
            $videoInfo = $this->getVideoInfo($i);
            array_push($info, $videoInfo);
        }

        return $info;

    }


    /** 获取用户视频数量
    * @return int
    */
    private function getVideoNum(){
        $videos = simplexml_load_file('http://gdata.youtube.com/feeds/base/users/'.$this->_user.'/uploads?max-results=1&start-index=1');
        $videonum = $videos->children('openSearch', true)->totalResults;
        return $videonum;
    }


    /** 获取视频信息
    * @param  String $index 视频的序号
    * @return Array
    */
    private function getVideoInfo($index){

        // 获取视频id及简介
        $video = simplexml_load_file('http://gdata.youtube.com/feeds/base/users/'.$this->_user.'/uploads?max-results=1&start-index='.$index);
        $videoId = str_replace('http://gdata.youtube.com/feeds/base/videos/', '', (string)($video->entry->id));
        $videoContent = $this->getContent($video->entry->content);

        // 根据视频id获取视频信息
        $content = file_get_contents('http://youtube.com/get_video_info?video_id='.$videoId);
        parse_str($content, $ytarr);

        $info = array();

        $info['id'] = $videoId;
        $info['thumb_photo'] = $ytarr['thumbnail_url'];       // 缩略图
        $info['middle_photo'] = $ytarr['iurlmq'];             // 中图
        $info['big_photo'] = $ytarr['iurl'];                  // 大图
        $info['title'] = $ytarr['title'];                     // 标题
        $info['content'] = $videoContent;                     // 简介
        $info['publish_date'] = $ytarr['timestamp'];          // 发布时间
        $info['length_seconds'] = $ytarr['length_seconds'];   // 视频长度(s)
        $info['view_count'] = $ytarr['view_count'];           // 观看次数
        $info['avg_rating'] = $ytarr['avg_rating'];           // 平均评分
        $info['embed'] = '//www.youtube.com/embed/'.$videoId; // Embed

        return $info;

    }


    /** 获取视频简介
    * @param  String $content 内容
    * @return String
    */
    private function getContent($content){
        preg_match('/<span>(.*?)<\/span>/is', $content, $matches);
        return $this->unescape($matches[1]);
    }


    /* unicode 转 中文
    * @param  String $str unicode 字符串
    * @return String
    */
    private function unescape($str) {
        $str = rawurldecode($str);
        preg_match_all("/(?:%u.{4})|&#x.{4};|&#\d+;|.+/U",$str,$r);
        $ar = $r[0];

        foreach($ar as $k=>$v) {
            if(substr($v,0,2) == "%u"){
                $ar[$k] = iconv("UCS-2BE","UTF-8",pack("H4",substr($v,-4)));
            }elseif(substr($v,0,3) == "&#x"){
                $ar[$k] = iconv("UCS-2BE","UTF-8",pack("H4",substr($v,3,-1)));
            }elseif(substr($v,0,2) == "&#") {
                $ar[$k] = iconv("UCS-2BE","UTF-8",pack("n",substr($v,2,-1)));
            }
        }
        return join("",$ar);
    }

} // class end

?>
登入後複製

demo.php
<?php
require &#39;YTUserVideo.class.php&#39;;

$obj = new YTUserVideo(&#39;GOtriphk&#39;); // 用户名称GOtriphk https://www.youtube.com/user/GOtriphk/videos
$videosInfo = $obj->getVideosInfo();

echo '<pre class="brush:php;toolbar:false">';
print_r($videosInfo);
echo '
'; ?>
登入後複製

以上就介紹了php 獲取Youtube某個User所有Video信息,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
華為GT3 Pro和GT4的差異是什麼? 華為GT3 Pro和GT4的差異是什麼? Dec 29, 2023 pm 02:27 PM

許多用戶在選擇智慧型手錶的時候都會選擇的華為的品牌,其中華為GT3pro和GT4都是非常熱門的選擇,不少用戶都很好奇華為GT3pro和GT4有什麼區別,下面就給大家介紹一下二者。華為GT3pro和GT4有什麼差別一、外觀GT4:46mm和41mm,材質是玻璃鏡板+不鏽鋼機身+高分纖維後殼。 GT3pro:46.6mm和42.9mm,材質是藍寶石玻璃鏡+鈦金屬機身/陶瓷機身+陶瓷後殼二、健康GT4:採用最新的華為Truseen5.5+演算法,結果會更加的精準。 GT3pro:多了ECG心電圖和血管及安

如何在 iPhone 13 上實現 YouTube 的後台播放? 如何在 iPhone 13 上實現 YouTube 的後台播放? Apr 25, 2023 pm 07:25 PM

在某個時候,您一定想知道是否可以在智慧型手機的後台播放YouTube並在同一裝置上執行其他工作。如果您希望在iPhone的背景下播放YouTube,可以繼續閱讀本文。我們當然會為您提供可靠的解決方案。不同的YouTube選項:YouTube有三種媒介,分別是YouTube應用程式,YouTube音樂和YouTube網站。透過這些媒體,您可以觀看影片或聽音樂。以下介紹了在後台YouTube上播放音樂或影片的方式。如何在IPhone上的後台播放YouTube(最佳方法)在YouTube上找到一首歌曲,您想

修復 iPhone 或 iPad 上的 YouTube「出了點問題,點擊重試」錯誤 修復 iPhone 或 iPad 上的 YouTube「出了點問題,點擊重試」錯誤 May 03, 2023 pm 12:43 PM

YouTube顯然意識到了這個問題,因為許多iPhone和iPad用戶在Twitter和整個社群媒體上普遍報告了這個問題。如果您遇到這個問題,那是相當明顯的。你去播放一個視頻,它會隨機地不播放,而是顯示一個黑屏,並顯示一條錯誤訊息,指出“出了點問題。點擊重試”。如果您點擊重試,要么沒有任何反應並且錯誤訊息仍然存在,要么旋轉並重新出現。在iPhone/iPad上更新YouTube應用程式你應該做的第一件事是更新iPhone或iPad上的YouTube應用程序,因為Yo

Zerømouse:YouTuber 打造 16 g 遊戲滑鼠,你可以買一個 — 有點 Zerømouse:YouTuber 打造 16 g 遊戲滑鼠,你可以買一個 — 有點 Aug 16, 2024 pm 03:42 PM

超輕量遊戲滑鼠的世界最近才真正起飛,甚至連Cooler Master 和Logitech 等主流遊戲週邊製造商也加入了這一行列,推出了售價25.99 美元的Cooler Master MM711 和105.99 美元的Logitech G Pro X Superlight滑鼠。

修復:截圖工具在 Windows 11 中不起作用 修復:截圖工具在 Windows 11 中不起作用 Aug 24, 2023 am 09:48 AM

為什麼截圖工具在Windows11上不起作用了解問題的根本原因有助於找到正確的解決方案。以下是截圖工具可能無法正常工作的主要原因:對焦助手已開啟:這可以防止截圖工具開啟。應用程式損壞:如果截圖工具在啟動時崩潰,則可能已損壞。過時的圖形驅動程式:不相容的驅動程式可能會幹擾截圖工具。來自其他應用程式的干擾:其他正在運行的應用程式可能與截圖工具衝突。憑證已過期:升級過程中的錯誤可能會導致此issu簡單的解決方案這些適合大多數用戶,不需要任何特殊的技術知識。 1.更新視窗與Microsoft應用程式商店應用程

Pixel 9 Pro XL 與 iPhone 15 Pro Max 相機比較顯示谷歌在視頻和變焦性能方面取得了令人驚訝的勝利 Pixel 9 Pro XL 與 iPhone 15 Pro Max 相機比較顯示谷歌在視頻和變焦性能方面取得了令人驚訝的勝利 Aug 24, 2024 pm 12:32 PM

Google Pixel 9 Pro 和 Pro XL 是Google對三星 Galaxy S24 Ultra 和蘋果 iPhone 15 Pro 和 Pro Max 等產品的回應。 YouTube 上的 Daniel Sin(請觀看下文)將 Google Pixel 9 Pro XL 與 iPhone 15 Pro Max 進行了一些比較

「出現問題,點擊重試」iPhone上的Youtube錯誤[已解決] 「出現問題,點擊重試」iPhone上的Youtube錯誤[已解決] Apr 14, 2023 pm 01:04 PM

許多iPhone用戶在iPhone上觀看YouTube應用程式上的任何YouTube影片時遇到了問題。他們在觀看YouTube影片時突然收到一條錯誤訊息,如下所示。我們已經找到了導致YouTube上出現此錯誤訊息的各種原因中的一些,以下列出了這些原因。 YouTube應用程式有問題。過時的優酷應用程式對iPhone上的網路設定進行了更改未為 YouTube 應用程式啟用後台應用程式刷新功能。與

在 Vivobook S15 基準測試中,Snapdragon X Elite CPU 的電池效能和插入效能幾乎相同 在 Vivobook S15 基準測試中,Snapdragon X Elite CPU 的電池效能和插入效能幾乎相同 Jun 20, 2024 pm 03:59 PM

儘管圍繞著高通 Snapdragon X Elite 進行了大肆宣傳,但它的發布卻相當平庸。在我們的評論中,我們發現搭載 Qualcomm Snapdragon X Elite X1E-78-100 的華碩 Vivobook S 15 最令人印象深刻的部分是無縫連接

See all articles