首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 視頻解析庫 VideoUrlParser:支援優酷、騰訊、B站等主流平台的 URL 解析與嵌入實戰

     編輯:PHP 相關知識

在 CMS、社區、聚合平台開發中,常需從視頻頁面 URL 自動提取標題、縮圖、播放器嵌入代碼。VideoUrlParser 是一個輕量 PHP 庫,支援優酷、土豆、騰訊視頻、搜狐、樂視、新浪、56、酷六等主流國內平台,提供統一介面獲取結構化視頻資訊。

快速開始

<?php
require_once 'VideoUrlParser.class.php';

$url = 'https://v.youku.com/v_show/id_XMjkwMzc0Njg4.html';
$info = VideoUrlParser::parse($url);

if ($info) {
    echo "標題:{$info['title']}\n";
    echo "縮圖:{$info['img']}\n";
    echo "播放頁:{$info['url']}\n";
    echo "SWF 嵌入:{$info['swf']}\n";
    echo "直接可用嵌入碼:{$info['object']}\n";
} else {
    echo "不支援的平台或解析失敗";
}

支援平台與 URL 範例

平台URL 範例備註
優酷https://v.youku.com/v_show/id_Xxxxx.html支援播放列表頁
騰訊視頻https://v.qq.com/x/cover/xxx.html支援 vid 提取與多種 URL 格式
土豆https://www.tudou.com/playlist/p/xxx.html處理 GB2312 編碼頁面
酷六https://v.ku6.com/show/xxx.html支援多種頁面結構
56網https://www.56.com/u68/v_xxx.html調用官方 JSON API
樂視https://www.letv.com/ptv/vplay/xxx.html提取播放器參數
搜狐視頻https://tv.sohu.com/xxxOpen Graph 標籤解析
新浪視頻https://video.sina.com.cn/v/b/xxx.html解析複雜 JSON 嵌入結構

核心架構設計

class VideoUrlParser {
    // 統一入口:自動識別平台分發至私有解析方法
    static public function parse($url, $createObject = true) {
        $domain = self::detectDomain($url);
        $method = "_parse{$domain}";
        if (method_exists(self::class, $method)) {
            $data = self::$method($url);
            if ($data && $createObject) {
                $data['object'] = self::buildEmbedCode($data['swf']);
            }
            return $data;
        }
        return false;
    }
    
    // 統一 HTTP 獲取:支援 file_get_contents、cURL、fsockopen 多策略
    private static function _fget($url) { /* ... */ }
    private static function _cget($url) { /* ... */ }
    private static function _fsget($path, $host) { /* ... */ }
    
    // GZIP 解壓支援(應對壓縮回應)
    private static function _gzdecode($data) { /* RFC 1952 實現 */ }
}

關鍵技術細節

  • 多策略 HTTP 客戶端:優先 cURL,回退 file_get_contents、fsockopen,提高相容性。
  • 自動編碼處理:土豆、搜狐等 GB2312 頁面自動 iconv('GB2312', 'UTF-8')。
  • GZIP 解壓:手動實現 RFC 1952 解碼,應對無 zlib 擴展環境。
  • 正則 + JSON 混合解析:優酷、56 等提供官方 API 返回 JSON,直接 json_decode;其他平台從 HTML 正則提取關鍵參數。
  • 統一嵌入代碼生成:buildEmbedCode() 產出標準 <embed> 標籤,前端直接可用。

現代化改造建議(2024+ 版本)

  1. 遷移至 PSR-4 自動載入 + Composer 套件,命名空間 Vendor\VideoUrlParser。
  2. 引入 PSR-18 HTTP Client(Guzzle / Symfony HttpClient),替換自建 HTTP 層。
  3. 支援 HTML5 <video> / M3U8 / MP4 直鏈,淘汰 Flash SWF 嵌入模式。
  4. 增加 B站、抖音、西瓜視頻、微信視頻號 等新生態平台支援。
  5. 引入快取層(PSR-6),避免重複請求同一視頻頁面。
  6. 單元測試覆蓋:針對各平台 URL 模式建立測試向量,CI 自動驗證。

法律與合規提醒

⚠️ 視頻解析僅供技術學習與個人專案使用。商業應用前請確認:

  • 目標平台《服務條款》是否允許第三方抓取/嵌入
  • 是否侵犯內容版權(轉碼、去水印、下載分發均屬高風險)
  • 建議採用平台官方提供的 oEmbed / API / 分享嵌入代碼

VideoUrlParser 展示了 PHP 在網頁解析、多平台適配、舊版環境相容性方面的工程實力。現代化重構後可成為內容聚合平台的核心基礎設施之一。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved