Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
Pierre Rudloff 0197554681 Fix typo pirms 1 nedēļas
classes Disable IDN conversion pirms 1 nedēļas
config Switch from rg3/youtube-dl to ytdl-org/youtube-dl pirms 2 mēnešiem
controllers Use the new Symfony error handler pirms 1 nedēļas
css Stop using grunt and use grumphp and robo instead pirms 5 mēnešiem
docs docs(phpdoc): Fix CSP for doc pages pirms 8 mēnešiem
i18n New Turkish locale (provided by @urasbey) pirms 2 mēnešiem
img Remove Google Cast support since the JS library does not seem to be maintained anymore and it frequently breaks pirms 2 gadiem
resources Lint pirms 1 nedēļas
templates Lint pirms 1 nedēļas
templates_c Add templates_c to repo pirms 4 gadiem
tests Fix stream tests pirms 1 nedēļas
.dockerignore Docker build pirms 4 gadiem
.gitignore Switch to phpunit 8 pirms 5 mēnešiem
.htaccess Check if mod_deflate is enabled (fixes #270) pirms 1 mēnesi
.travis.yml Lint pirms 1 nedēļas
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md pirms 2 gadiem
CONTRIBUTING.md docs: Be more consistent and use "AllTube" everywhere pirms 2 gadiem
Dockerfile Stop using grunt and use grumphp and robo instead pirms 5 mēnešiem
ISSUE_TEMPLATE.md Add YAML block for config in issue template pirms 1 mēnesi
LICENSE Create LICENSE pirms 5 gadiem
Procfile Use Apache on Heroku pirms 5 gadiem
README.md Fix typo pirms 1 nedēļas
RoboFile.php Add CSS to release package (fixes #267) pirms 2 mēnešiem
app.json Stop using grunt and use grumphp and robo instead pirms 5 mēnešiem
composer.json grumphp should be a dev dependency pirms 1 nedēļas
composer.lock grumphp should be a dev dependency pirms 1 nedēļas
grumphp.yml Remove obsolete phpstan rule pirms 1 nedēļas
index.php Use the new Symfony error handler pirms 1 nedēļas
phpunit.xml Lint pirms 1 nedēļas
requirements.txt Use Python buildpack in order to have a recent Python version pirms 3 gadiem
robots.txt fix: Use HTTPS in robots.txt pirms 2 gadiem
runtime.txt Use Python 2.7.17 on Heroku pirms 5 mēnešiem

README.md

AllTube Download

Donate using Liberapay

HTML GUI for youtube-dl (alltubedownload.net)

Screenshot

Setup

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.

(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 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.

Update

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

git pull
composer install

On Heroku

Deploy

Config

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.1 (or higher) and the following PHP modules:

  • fileinfo
  • intl
  • mbstring
  • curl

Web server configuration

Apache

You will need the following modules:

  • mod_mime
  • mod_rewrite

Nginx

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 avconv 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

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\Video;

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

Config::setOptions(
    [
        'youtubedl' => '/usr/local/bin/youtube-dl',
    ]
);
$video = new Video('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
$video->getUrl();

You can also have a look at this example project.

JSON API

We also provide a JSON API that you can use like this: /json?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ

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

FAQ

Please read the FAQ before reporting any issue.

License

This software is available under the GNU General Public License.