YouTube 內部介面 https://youtube.com/get_video_info?video_id=VIDEO_ID 回傳 URL-encoded 字串,包含標題、縮圖、多種解析度串流 URL 等資訊。
<?php
function getYouTubeInfo($video_id) {
$content = file_get_contents("https://youtube.com/get_video_info?video_id=" . $video_id);
parse_str($content, $arr);
return $arr;
}
$video_id = 'psvkyf3PzjE';
$info = getYouTubeInfo($video_id);
header('Content-Type: text/html; charset=utf-8');
echo "<p><strong>{$info['title']}</strong></p>";
echo "<p><img src='{$info['thumbnail_url']}'></p>";
echo "<p><img src='{$info['iurlmq']}'></p>"; // 中圖
echo "<p><img src='{$info['iurl']}'></p>"; // 大圖
echo "<pre>";
print_r($info);
echo "</pre>";
| 欄位 | 說明 |
|---|---|
title | 影片標題 |
thumbnail_url | 預設縮圖 (120x90) |
iurlmq | 中等縮圖 (320x180) |
iurl | 大尺寸縮圖 (480x360) |
url_encoded_fmt_stream_map | 各畫質串流 URL (含 itag、簽名、過期時間) |
player_response | JSON 格式完整播放器回應 (現代介面主流) |
signature 參數,需配合 player_response 中的演算法解密 (或使用 ytdl-core 等成熟庫)。application/x-www-form-urlencoded,parse_str 完美解析。get_video_info 是快速原型開發、教學研究的便捷途徑,但非穩定契約。正式產品務必遷移至官方 Data API v3,並妥善處理配額、錯誤重試、快取策略。