Go to file
Pierre Rudloff b49eea5926 Switched to yt-dlp instead of youtube-dl
PHP 7.4+ is now required
 -----BEGIN SSH SIGNATURE-----
 U1NIU0lHAAAAAQAAAZcAAAAHc3NoLXJzYQAAAAMBAAEAAAGBAJ1cjUGHGZz2Xlnuxq9dZ2
 wA/r2ineVomdWGZBiq9GYcfUirCaArD49YsXbdQKkcHhrQ+gMUNQP4iOWjuPBG5WAPrORz
 LXUXwmk0UHdEPdJ2LymHXQsyYyHaldikt3gfsiD0ny/Uf3V9lL3vnrEUhQAxIYN87RaQun
 OL0S5y5wOp3vr8DwMlvAUDfZbzZgJ56nzVWRElVLNuQCQSZta9imqnJpzHQf4KTMut191S
 hgQjBA0TWeOAqGVeIMOctLqNY1gL5QUSyg5RYmBHjResH8tnOkfPElE1Ih19MCCQ9Eaubw
 g1cS6Ls6LgbTIdvyMud6ep+0iF3ifj0g7w1X6NvQfQp0JcWkU3eXyQfOGjdePZG9Kn+27Q
 EeMv47cyCGuMdGbpbFoD/yR82T2n78rPmxbYEnPnJSmuy30Wi8reYeaQUP2z+Krexk5tGQ
 a/thYIk1yhN+Ui3nSr78sATwgqateS6VvNw8nY315PUzmf4Bk0kDCnj7Q7z4wenHAhkayU
 FwAAAANnaXQAAAAAAAAABnNoYTUxMgAAAZQAAAAMcnNhLXNoYTItNTEyAAABgCH4hDLgvS
 XOlPL7H+bnRqJhhWFBhQA9F8kV4SZArBPlexDTcfHv9HoTTC2oA8sYKrpUGf2lazPNjzT3
 yB55q0r2wzDe4R5HFhnn6uPdgzqVnDDowRwaX/DLBfTeDZt5HYFywQtFSBpnxl3y76A0Ml
 vWcK3LZRtLNDYU7uoCSmq5aj8WBl5+hv8Y9uuHk31cH8eLhuOtx0esDR3NaLfOLKefSdEy
 dRto/XLrsnKeFaLwdpY3OwTMuyNCZMD3mMX4USpmmJmr3Zo6+mkMpfH0lc4V3Eky+s+MBR
 g5gDrUgG3iyuIE5RitbznzT6hgRDJa6XHkxKpLZbFaXXwke0Uwg7+aeBlOktmCCdRAw926
 neITK2oXeNtTDiinvV9HOhfZBOmRLm9JT6HESC/3BhXQXcEGR2/sDxjcMAAGoEO0X99dc3
 i982BdX/ADPFKNTYF0naX7kLSLamnFIebYZSwkgM2wZiDQOFNR9kuu/Dr8ELnhYYTkojVy
 5ucNnlHTyt5P8g==
 -----END SSH SIGNATURE-----
gpgsig -----BEGIN SSH SIGNATURE-----
 U1NIU0lHAAAAAQAAAZcAAAAHc3NoLXJzYQAAAAMBAAEAAAGBAJ1cjUGHGZz2Xlnuxq9dZ2
 wA/r2ineVomdWGZBiq9GYcfUirCaArD49YsXbdQKkcHhrQ+gMUNQP4iOWjuPBG5WAPrORz
 LXUXwmk0UHdEPdJ2LymHXQsyYyHaldikt3gfsiD0ny/Uf3V9lL3vnrEUhQAxIYN87RaQun
 OL0S5y5wOp3vr8DwMlvAUDfZbzZgJ56nzVWRElVLNuQCQSZta9imqnJpzHQf4KTMut191S
 hgQjBA0TWeOAqGVeIMOctLqNY1gL5QUSyg5RYmBHjResH8tnOkfPElE1Ih19MCCQ9Eaubw
 g1cS6Ls6LgbTIdvyMud6ep+0iF3ifj0g7w1X6NvQfQp0JcWkU3eXyQfOGjdePZG9Kn+27Q
 EeMv47cyCGuMdGbpbFoD/yR82T2n78rPmxbYEnPnJSmuy30Wi8reYeaQUP2z+Krexk5tGQ
 a/thYIk1yhN+Ui3nSr78sATwgqateS6VvNw8nY315PUzmf4Bk0kDCnj7Q7z4wenHAhkayU
 FwAAAANnaXQAAAAAAAAABnNoYTUxMgAAAZQAAAAMcnNhLXNoYTItNTEyAAABgGhOxEyNbl
 hremZYaQNx/7abcaP1SiwRVLAdk0nIFMR65c6gWqcVGrjFQzpPOx6gL+BnrZtXgPYyZ3RK
 31MQRUhGpfyAgwz1q40eo0jmkeGdZV7l2q58xqISQcGxD/4GuTf6/VTYLlp87zXeXCzzN7
 78l/M5xrmBkZpOOxQgyPjgUSZYJ1h4cnGTqBQnHkaU/G/ZA7uI2a6wgBiPteJ7obsHajOe
 lEnAygVfpNIG6vwntmVKjSlSHwUhHo4DVYd07JbWagKuF9itgHfkT9ZYRK/4nL7edTPTA4
 KUWbtRPz/pII3aRxBVcrNrRceiXinqSdDxprNujChRQg0noCfuojtFLIS5jaGEDV6ubQsu
 xM1txDdNnDhObOqNavZ4vbE8rRQxGzb8XF/IrKvSkPwhGAIe8nCnynG7ODMbYoPzVMp40B
 P7mlE7g9ZG8JLNvVexNZlFL21+aAu5RQjrABQfj8NBwAtjolFYOqdA0fvpgzeXwscOJ1jG
 F4WHZ9t08FpyHg==
 -----END SSH SIGNATURE-----

