Есть ли более эффективный способ загрузки видео YouTube в определенное время начала и окончания, используя youtube-dl и ffmpeg в PHP.
В настоящее время у меня есть это, которое работает, он сначала загружает все видео в mp3-файл, а затем обрезает этот файл до диапазона, который я установил с помощью ffmpeg, но когда мне нужно только 30 секунд или около того 20-минутного видео, ожидая полное видео для загрузки не кажется лучшим способом сделать это.
<?php
require __DIR__ . '/vendor/autoload.php';
use YoutubeDl\YoutubeDl;
$dl = new YoutubeDl([
'extract-audio' => true,
'audio-format' => 'mp3',
'audio-quality' => 0, // best
'output' => 'videoname.%(ext)s',
]);
$dl->setDownloadPath('C:\youtubevideos');
$video = $dl->download('https://www.youtube.com/watch?v=oDAw7vW7H0c');
$start = 60; // Start 60 seconds in to the video
$duration = 30; // Get 30 seconds after $start
$fullVideo = "C:\youtubevideos\videoname.mp3";
$shortVideo = "C:\youtubevideos\short\shortversion.mp3"; // create 30 seconds
exec("ffmpeg -ss $start -i $fullVideo -t $duration -c copy $shortVideo");
exec("DEL $fullVideo");
Я использую YouTube для PHP https://github.com/norkunas/youtube-dl-php
Задача ещё не решена.
Других решений пока нет …