Rudloff / alltube

Web GUI for youtube-dl
GNU General Public License v3.0
2.97k stars 584 forks source link

An error occurred : Conversion of DASH segments is not supported. #434

Open tshpr opened 1 year ago

tshpr commented 1 year ago

What is your operating system (Windows, Linux, OSX, etc.)?

Debian 11

What is your web server (Apache, IIS, etc.)?

Apache as frontend and Nginx as backend

What version of AllTube are you using?

3.1.1

How did you install AllTube?

Release package

What version of PHP are you using?

7.4

What version of Python are you using?

2.7.18

What version of youtube-dl are you using?

2023.04.15.19419 (Nightly build to fix uploader id issue)

Do you get any PHP-related errors in your webserver's logs?

No response

What is the content of your "config/config.yml" file?

# Path to your youtube-dl binary
#youtubedl: vendor/ytdl-org/youtube-dl/youtube_dl/__main__.py
youtubedl: /usr/local/bin/youtube-dl

# Path to your python binary
python: /usr/bin/python

# An array of parameters to pass to youtube-dl
params:
    - --no-warnings
    - --ignore-errors
    - --flat-playlist
    - --no-playlist

# True to enable audio conversion
convert: true

# True to enable advanced conversion mode
convertAdvanced: false

# List of formats available in advanced conversion mode
convertAdvancedFormats: [mp3, avi, flv, wav]

# Path to your ffmpeg binary
ffmpeg: /usr/bin/ffmpeg

# ffmpeg logging level.
ffmpegVerbosity: error

# Path to the directory that contains the phantomjs binary.
phantomjsDir: /usr/local/bin/

# True to disable URL rewriting
uglyUrls: false

# True to stream videos through server
# Set to "ask" if you want to allow it but not enable by default.
stream: false

# True to enable remux mode (merge best audio and best video)
remux: false

# MP3 bitrate when converting (in kbit/s)
audioBitrate: 128

# App name
appName: Time-Taker YouTube Downloader

# Generic formats supported by youtube-dl
genericFormats:
    best/bestvideo: Best
    bestvideo+bestaudio: Remux best video with best audio
    worst/worstvideo: Worst

# Enable debug mode.
debug: false

# True to enable audio conversion mode by default
defaultAudio: false

# False to disable convert seek functionality
convertSeek: false

Please provide the URL of a video that causes the issue.

Any video

Describe your issue

Hi,

I am getting this error on any video I try to convert to mp3. Direct downloads of videos work fine:

An error occurred Conversion of DASH segments is not supported.

My installation steps are a little bit specific, so I will post them as follows:

Installation instructions: for Youtube-DL

Required Stuff:
ffmpeg
python
phantomjs

apt-get install python ffmpeg

For PhantomJS, install prerequisites first:
apt-get install build-essential chrpath libssl-dev libxft-dev libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev

Upload phantomjs-2.1.1-linux-x86_64.tar.bz2 from my backup.
Extract it to its folder "phantomjs-2.1.1-linux-x86_64"
mv phantomjs-2.1.1-linux-x86_64.tar.bz2 /usr/local/share
ln -sf /usr/local/share/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin

In /etc/ssl/openssl.cnf we need to comment the ssl_conf line.

[default_conf]
#ssl_conf = ssl_sect

Then my hosting environment had following functions disabled:
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,exec,system,passthru,shell_exec,proc_open,popen

and was complaining about proc_open, so I just removed all disabled functions from the line (none disabled anymore).

Updated config.yml and that was it.

Then I just added "$_ENV['LANG'] = 'en_US.UTF-8';" after use Alltube\ErrorHandler;
 and before the "try" in the index.php file to fix cyrillic names as you taught me.

I have tried to set ffmpeg verbosity to warning in config.yml, but I can't get more details. debug option in same file also didn't help providing me any insight.

Can you help me with this ?

And two unrelated questions:

  1. Which php functions are required for the script to function properly?
  2. What is phantomjs used for? It's the most difficult part of setup and kind of concerns me a bit, as I had to comment that thing on openssl (I don't know what else it could impact).

Thanks in advance.

Rudloff commented 1 year ago

Any video

Please don't do this, you can never be sure a bug can be reproduced with 100 % of existing videos. Providing an example saves the maintainer time. I suppose you mean any YouTube video. I can reproduce with https://youtu.be/fhS83VEUB5Y.

Conversion of DASH segments is not supported.

It looks like fetching a YouTube video with -f 'bestaudio/best/bestvideo' now returns an audio in the DASH format and AllTube does not support converting this format to MP3. DownloadController::getAudioResponse() would probably need to ask yt-dlp not to return DASH formats.

What is phantomjs used for?

It is used by some extractors, you probably don't need it unless you want to download videos from specific websites that require it.

tshpr commented 1 year ago

I put any, because I tried 5 different videos - I am sorry.

Anyway, should I replace the patched yt-dl with yt-dlp (quick fix) or wait for the latest release?

Thank you for your all your support and for the amazing software - it has saved me a lot of time over the years.

tshpr commented 1 year ago

Can I pay you for a fix to get the site working? :)