HTML GUI for youtube-dl
PHP CSS Smarty JavaScript HTML ApacheConf Nginx
Failed to load latest commit information.
classes Lint Jan 10, 2017
controllers Lint Jan 10, 2017
css Add background color Dec 22, 2016
img Optimize images Apr 9, 2016
js Remove annoying jslint warning Jul 22, 2016
templates Add an uglyUrls option that disables URL rewriting (fixes #88) Jan 10, 2017
templates_c Add templates_c to repo Jun 28, 2015
tests Lint Jan 10, 2017
.dockerignore Docker build Dec 4, 2015
.gitignore Generate clover test coverage Aug 18, 2016
.htaccess Add ifmodule conditions in .htaccess Jan 8, 2017
.travis.yml Fix Travis builds Dec 18, 2016 Add contribution guidelines Aug 29, 2016
Dockerfile Fix Docker builds Dec 18, 2016 Update Heroku question in FAQ Jan 1, 2017
Gruntfile.js Don't include phpunit and phpcs in release package Oct 18, 2016
LICENSE Create LICENSE Jan 7, 2015
Procfile Use Apache on Heroku Jun 4, 2015 Add how to use as a library in README Oct 19, 2016
bower.json jsonlint Aug 20, 2016
composer.json youtube-dl update Jan 10, 2017
composer.lock youtube-dl update Jan 10, 2017
config.example.yml Add an uglyUrls option that disables URL rewriting (fixes #88) Jan 10, 2017
config_test.yml Use separate config file for tests Aug 18, 2016
error.html Remove useless metadata May 1, 2016
index.php Lint Jan 10, 2017
maintenance.html Remove useless metadata May 1, 2016
manifest.json Add background color Dec 22, 2016
manifest.webapp List manifest.webapp too Aug 20, 2016
nginx.conf Nginx Apr 11, 2015
package.json 0.7.2-beta release Jan 10, 2017
php.ini Docker build Dec 4, 2015
phpdoc.xml Add title to code doc Oct 19, 2016
phpunit.xml Generate clover test coverage Aug 18, 2016
requirements.txt Use Python buildpack in order to have a recent Python version Dec 22, 2016
robots.txt Initial import Mar 13, 2014
sitemap.xml Correct URLs Oct 31, 2015

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 npm and Composer:

npm install
composer install

This will download all the required dependencies.

(Note that it will download the ffmpeg binary for 64-bits Linux. If you are on another platform, you might want to specify the path to avconv/ffmpeg in your config file.)

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

chmod 777 templates_c/

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


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

cp config.example.yml config.yml

PHP requirements

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

  • fileinfo
  • intl
  • mbstring
  • curl

Web server configuration


You will need the following modules:

  • mod_mime
  • mod_rewrite


Here is an exemple 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 avconv, rtmpdump and curl in order to enable conversions. If you don't want to enable conversions, you can disable it in config.yml.

On Debian-based systems:

sudo apt-get install libav-tools rtmpdump curl

You also probably need to edit the avconv variable in config.yml so that it points to your ffmpeg/avconv binary (/usr/bin/avconv on Debian/Ubuntu).

Use as library

Alltube can also be used as a library to extract a video URL from a webpage.

You can install it with:

composer require rudloff/alltube

You can then use it in your PHP code:

use Alltube\Config;
use Alltube\VideoDownload;

require_once __DIR__.'/vendor/autoload.php';

$downloader = new VideoDownload(
    new Config(
            'youtubedl' => '/usr/local/bin/youtube-dl',


The library documentation is available on

You can also have a look at this example project.


Please read the FAQ before reporting any issue.


This software is available under the GNU General Public License.

Please use a different name and logo if you run it on a public server.