gpt4 book ai didi

php - 如何获得最低质量的YouTube视频?

转载 作者:行者123 更新时间:2023-12-03 05:27:55 24 4
gpt4 key购买 nike

我有一个代码段,可将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();
}
}
?>

最佳答案

通过此代码,您可以获取资源的内容长度(大小):

$url = "http://some-adress/test.php";
$headers = get_headers($url, 1);
$content_length = $headers["Content-Length"];

如果解析流图,则必须寻找“itag”,即视频的质量。
这是获取itags的preg_match的示例:
preg_match('/itag=([0-9]+)/',$url,$tm);

这是所有代码及其含义的列表:

$ typeMap = array();
$ typeMap [13] = array(“13”,“3GP”,“质量低-176x144”);
$ typeMap [17] = array(“17”,“3GP”,“中等质量-176x144”);
$ typeMap [36] = array(“36”,“3GP”,“高质量-320x240”);
$ typeMap [5] = array(“5”,“FLV”,“质量低-400x226”);
$ typeMap [6] = array(“6”,“FLV”,“中等质量-640x360”);
$ typeMap [34] = array(“34”,“FLV”,“中等质量-640x360”);
$ typeMap [35] = array(“35”,“FLV”,“高质量-854x480”);
$ typeMap [120] = array(“120”,“FLV”,“高质量-1280x720”);
$ typeMap [43] = array(“43”,“WEBM”,“质量低-640x360”);
$ typeMap [44] = array(“44”,“WEBM”,“中等质量-854x480”);
$ typeMap [45] = array(“45”,“WEBM”,“高质量-1280x720”);
$ typeMap [18] = array(“18”,“MP4”,“中等质量-480x360”);
$ typeMap [22] = array(“22”,“MP4”,“高质量-1280x720”);
$ typeMap [37] = array(“37”,“MP4”,“高质量-1920x1080”);
$ typeMap [38] = array(“38”,“MP4”,“高质量-4096x230”);

资料来源: http://www.ngcoders.com/php-script/php-youtube-video-downloader-script/

关于php - 如何获得最低质量的YouTube视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18876872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com