MYGA - make youtube great again
A clean and minimal youtube frontend, without all the ads and whistles. Supported by yt-dlp, and optionally your local AI model, to make your youtube experience local, mindful, succint and ad free.
- Channel management/Subscriptions
- Download videos from YouTube, using
yt-dlpbehind the scenes - Summarize video content using your local AI model
- Ignore videos you don't want to watch
- Play videos in background
- Offline media playback
- No dependencies (except for
nano-spawn), HTML/CSS only, no JS frameworks on client/server side - Host it in your home network to playback videos on all your devices
- Why not??
- wanted to get back my chronological feed, instead of a "algorithmically curated" one
- you can just go to the "Subscriptions" page if you want to see your YouTube videos in chronological order, as gently pointed out on HN
- no distractions
- no ads (in "just skip the sponsors")
- just videos and a clean UI
- wanted to try integrate the so much hyped AI in a personal project
- wanted to try out
yt-dlp - just wanted to make this, ok?
- I am even paying for YouTube Premium, so it's not a matter of money, but a matter of control over my attention and enhanced offline experience
Application runs on http://localhost:3000
git clone https://github.com/christian-fei/my-yt.git
cd my-yt
npm i
# install yt-dlp, please see https://github.com/yt-dlp/yt-dlp
npm startgit clone https://github.com/christian-fei/my-yt.git
cd my-yt
docker compose up --build -dHere are some links to help you understand the project better:
Bare HTTP server
Handles SSE for client updates
Implements HTTP Ranged requests for video playback
Makes requests using the chat completions API of LMStudio.
Utility functions for Server-sent events
Summarizes video transcript using LMStudio API
yt-dlp wrapper to download videos, get channel videos and video information and transcript
Handles persistence of video information (set video as downloaded, summary, ignored, upserting videos, etc.)
dependency less, bare HTML5, CSS3 and JS for a basic frontend
Handles SSE updates, interacting with the API
Currently, on the LLM side of things:
- supports basic chat completions API (LMStudio right now)
- expects
lms serverto be running onhttp://localhost:1234
- expects
- works with
meta-llama-3.1-8b-instructmodel - customization will come in the future if there's enough interest (let me know by opening an issue or pull-request)
Download the project while you can before I get striked with a DMCA takedown request