{"repo":"gnh1201/dnt-yt","free":true,"listed":false,"github":"https://github.com/gnh1201/dnt-yt","clone":"git clone https://github.com/gnh1201/dnt-yt.git","description":"DNT-YT is a lightweight YouTube caching + offline browsing API.","language":"Python","stars":22,"topics":["alternative-frontends","offline","youtube","offline-browsing","youtube-dl","youtube-dl-wrapper","yt-dlp","audio","music","video"],"license":"GPL-3.0","category":"media-processing","readme_excerpt":"DNT-YT DNT-YT (Do-Not-Track YouTube) is a lightweight YouTube caching + offline browsing API. Inspired by Piped and Invidious . However, their goals and typical use-cases differ from what I need, so I created DNT-YT . DNT-YT prioritizes offline YouTube video exploration above everything else. In fact, this is the only purpose of the source code in this repository. What it does Accepts various YouTube URL formats (or a raw video id ) Automatically requests caching when missing Stores cached media (video/audio, thumbnail and subtitles) and serves them as browser-playable URLs Serves an HTML watch page that: polls cache status every 5 seconds when not ready auto-plays video (muted) once ready uses a Mute/Unmute toggle as the user gesture to enable audio keeps A/V synchronized in the browser (no FFmpeg) supports thumbnails and multilingual subtitles Architecture API : FastAPI Queue : RQ Storage/State : Redis (jobs/status) + local media volume Downloader : yt-dlp (caching audio/video separately; no FFmpeg required) Endpoints Watch (HTML) These routes render the HTML player page. If the cache is missing, the server should enqueue a caching job automatically, then the page waits/polls until the cache becomes ready. 1) Root / 2) Path-based watch 3) Query v= (YouTube-like) 4) Query url= API (JSON) Request caching / play intent Queues a cache job if missing. Example: Typical response: Cache status Returns whether cache is ready and (when ready) URLs for cached media. Example: Typical r","default_branch":null,"files":null,"tree":[],"storefront":"/r/gnh1201","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/gnh1201/dnt-yt/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}