Merge tag '3.2.0-alpha' into develop

Switched to yt-dlp instead of youtube-dl
PHP 7.4+ is now required
2023-04-22 23:23:34 +02:00
.github Stop supporting PHP 7.3 (#430) 2023-03-21 20:07:08 +01:00
classes Switch to yt-dlp (fixes #432) 2023-03-30 21:41:08 +02:00
config Switch to yt-dlp (fixes #432) 2023-03-30 21:41:08 +02:00
css Generate <img> tags with Smarty 2022-02-06 19:17:05 +01:00
i18n Update (redo) zh_CN translation (#369) 2022-04-07 22:14:08 +02:00
img Remove Google Cast support since the JS library does not seem to be maintained anymore and it frequently breaks 2017-07-03 10:19:50 +02:00
resources Remove every reference to alltubedownload.net (#422) 2022-10-16 15:22:47 +02:00
templates ucfirst Smarty modifier is deprecated 2023-03-21 20:25:47 +01:00
templates_c Add templates_c to repo 2015-06-28 19:53:18 +02:00
tests ucfirst Smarty modifier is deprecated 2023-03-21 20:25:47 +01:00
.dockerignore Docker build 2015-12-04 11:08:47 +01:00
.gitignore Don't install open-sans in vendor 2020-10-20 01:24:36 +02:00
.htaccess Remove every reference to alltubedownload.net (#422) 2022-10-16 15:22:47 +02:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2017-07-30 14:46:41 +02:00
CONTRIBUTING.md Add some rules for pull requests 2020-09-27 17:52:27 +02:00
Dockerfile fixup! fix dockerfile permission issue (#426) 2023-03-21 20:07:31 +01:00
LICENSE Create LICENSE 2015-01-07 11:08:17 +01:00
Procfile Use Apache on Heroku 2015-06-04 20:34:41 +02:00
README.md Remove every reference to alltubedownload.net (#422) 2022-10-16 15:22:47 +02:00
SECURITY.md Add security policy 2022-02-19 20:47:53 +01:00
app.json Remove every reference to alltubedownload.net (#422) 2022-10-16 15:22:47 +02:00
composer.json Switch to yt-dlp (fixes #432) 2023-03-30 21:41:08 +02:00
composer.lock Merge branch 'master' into develop 2023-04-22 23:16:52 +02:00
grumphp.yml Use phpmnd to detect magic numbers 2022-01-27 00:03:37 +01:00
heroku.yml heroku-docker-fix (#318) 2020-10-13 20:37:31 +02:00
index.php Don't redirect to REQUEST_URI when browsing to index.php 2022-02-20 13:28:57 +01:00
phpunit.xml Upgrade phpunit to 9.5 2021-10-17 21:14:39 +02:00
requirements.txt Use Python buildpack in order to have a recent Python version 2016-12-22 13:30:53 +01:00
runtime.txt Use Python 3.8.12 on Heroku 2022-02-22 23:10:54 +01:00

README.md

AllTube Download

HTML GUI for youtube-dl

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.

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

On Cloudron

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

Install

The source code for the package can be found here.

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.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. another.domain.com)
  • X-Forwarded-Path (ex: /alltube)
  • X-Forwarded-Port (ex: 5555)
  • X-Forwarded-Proto (ex: https)

Apache

The following modules are recommended:

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

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

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.