Skip to content
/ ytbdl Public

Project Based Learning 3: Youtube Downloader

Notifications You must be signed in to change notification settings

sugarete/ytbdl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Based Learning 3 Repo: Youtube Downloader

Requirements: C/C++/.NET/Py

  • Connect to Youtube
  • Search Query Processing (Using Google Data API) or (Youtube Data API)
  • Examine HTML to get HTML video's link (OpenSource)
  • Download FLV file - Extract Sound
  • Networking Interface and Download

Plan:

  • Using Youtube Data API to get video's link and search query
  • Change the method: download to server and return file to client
  • Create Quality Selection Menu (1080p, 720p, 480p, 360p, 240p, 144p)
  • Create Extract Sound Menu (Yes/No)
  • Create Video format Menu (mp4, flv, avi, mkv, webm)
  • Create edit video menu (Cut, Merge, Add Sound, Add Subtitle) (1/4 DONE)
  • Store download history

Guide to use Github:

Guide to run the server:

  • Create virutal environment by running python -m venv .venv in the terminal.
  • Make sure you activate the virtual environment before running the server by running .venv/Scripts/activate in the terminal.
  • Run pip install -r requirements.txt to install all the required packages.
  • Run python ytbdl.py to start server and open localhost:80 to use.
  • If you want to use format other than mp4, you need to install ffmpeg and add it to PATH, Guide for installation can be found here.
  • The current repo have 3 main part:
    • ytbdl.py: The server to handle request from client and return video
    • app folder: Contain user interface

Update: 25/12/2023: Thay đổi cách thức hoạt động của server: Tải video về server và send file về client, mục đích tải về server là để có thể xử lý video (cắt, ghép, thay đổi định dạng)

  • Cho phép lựa chọn chất lượng video tải về (FLV) !(tuy nhiên vẫn còn gặp nhiều hạn chế khi chọn các chất lượng không đi kèm với âm thanh)
  • Cho phép lựa chọn tải audio riêng MP3 - Pytube
  • Search Query Processing - Youtube Data API hoặc Pytube
  • Lưu lịch sử tải về
  • Cắt video tại thời điểm được chỉ định (Làm UI cho phần lựa chọn) - Pytube hoặc FFmpeg
  • Cho phép lựa chọn định dạng video tải về (mp4, flv, avi,..) - FFmpeg