我有一个将 YouTube 视频转换为 .mp4 并将其存储在我的服务器中的代码片段。它做的一切都是正确的,但它是一个高质量的视频版本,我的服务器基本上超时了。有没有办法可以检查视频是否不超过 20 MB 并获得最低质量的视频?
这是我的代码:
<?php
$id = $_GET['id'];
$format = 'video/mp4';
parse_str(file_get_contents("http://www.youtube.com/get_video_info?video_id=" . $id), $info);
$streams = $info['url_encoded_fmt_stream_map'];
$streams = explode(',', $streams);
foreach($streams as $stream) {
parse_str($stream, $data);
if(stripos($data['type'], $format) !== false) {
$video = fopen($data['url'] . '&signature=' . $data['sig'], 'r');
$file = fopen($_GET['id'] . '.mp4', 'w');
stream_copy_to_stream($video, $file);
fclose($video);
fclose($file);
echo '<a href="./' . $_GET['id'] . '.mp4">Download</a>';
die();
}
}
?>