You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Pierre Rudloff f32412e861 fixup! fix dockerfile permission issue (#426) 4 weeks ago
.github Merge branch 'master' into develop 6 months ago
classes Remove every reference to (#422) 2 months ago
config Provide config toggle to disable the 'convert seek' function (#311) 2 years ago
css Generate <img> tags with Smarty 10 months ago
i18n Update (redo) zh_CN translation (#369) 8 months ago
img Remove Google Cast support since the JS library does not seem to be maintained anymore and it frequently breaks 6 years ago
patches Disable the generic extractor entirely 9 months ago
resources Remove every reference to (#422) 2 months ago
templates Remove every reference to (#422) 2 months ago
templates_c Add templates_c to repo 8 years ago
tests Missing exception in @throws tag 9 months ago
.dockerignore Docker build 7 years ago
.gitignore Don't install open-sans in vendor 2 years ago
.htaccess Remove every reference to (#422) 2 months ago Create 5 years ago Add some rules for pull requests 2 years ago
Dockerfile fixup! fix dockerfile permission issue (#426) 4 weeks ago
LICENSE Create LICENSE 8 years ago
Procfile Use Apache on Heroku 8 years ago Remove every reference to (#422) 2 months ago Add security policy 10 months ago
app.json Remove every reference to (#422) 2 months ago
composer.json Remove every reference to (#422) 2 months ago
composer.lock Merge branch 'master' into develop 2 months ago
grumphp.yml Use phpmnd to detect magic numbers 10 months ago
heroku.yml heroku-docker-fix (#318) 2 years ago
index.php Don't redirect to REQUEST_URI when browsing to index.php 10 months ago
phpunit.xml Upgrade phpunit to 9.5 1 year ago
requirements.txt Use Python buildpack in order to have a recent Python version 6 years ago
runtime.txt Use Python 3.8.12 on Heroku 10 months ago

AllTube Download

HTML GUI for youtube-dl



From a release package

You can download the latest release package here.

You just have to unzip it on your server and it should be ready to use.

From Git

In order to get AllTube working, you need to use Composer:

composer install

This will download all the required dependencies.

You should also ensure that the templates_c folder has the right permissions:

chmod 770 templates_c/

(You need to adapt this to your permission model. You can find more information about this in the Smarty documentation.)

If your web server is Apache, you need to set the AllowOverride setting to All or FileInfo.


When updating from Git, you need to run Composer again:

git pull
composer install

On Heroku


On Cloudron

Cloudron is a complete solution for running apps on your server and keeping them up-to-date and secure.


The source code for the package can be found here.


If you want to use a custom config, you need to create a config file:

cp config/config.example.yml config/config.yml

PHP requirements

You will need PHP 7.2 (or higher) and the following PHP modules:

  • intl
  • mbstring
  • gmp

Web server configuration

If you want to serve the application under a basepath and/or with a different internal than external port (scenario: nginx->docker setup) Alltube supports the following X-Forwarded headers:

  • X-Forwarded-Host (ex.
  • X-Forwarded-Path (ex: /alltube)
  • X-Forwarded-Port (ex: 5555)
  • X-Forwarded-Proto (ex: https)


The following modules are recommended:

  • mod_mime
  • mod_rewrite
  • mod_expires
  • mod_filter
  • mod_deflate
  • mod_headers


Here is an example Nginx configuration:

server {
        server_name localhost;
        listen 443 ssl;

        root /var/www/path/to/alltube;
        index index.php;

        access_log  /var/log/nginx/alltube.access.log;
        error_log   /var/log/nginx/alltube.error.log;

        types {
                text/html   html htm shtml;
                text/css    css;
                text/xml    xml;
                application/x-web-app-manifest+json   webapp;

        # Deny access to dotfiles
        location ~ /\. {
                deny all;

        location / {
                try_files $uri /index.php?$args;

        location ~ \.php$ {
                try_files $uri /index.php?$args;

                fastcgi_param     PATH_INFO $fastcgi_path_info;
                fastcgi_param     PATH_TRANSLATED $document_root$fastcgi_path_info;
                fastcgi_param     SCRIPT_FILENAME $document_root$fastcgi_script_name;

                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_intercept_errors off;

                fastcgi_buffer_size 16k;
                fastcgi_buffers 4 16k;

                include fastcgi_params;

Other dependencies

You need ffmpeg in order to enable conversions. (Conversions are disabled by default.)

On Debian-based systems:

sudo apt-get install ffmpeg

If your ffmpeg binary is not installed at /usr/bin/ffmpeg, you also need to edit the ffmpeg variable in config.yml.

Use as a library

The Video class is now available as a separate package so that you can reuse it in your projects.


We also provide a JSON API that you can use like this: /json?

It returns a JSON object generated by youtube-dl. You can find a list of all the properties in the youtube-dl documentation.


Please read the FAQ before reporting any issue.


This software is available under the GNU General Public License.