Laravel и php оболочка для youtube-dl norkunas / youtube-dl- php - PullRequest
0 голосов
/ 11 февраля 2020

Я использую 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.

...