youtube-local is a browser-based client written in Python for watching Youtube anonymously and without the lag of the slow page used by Youtube. One of the primary features is that all requests are routed through Tor, except for the video file at This is analogous to what HookTube (defunct) and Invidious do, except that you do not have to trust a third-party to respect your privacy. The assumption here is that Google won’t put the effort in to incorporate the video file requests into their tracking, as it’s not worth pursuing the incredibly small number of users who care about privacy (Tor video routing is also provided as an option). Tor has high latency, so this will not be as fast as regular Youtube. However, using Tor is optional; when not routing through Tor, video pages may load faster than they do with Youtube’s page depending on your browser.

The Youtube API is not used, so no keys or anything are needed. It uses the same requests as the Youtube webpage.


Gray theme

Dark theme

Non-Theater mode




  • Standard pages of Youtube: search, channels, playlists
  • Anonymity from Google’s tracking by routing requests through Tor
  • Local playlists: These solve the two problems with creating playlists on Youtube: (1) they’re datamined and (2) videos frequently get deleted by Youtube and lost from the playlist, making it very difficult to find a reupload as the title of the deleted video is not displayed.
  • Themes: Light, Gray, and Dark
  • Subtitles
  • Easily download videos or their audio
  • No ads
  • View comments
  • Works without Javascript
  • Theater and non-theater mode
  • Subscriptions that are independent from Youtube
    • Can import subscriptions from Youtube
    • Works by checking channels individually
    • Can be set to automatically check channels.
    • For efficiency of requests, frequency of checking is based on how quickly channel posts videos
    • Can mute channels, so as to have a way to “soft” unsubscribe. Muted channels won’t be checked automatically or when using the “Check all” button. Videos from these channels will be hidden.
    • Can tag subscriptions to organize them or check specific tags
  • Fast page
    • No distracting/slow layout rearrangement
    • No lazy-loading of comments; they are ready instantly.
  • Settings allow fine-tuned control over when/how comments or related videos are shown:
    1. Shown by default, with click to hide
    2. Hidden by default, with click to show
    3. Never shown
  • Optionally skip sponsored segments using SponsorBlock’s API

Planned features

  • Putting videos from subscriptions or local playlists into the related videos
  • Information about video (geographic regions, region of Tor exit node, etc)
  • Ability to delete playlists
  • Auto-saving of local playlist videos
  • Import youtube playlist into a local playlist
  • Rearrange items of local playlist
  • Muxing of 1080p
  • Corrected .m4a downloads
  • Indicate if comments are disabled
  • Indicate how many comments a video has
  • Featured channels page
  • Channel comments
  • Video transcript
  • Tor RC
  • Support &t parameter
  • Subscriptions: Option to mark what has been watched
  • Subscriptions: Option to filter videos based on keywords in title or description
  • Subscriptions: Delete old entries and thumbnails



Download the zip file under the Releases page. Unzip it anywhere you choose.


Download the tarball under the Releases page and extract it. cd into the directory and run

pip3 install -r requirements.txt

Note : If pip isn’t installed, first try installing it from your package manager. Make sure you install pip for python 3. For example, the package you need on debian is python3-pip rather than python-pip. If your package manager doesn’t provide it, try to install it according to this answer, but make sure you run python3 instead of python