Я использую Laravel Версия 6.14.0, и я хотел использовать следующую обертку Youtube-dl для PHP из https://github.com/norkunas/youtube-dl-php в Laravel.
Я использовал команду composer require norkunas/youtube-dl-php
для ее установки и получил следующий вывод:
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 2 installs, 0 updates, 0 removals
- Installing symfony/options-resolver (v4.4.4): Downloading (100%)
- Installing norkunas/youtube-dl-php (v1.4.0): Downloading (100%)
Writing lock file
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
Вот так выглядит мой контроллер
<?php
namespace App\Http\Controllers;
use App\YtScreen;
use Illuminate\Http\Request;
use YoutubeDl\YoutubeDl;
use YoutubeDl\Exception\CopyrightException;
use YoutubeDl\Exception\NotFoundException;
use YoutubeDl\Exception\PrivateVideoException;
class YtScreenController extends Controller
{
public function frontpage()
{
$dl = new YoutubeDl([
'continue' => true, // force resume of partially downloaded files. By default, youtube-dl will resume downloads if possible.
'format' => 'bestvideo',
]);
// For more options go to https://github.com/rg3/youtube-dl#user-content-options
$dl->setDownloadPath('/home/user/downloads');
// Enable debugging
$dl->debug(function ($type, $buffer) {
if (\Symfony\Component\Process\Process::ERR === $type) {
echo 'ERR > ' . $buffer;
} else {
echo 'OUT > ' . $buffer;
}
});
try {
$video = $dl->download('https://www.youtube.com/watch?v=oDAw7vW7H0c');
echo $video->getTitle(); // Will return Phonebloks
// $video->getFile(); // \SplFileInfo instance of downloaded file
} catch (NotFoundException $e) {
// Video not found
} catch (PrivateVideoException $e) {
// Video is private
} catch (CopyrightException $e) {
// The YouTube account associated with this video has been terminated due to multiple third-party notifications of copyright infringement
} catch (\Exception $e) {
// Failed to download
}
return view("frontpage");
}
}
Проблема в том, что недавно установленная php обертка не работает вообще. Я даже не получаю сообщение об ошибке. Видео не загружается, сообщение об ошибке не отображается ... ничего не происходит. С самим контроллером все в порядке, я протестировал его с другой функцией.
Я предполагаю, что не правильно включил файлы, так как даже не получаю сообщение об ошибке. Кто-нибудь сделал подобный опыт и знает, как заставить эту php оболочку для youtube-dl работать в Laravel? Или, может быть, есть альтернативная идея для другой оболочки youtube-dl php.