2016-10-05 15:08:46 +00:00
# Alltube Download
2014-03-13 19:02:32 +00:00
2016-10-05 15:08:46 +00:00
HTML GUI for youtube-dl ([alltubedownload.net](http://alltubedownload.net/))
2014-10-19 18:51:54 +00:00
2015-03-08 15:42:16 +00:00
![Screenshot ](img/screenshot.png "Alltube GUI screenshot" )
2016-07-27 11:18:33 +00:00
## Setup
2016-06-03 19:31:54 +00:00
### From a release package
2016-10-05 15:08:46 +00:00
2016-06-03 19:31:54 +00: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 15:08:46 +00:00
2017-10-17 13:27:57 +00:00
In order to get AllTube working, you need to use [Yarn ](https://yarnpkg.com/ ) and [Composer ](https://getcomposer.org/ ):
2016-10-05 15:08:46 +00:00
2016-07-27 11:40:18 +00:00
```bash
2017-10-17 13:27:57 +00:00
yarn install
2016-07-27 11:40:18 +00:00
composer install
```
2014-10-27 13:42:44 +00:00
2015-06-28 15:12:38 +00:00
This will download all the required dependencies.
2015-01-07 10:07:19 +00:00
2015-06-28 15:12:38 +00:00
(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.)
2015-06-28 17:53:18 +00:00
You should also ensure that the *templates_c* folder has the right permissions:
2016-10-05 15:08:46 +00:00
2016-07-27 11:40:18 +00:00
```bash
chmod 777 templates_c/
```
2015-06-28 17:53:18 +00:00
2016-02-21 13:43:59 +00:00
If your web server is Apache, you need to set the `AllowOverride` setting to `All` or `FileInfo` .
2017-03-02 21:58:37 +00:00
#### Update
2017-10-17 13:27:57 +00:00
When updating from Git, you need to run yarn and Composer again:
2017-03-02 21:58:37 +00:00
```bash
git pull
2017-10-17 13:27:57 +00:00
yarn install
2017-03-02 21:58:37 +00:00
composer install
```
2017-06-01 20:16:15 +00:00
### On Heroku
[![Deploy ](https://www.herokucdn.com/deploy/button.svg )](https://heroku.com/deploy)
2016-07-27 11:18:33 +00:00
## Config
2015-01-07 10:07:19 +00:00
2015-06-28 15:12:38 +00:00
If you want to use a custom config, you need to create a config file:
2016-10-05 15:08:46 +00:00
2016-07-27 11:40:18 +00:00
```bash
2017-05-15 05:25:14 +00:00
cp config/config.example.yml config/config.yml
2016-07-27 11:40:18 +00:00
```
2015-01-07 10:07:19 +00:00
2016-10-09 09:41:09 +00:00
## PHP requirements
You will need PHP 5.5 (or higher) and the following PHP modules:
* fileinfo
* intl
* mbstring
* curl
2016-07-27 11:18:33 +00:00
## Web server configuration
2016-10-05 15:08:46 +00:00
2016-07-27 11:18:33 +00:00
### Apache
2016-10-05 15:08:46 +00:00
2016-03-16 20:39:48 +00:00
You will need the following modules:
* mod_mime
* mod_rewrite
2016-07-27 11:18:33 +00:00
### Nginx
2016-10-05 15:08:46 +00:00
2016-03-16 20:39:48 +00:00
Here is an exemple Nginx configuration:
2016-10-05 15:08:46 +00:00
2016-07-27 11:40:18 +00:00
```nginx
server {
server_name localhost;
listen 443 ssl;
2016-03-16 20:39:48 +00:00
2016-07-27 11:40:18 +00:00
root /var/www/path/to/alltube;
index index.php;
2016-03-16 20:39:48 +00:00
2016-07-27 11:40:18 +00:00
access_log /var/log/nginx/alltube.access.log;
error_log /var/log/nginx/alltube.error.log;
2016-03-16 20:39:48 +00:00
2016-07-27 11:40:18 +00:00
types {
text/html html htm shtml;
text/css css;
text/xml xml;
application/x-web-app-manifest+json webapp;
}
2016-03-16 20:39:48 +00:00
2016-07-27 11:40:18 +00:00
# Deny access to dotfiles
location ~ /\. {
deny all;
}
2016-03-16 20:39:48 +00:00
2016-07-27 11:40:18 +00:00
location / {
try_files $uri /index.php?$args;
}
2016-03-16 20:39:48 +00:00
2016-07-27 11:40:18 +00:00
location ~ \.php$ {
try_files $uri /index.php?$args;
2016-03-16 20:39:48 +00:00
2016-07-27 11:40:18 +00: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 20:39:48 +00:00
2016-07-27 11:40:18 +00: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 20:39:48 +00:00
2016-07-27 11:40:18 +00:00
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
2016-03-16 20:39:48 +00:00
2016-07-27 11:40:18 +00:00
include fastcgi_params;
}
}
```
2015-01-07 10:07:19 +00:00
2016-07-27 11:18:33 +00:00
## Other dependencies
2016-10-05 15:08:46 +00:00
2017-04-24 17:16:38 +00:00
You need [avconv ](https://libav.org/avconv.html ) and [rtmpdump ](http://rtmpdump.mplayerhq.hu/ ) in order to enable conversions.
2016-10-10 15:07:19 +00:00
If you don't want to enable conversions, you can disable it in `config.yml` .
2015-04-07 19:41:13 +00:00
On Debian-based systems:
2016-10-05 15:08:46 +00:00
2016-07-27 11:40:18 +00:00
```bash
2017-04-24 17:16:38 +00:00
sudo apt-get install libav-tools rtmpdump
2016-07-27 11:40:18 +00:00
```
2016-10-05 15:08:46 +00:00
2016-10-10 15:07:19 +00:00
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).
2016-10-19 16:32:13 +00:00
## Use as library
Alltube can also be used as a library to extract a video URL from a webpage.
You can install it with:
```bash
composer require rudloff/alltube
```
You can then use it in your PHP code:
```php
use Alltube\Config;
use Alltube\VideoDownload;
require_once __DIR__ .'/vendor/autoload.php';
$downloader = new VideoDownload(
new Config(
[
'youtubedl' => '/usr/local/bin/youtube-dl',
]
)
);
$downloader->getURL('https://www.youtube.com/watch?v=dQw4w9WgXcQ');
```
The library documentation is available on [alltube.surge.sh ](https://alltube.surge.sh/classes/Alltube.VideoDownload.html ).
You can also have a look at this [example project ](https://github.com/Rudloff/alltube-example-project ).
2016-10-10 15:07:19 +00:00
## FAQ
2017-05-15 05:25:14 +00:00
Please read the [FAQ ](resources/FAQ.md ) before reporting any issue.
2016-10-19 16:32:13 +00:00
## License
This software is available under the [GNU General Public License ](http://www.gnu.org/licenses/gpl.html ).
Please __use a different name and logo__ if you run it on a public server.