A Web UI frontend for YouTube-DL

Overview

A Web UI frontend for YouTube-DL

This is a small project that creates a simple and easy to use user interface for downloading content with YouTube-DL (or yt-dlp).

How it looks

Landing page

Landing Page

Downloading

Downloading

What it offers

  • A default option to download a video
  • A second drop down option for audio only
  • Downloads all content in highest resolution/quality
  • Log file to see what IP, Browser, OS and Video was downloaded
  • The support for all YouTube-DL compatible websites

How to use

After setting up Apache, I recommend the following steps for getting the program working. All this was tested on Debian 11.

  1. Install PHP
sudo apt update && sudo apt install php
  1. Install YouTube-DLP (yt-dlp)
sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dl
  1. Install yt-dlp dependencies. We use gallery-dl for instagram videos, I found it works a bit better
sudo apt update && sudo apt install gallery-dl ffmpeg atomicparsley
  1. Move the project to a location on your webserver. In this case, I am moving it to /public/yt-dl which will allow users to acces it at www.example.com/yt-dl
git clone https://github.com/wailord284/YouTube-DL-WebUI
mv YouTube-DL-WebUI /var/www/example.com/public/yt-dl
  1. Grant permissions. Your webserver may require permissions to run these files
sudo chown -R www-data:www-data /var/www/example.com/public/yt-dl
  1. Make a temp directory for videos and the log file
  • Find videoDIR within the ytdl.sh file. Change this to any location you want for the videos to be downloaded
  • Find logDIR within the ytdl.sh file. Change this to a location for a log file to be stored
  • Find $video_path within the video_download.php file. Change this to the same location as ytdl.sh videoDIR
  • Find $script_path within the video_download.php file. Change this to the location you put the project (yt-dl in the above example)
  • Finally, create a log file and directory where you just specified. Change the permissions the same way we did previously
sudo chown -R www-data:www-data videos
sudo chown -R www-data:www-data ytlog.txt
  1. Optional - Create a cronjob to clear old videos every week
  • In this example, replace /home/alex/videos/* with the location of your video directory
  • If you are prompted to choose a text editor, Nano is the easiest option. Pressing Control + X will let you save and exit
sudo apt update && sudo apt install cron
sudo systemctl enable --now cron
sudo crontab -e
@weekly rm -r /home/alex/videos/*
  1. Optional - Create cronjob to update yt-dlp every week
sudo crontab -e
@weekly yt-dlp --update
  1. Optional - Edit PHP options
  • If you download longer videos, PHP execution time may not be long enough. You may also need additional RAM
  • In Debian 11, this file is located here: /etc/php/7.4/apache2/php.ini
    • Change max_execution_time = 30 to max_execution_time = 300
    • Change memory_limit = 128M to memory_limit = 1024M

Config Examples

Cron

Cron Example

video_download.php config

video download

ytdl.sh config

yt download

You might also like...
This website is built for ArrowSmile dental clinic using HTML, CSS , JS for frontend and PHP & MySQL.

arrow-smile-dentist-website This website is built for ArrowSmile dental clinic using HTML, CSS , JS for frontend and PHP & MySQL. URL : http://arrowsm

TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application
TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application

TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application for storing, uploading, editing and managing files and folders online via web browser. The Application runs on PHP 5.5+, It allows the creation of multiple users and each user can have its own directory and a build-in support for managing text files with cloud9 IDE and it supports syntax highlighting for over 150+ languages and over 35+ themes.

Kyle is a web application built with Laravel for web developers and small companies to efficiently track and stay on top of yearly expenses related to services
Kyle is a web application built with Laravel for web developers and small companies to efficiently track and stay on top of yearly expenses related to services

Kyle Kyle is a web application built with Laravel for web developers and small companies to efficiently track and stay on top of yearly expenses relat

Unified sample web app. The easy way to learn web frameworks.
Unified sample web app. The easy way to learn web frameworks.

Notejam The easy way to learn web frameworks Do you know framework X and want to try framework Y? The easy way to start with a new framework is to com

Damn Vulnerable Web Application (DVWA) is a PHP/MySQL web application that is damn vulnerable.

Damn Vulnerable Web Application (DVWA) is a PHP/MySQL web application that is damn vulnerable. Its main goal is to be an aid for security professionals to test their skills and tools in a legal environment, help web developers better understand the processes of securing web applications and to aid both students & teachers to learn about web application security in a controlled class room environment.

A web interface for MySQL and MariaDB

phpMyAdmin A web interface for MySQL and MariaDB. https://www.phpmyadmin.net/ Code status Download You can get the newest release at https://www.phpmy

Simple web interface to manage Redis databases.

phpRedisAdmin phpRedisAdmin is a simple web interface to manage Redis databases. It is released under the Creative Commons Attribution 3.0 license. Th

Web Based, Cloud IDE

Codiad Web IDE Codiad is a web-based IDE framework with a small footprint and minimal requirements. Codiad was built with simplicity in mind, allowing

Owner
Alex G
https://www.linkedin.com/in/alex-gaudino-95a30b1a3/
Alex G
Sistema web para la administracion de una clinica veterinaria, Frontend y Backend

Clinica-Veterinaria-Web Se desea desarrollar un sistema Web para la administración de una clínica veterinaria. Se desea recolectar información sobre l

ErickBuster 1 Jan 15, 2022
A much faster alternative to youtube-dl built for PHP applications.

youtube-downloader This project was inspired by a very popular youtube-dl python package: https://github.com/rg3/youtube-dl Yes, there are multiple ot

null 668 Jan 3, 2023
Online All in One Video & Audio Downloader From YouTube,Facebook,Twitter,Pinterest,Instagram,MXtakatak,IPL, Tiktok and 1000+ More Sites too

DLhut Contact me If You Find ANy Bug ... PHP Search and Download any Videos from any site. Online All in One Video & Audio Downloader From YouTube,Fac

Vijay Kumar 6 Oct 11, 2021
Online All in One PHP Video & Audio Downloader From YouTube,Facebook,Twitter,Pinterest,Instagram,MXtakatak,IPL, Tiktok and 1000+ More Sites too

DLhut Contact me If You Find ANy Bug ... PHP Search and Download any Videos from any site. Online All in One Video & Audio Downloader From YouTube,Fac

Vijay Kumar 4 Nov 8, 2021
Belajar laravel 8 via YouTube....

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

null 1 Nov 6, 2021
The forum is a base for our Youtube tutorial series on "how to build a forum"

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

AngelJay 15 Oct 11, 2022
Download YouTube videos in MP4 and MP3 formats easily

Laravel Youtube Downloader Download YouTube videos in MP4 and MP3 formats easily ✨ Demo Install git clone https://github.com/IhsanDevs/LaravelYoutubeD

Ihsan Devs 4 Apr 18, 2022
Workout application with fully functional Frontend and Backend.

Fit_Me_Application About Application: This FIT-ME management system is an easy way to use gym and health membership system. It can help to keep the re

Talha 3 Feb 20, 2022
Frontend repository of libreoupas project, mostly written in PHP and JavaScript, using Bootstrap for responsivity.

libreoupas Description libreoupas est un site Internet permettant aux étudiant de la Faculté des Sciences et Technologies de Vandoeuvre-Lès-Nancy d'av

Clément Colné 4 Jan 6, 2022
Blog dengan framework laravel 8 sebagai backend dan tailwind sebagai frontend

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Muh Nur Afrizal 2 Dec 24, 2021