{"id":21548134,"url":"https://github.com/morrismorrison/ytclipper","last_synced_at":"2025-07-18T10:06:23.619Z","repository":{"id":116657926,"uuid":"384438826","full_name":"MorrisMorrison/ytclipper","owner":"MorrisMorrison","description":"simple webapp to create youtube clips","archived":false,"fork":false,"pushed_at":"2024-12-28T02:23:04.000Z","size":19690,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T07:07:37.094Z","etag":null,"topics":["expressjs","ffmpeg","nodejs","tailwindcss","video","youtube","yt-dlp"],"latest_commit_sha":null,"homepage":"http://ytclipper.mormor.online","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MorrisMorrison.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-09T13:02:23.000Z","updated_at":"2025-03-16T12:07:17.000Z","dependencies_parsed_at":"2024-11-24T06:17:44.731Z","dependency_job_id":"14798f2f-76af-4a90-92fb-1e9846b60bac","html_url":"https://github.com/MorrisMorrison/ytclipper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MorrisMorrison%2Fytclipper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MorrisMorrison%2Fytclipper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MorrisMorrison%2Fytclipper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MorrisMorrison%2Fytclipper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MorrisMorrison","download_url":"https://codeload.github.com/MorrisMorrison/ytclipper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248166927,"owners_count":21058480,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["expressjs","ffmpeg","nodejs","tailwindcss","video","youtube","yt-dlp"],"created_at":"2024-11-24T06:17:36.114Z","updated_at":"2025-04-10T05:53:28.064Z","avatar_url":"https://github.com/MorrisMorrison.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ytclipper\nSimple web application to create clips from youtube videos and download them.\n\n\nhttps://github.com/MorrisMorrison/ytclipper/assets/22982151/bc950608-114f-4d10-b9cd-e46c5cf37333\n\n\n1. Enter YouTube URL\n2. Enter start time (HH:MM:SS)\n3. Enter end time (HH:MM:SS)\n4. Download Clip\n\n\n## Built With\n- express.js \n- yt-dlp\n- ffmpeg\n- tailwind css\n- video.js\n- toastr\n\n## Run locally\n### Requirements\n- node\n- python3\n- python3-pip\n- python3-certifi\n- ffmpeg\n\n### Setup\n1. Install the required packages\n`npm i`\n2. Run the app\n`npm run start`\n\nOr run as docker container \n`docker build -t ytclipper .`\n`docker run -d -e PORT=4001 -p 8080:4001 ytclipper`\n\n### Configuration\n- Port can be configured via env variable PORT (default 4001)\n\n## TODO\n- [x] input validation\n- [x] let users enter the end time instead of duration\n- [x] add loading-screen, or some kind of progress indicator\n- [x] do video processing async with background workers\n- [x] add dark mode\n- [x] embed video player into the site\n- [x] migrate to yt-dlp from youtube-dl\n- [ ] let users set start and end time using a slider embedded in the video player\n- [x] prevent click spamming\n- [x] automatically delete downloaded videos\n- [x] use yt-dlp to directly download a section of a video\n- [ ] track created/finished time of jobs\n- [ ] kill suspended jobs after a specified timeout\n- [ ] let users select desired format by checking yt-dlp -F \"providedUrl\"  \n- [ ] rewrite everything in go\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorrismorrison%2Fytclipper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmorrismorrison%2Fytclipper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorrismorrison%2Fytclipper/lists"}