Я хочу заставить пользователя загружать видео с YouTube. Например, этот URL. Я загружаю видео, и я могу воспроизводить исходное видео, но даже длина / размер видео одинаковы, я не могу воспроизвести его, когда он загружен силой.
function force_download($file,$video_url) { $video_data = file_get_contents($video_url); file_put_contents($file, $video_data); if(isset($file) && file_exists($file)) { header('Content-length: ' . filesize($file)); header('Content-type: application/octet-stream'); header('Content-Disposition: attachment; filename= "' . $file . '"'); readfile($file); } } force_download('youtube.mp4',$video_url);
Если вы можете использовать htaccess …
<FilesMatch "\.(mp4|MP4)"> ForceType application/octet-stream Header set Content-Disposition attachment </FilesMatch>
Я использую это, чтобы загрузить PDF-файлы. Прекрасно работает!
Вот еще вопрос о стеке, связанный с форсированием загрузки с помощью PHP … По сути, это то же самое, что и htaccess, который я написал выше. Настройка содержимого – расположение для прикрепления – ключ.
Как принудительно загрузить файл с помощью PHP
EDIT: hrmm … но вы уже сделали что-то подобное, которое не работает … Посмотрите, можете ли вы заставить htaccess работать с тем, что вы пытаетесь сделать, я думаю.