Make Your Own Youtube Downloader with PHP [ With Source Files]

Youtube Downloader online can be little frustrating as you are pushed by numerous ads on the way. So, why don’t we Make Our Own Youtube Downloader with PHP so that we don’t have hard time downloading youtube videos.

Support for Cipher signature

In fact, YouTube Downloader finally supports YouTube videos with a cipher signature too. ūüôā Please note that this functionality is hidden behind a config flag because it downloads JavaScript code from a 3rd party (YouTube) server and interprets it. This MAY harm your server, if the 3rd party server delivers malicious code.

You can activate this by the the¬†enable_youtube_decipher_signature¬†to¬†true¬†in¬†/config/custom.php. If the file don’t exists you can simple create it or copy from¬†/config/default.php.


  • Create a library that delivers data and download links for youtube videos.
  • Create a UI for downloading the videos.
  • Have no external dependencies to other services.
  • Have no external dependencies to other libraries in production.
  • Installation should be foolproof (unzip on server and go)


You must fit at least this requirements to use YouTube-Downloader:

  • PHP >= 5.6
  • Web server (Apache/Nginx/PHP built-in)


There are multiple ways to set up YouTube-Downloader

ZIP Download

  • Download the code for the newest release [ Download link in the bottom]
  • Unzip the code to your web server
  • Open the folder with your browser


  • Clone the code on your server with¬†$ git clone
  • Open the folder with your browser


The library code can be used in other projects via Composer.

The code isn’t available on at the moment, so you must add the repository in your¬†composer.json. Your¬†composer.json¬†should look like this

Now install the dependencies with $ composer update


You can manually visit a web form (the index.php file), enter a YouTube video id, and get in return a list of links showing the various formats in which that video can be downloaded. You can simply choose “save link as” or the equivalent to download the file.

Second, you can directly target the getvideo.php script, passing in a videoID and preferred format, and you will get redirected to the file itself.

Potential formats:

  • best = just give me the largest file / best quality
  • free = give the largest version including WebM, lower priority to FLV
  • ipad = ignore WebM and FLV, look for best MP4 file

You can also pass in a specific format number, if you know it.

Note this approach, because it redirects you to the file itself, currently bypasses the proxy option, so if your browser/server setup requires the proxy to work these will fail.

Feed subscription

You can subscribe both to YouTube channels and users via RSS. Feeds can be generated in the formats listed above.

Generating a feed for a YouTube channel works as follows:

To generate a feed for a YouTube user:

The generated feed is a standard RSS feed and can be subscribed to in any feed reader.


ZIP Download

  1. Backup your config file from config/custom.php.
  2. Remove all files in the project folder.
  3. Download the newest release from link below.
  4. Insert your config file back to config/custom.php.




If you people have any problem on the process then just comment down below on disqus and afterwards we will get in touch so-on. Helps us continue our work by completing a little task below and your download will be available.



You may also like...