Skip to content

MorrisMorrison/ytclipper

Repository files navigation

ytclipper

Simple web application to create clips from youtube videos and download them.

ytclipper-demo.mov
  1. Enter YouTube URL
  2. Enter start time (HH:MM:SS)
  3. Enter end time (HH:MM:SS)
  4. Download Clip

Built With

  • express.js
  • yt-dlp
  • ffmpeg
  • tailwind css
  • video.js
  • toastr

Run locally

Requirements

  • node
  • python3
  • python3-pip
  • python3-certifi
  • ffmpeg

Setup

  1. Install the required packages npm i
  2. Run the app npm run start

Or run as docker container docker build -t ytclipper . docker run -d -e PORT=4001 -p 8080:4001 ytclipper

Configuration

  • Port can be configured via env variable PORT (default 4001)

TODO

  • input validation
  • let users enter the end time instead of duration
  • add loading-screen, or some kind of progress indicator
  • do video processing async with background workers
  • add dark mode
  • embed video player into the site
  • migrate to yt-dlp from youtube-dl
  • let users set start and end time using a slider embedded in the video player
  • prevent click spamming
  • automatically delete downloaded videos
  • use yt-dlp to directly download a section of a video
  • track created/finished time of jobs
  • kill suspended jobs after a specified timeout
  • rewrite everything in go