2018-03-19 15:49:22 +01:00
# AllTube Download
2014-03-13 12:02:32 -07:00
2016-10-05 17:08:46 +02:00
HTML GUI for youtube-dl ([alltubedownload.net ](http://alltubedownload.net/ ))
2014-10-19 20:51:54 +02:00
2018-03-19 15:49:22 +01:00

2015-03-08 16:42:16 +01:00
2016-07-27 13:18:33 +02:00
## Setup
2016-06-03 21:31:54 +02:00
### From a release package
2016-10-05 17:08:46 +02:00
2016-06-03 21:31:54 +02:00
You can download the latest release package [here ](https://github.com/Rudloff/alltube/releases ).
You just have to unzip it on your server and it should be ready to use.
### From Git
2016-10-05 17:08:46 +02:00
2017-12-20 11:21:36 +01:00
In order to get AllTube working,
2019-11-30 16:33:39 +01:00
you need to use [Composer ](https://getcomposer.org/ ):
2016-10-05 17:08:46 +02:00
2016-07-27 13:40:18 +02:00
```bash
composer install
```
2014-10-27 14:42:44 +01:00
2015-06-28 17:12:38 +02:00
This will download all the required dependencies.
2015-01-07 11:07:19 +01:00
2015-06-28 19:53:18 +02:00
You should also ensure that the *templates_c* folder has the right permissions:
2016-10-05 17:08:46 +02:00
2016-07-27 13:40:18 +02:00
```bash
2018-03-04 19:59:50 +01:00
chmod 770 templates_c/
2016-07-27 13:40:18 +02:00
```
2015-06-28 19:53:18 +02:00
2018-03-04 19:59:50 +01:00
(You need to adapt this to your permission model.
You can find more information about this [in the Smarty documentation ](https://www.smarty.net/docsv2/en/installing.smarty.basic.tpl#id2778738 ).)
2017-12-20 11:21:36 +01:00
If your web server is Apache,
you need to set the `AllowOverride` setting to `All` or `FileInfo` .
2016-02-21 14:43:59 +01:00
2017-03-02 22:58:37 +01:00
#### Update
2019-11-30 16:33:39 +01:00
When updating from Git, you need to run Composer again:
2017-03-02 22:58:37 +01:00
```bash
git pull
composer install
```
2017-06-01 22:16:15 +02:00
### On Heroku
[](https://heroku.com/deploy)
2020-07-02 21:56:23 +02:00
### On Cloudron
Cloudron is a complete solution for running apps on your server and keeping them up-to-date and secure.
[](https://cloudron.io/store/net.alltubedownload.cloudronapp.html)
The source code for the package can be found [here ](https://git.cloudron.io/cloudron/alltube-app ).
2016-07-27 13:18:33 +02:00
## Config
2015-01-07 11:07:19 +01:00
2015-06-28 17:12:38 +02:00
If you want to use a custom config, you need to create a config file:
2016-10-05 17:08:46 +02:00
2016-07-27 13:40:18 +02:00
```bash
2017-05-15 07:25:14 +02:00
cp config/config.example.yml config/config.yml
2016-07-27 13:40:18 +02:00
```
2015-01-07 11:07:19 +01:00
2016-10-09 11:41:09 +02:00
## PHP requirements
2020-06-23 01:15:27 +02:00
You will need PHP 7.2 (or higher) and the following PHP modules:
2016-10-09 11:41:09 +02:00
* intl
* mbstring
2020-06-23 01:05:44 +02:00
* gmp
2016-10-09 11:41:09 +02:00
2016-07-27 13:18:33 +02:00
## Web server configuration
2016-10-05 17:08:46 +02:00
2020-10-19 20:18:03 +00:00
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` )
2016-07-27 13:18:33 +02:00
### Apache
2016-10-05 17:08:46 +02:00
2020-06-23 01:05:44 +02:00
The following modules are recommended:
2016-03-16 21:39:48 +01:00
* mod_mime
* mod_rewrite
2020-06-23 01:05:44 +02:00
* mod_expires
* mod_filter
* mod_deflate
* mod_headers
2016-03-16 21:39:48 +01:00
2016-07-27 13:18:33 +02:00
### Nginx
2016-10-05 17:08:46 +02:00
2020-05-14 14:10:38 +02:00
Here is an example Nginx configuration:
2016-10-05 17:08:46 +02:00
2016-07-27 13:40:18 +02:00
```nginx
server {
server_name localhost;
listen 443 ssl;
2016-03-16 21:39:48 +01:00
2016-07-27 13:40:18 +02:00
root /var/www/path/to/alltube;
index index.php;
2016-03-16 21:39:48 +01:00
2016-07-27 13:40:18 +02:00
access_log /var/log/nginx/alltube.access.log;
error_log /var/log/nginx/alltube.error.log;
2016-03-16 21:39:48 +01:00
2016-07-27 13:40:18 +02:00
types {
text/html html htm shtml;
text/css css;
text/xml xml;
application/x-web-app-manifest+json webapp;
}
2016-03-16 21:39:48 +01:00
2016-07-27 13:40:18 +02:00
# Deny access to dotfiles
location ~ /\. {
deny all;
}
2016-03-16 21:39:48 +01:00
2016-07-27 13:40:18 +02:00
location / {
try_files $uri /index.php?$args;
}
2016-03-16 21:39:48 +01:00
2016-07-27 13:40:18 +02:00
location ~ \.php$ {
try_files $uri /index.php?$args;
2016-03-16 21:39:48 +01:00
2016-07-27 13:40:18 +02:00
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;
2016-03-16 21:39:48 +01:00
2016-07-27 13:40:18 +02:00
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_intercept_errors off;
2016-03-16 21:39:48 +01:00
2016-07-27 13:40:18 +02:00
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
2016-03-16 21:39:48 +01:00
2016-07-27 13:40:18 +02:00
include fastcgi_params;
}
}
```
2015-01-07 11:07:19 +01:00
2016-07-27 13:18:33 +02:00
## Other dependencies
2016-10-05 17:08:46 +02:00
2020-06-22 23:26:47 +02:00
You need [ffmpeg ](https://ffmpeg.org/ )
2017-12-20 11:21:36 +01:00
in order to enable conversions.
2020-06-23 01:05:44 +02:00
(Conversions are disabled by default.)
2015-04-07 21:41:13 +02:00
On Debian-based systems:
2016-10-05 17:08:46 +02:00
2016-07-27 13:40:18 +02:00
```bash
2020-06-22 23:26:47 +02:00
sudo apt-get install ffmpeg
2016-07-27 13:40:18 +02:00
```
2016-10-05 17:08:46 +02:00
2020-06-23 01:05:44 +02:00
If your ffmpeg binary is not installed at `/usr/bin/ffmpeg` , you also need to edit the `ffmpeg` variable in `config.yml` .
2016-10-10 17:07:19 +02:00
2020-06-23 01:05:44 +02:00
## Use as a library
2016-10-19 18:32:13 +02:00
2020-06-21 01:44:20 +02:00
The `Video` class is now available as [a separate package ](https://packagist.org/packages/rudloff/alltube-library )
so that you can reuse it in your projects.
2016-10-19 18:32:13 +02:00
2018-03-20 12:02:21 +01:00
## 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 ](https://alltubedownload.net/json?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ )
2018-03-20 12:21:24 +01:00
It returns a JSON object generated by youtube-dl.
2020-03-19 10:19:36 +01:00
You can find a list of all the properties [in the youtube-dl documentation ](https://github.com/ytdl-org/youtube-dl#output-template ).
2018-03-20 12:21:24 +01:00
2016-10-10 17:07:19 +02:00
## FAQ
2017-05-15 07:25:14 +02:00
Please read the [FAQ ](resources/FAQ.md ) before reporting any issue.
2016-10-19 18:32:13 +02:00
## License
This software is available under the [GNU General Public License ](http://www.gnu.org/licenses/gpl.html ).