Features ⬥ pip setup ⬥ Nix setup ⬥ NixOS setup ⬥ Usage ⬥ Shortcuts
Self-hosted alternative YouTube front-end.
- Responsive sane interface
- Clean search results, no "People also watched" or massive shorts carousel
- Pulls data through yt-dlp or rotates through any working Invidious instance
- Loads video data directly from Google servers at full speed, HLS and DASH supported
- No ads, no tracking, no YouTube scripts and cookies
- Watch age-restricted videos without signing in
- Directly accessible player controls, always visible outside of the video when not playing in fullscreen
- Custom suggestions algorithm based on user-generated playlists, delivers content related to the current video rather than what was watched before and irrelevant popular junk
- Recent comments first
- Return YouTube Dislike integrated
Supported YouTube pages:
- Videos:
/watch
,/ID
,/v/ID
,/live/ID
,/embed/ID
, (start
/t
/list
parameters OK) - Shorts:
/shorts/ID
(uses standard interface) - Clips:
/clip/ID
- Searches:
/results
(including filtering/sorting) - Hashtags:
/hashtag/TAG
- Users:
/user/ID
,/user/ID/TAB
,/user/ID/search
- Playlists:
/playlist
,/watch_videos?video_ids=eXaMPLE1,examPLE2,...
- Channels:
/NAME
,/NAME/TAB
,/NAME/search
/channel/ID
,/channel/ID/TAB
,/channel/ID/search
/c/ID
,/c/ID/TAB
,/c/ID/search
- RSS feeds:
- For channels:
/feeds/videos.xml?channel_id=ID
- For playlists:
/feeds/videos.xml?playlist_id=ID
- For channels:
Missing/planned:
- SponsorBlock integration
- DeArrow integration
- Live chats
- "Most replayed" heatmap
- Auto-generated captions
Python 3.11 must be installed on your system. On Linux without 3.11, consider the Nix method. For setting up on Windows instead of Linux/OSX, see these notes.
Local installation:
git clone https://github.com/xrun1/insidious
cd insidious
python -m venv venv
source venv/bin/activate
pip install -e .
To start the server, assuming the current folder is the cloned repository:
./venv/bin/insidious
Add --help
to the above command for info on supported options.
To update Insidious later, from the cloned repository folder:
git pull
source venv/bin/activate
pip install -e .
- Run
.\venv\Scripts\Activate.ps1
instead ofsource venv/bin/activate
- Run
.\venv\Scripts\insidious.exe
instead of./venv/bin/insidious
- Said executable can be double clicked directly in explorer to start
- In
%appdata%\Microsoft\Windows\Start Menu\Programs\Startup
, a shortcut to the exe can be created to automatically start Insidious on login.
Install the Nix package manager if needed, then:
nix run github:xrun1/insidious
Add -- --help
to the above command for info on supported options.
With flakes: add this repository to your inputs, import the module, and enable
the service.
Minimal example:
# flake.nix
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
insidious.url = "github:xrun1/insidious";
};
outputs = inputs @ { self, nixpkgs, ... }: {
nixosConfigurations.example = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [./configuration.nix ./insidious.nix];
};
};
}
# insidious.nix
{ inputs, ... }: {
imports = [inputs.insidious.nixosModules.default];
services.insidious.enable = true;
}
See os.nix for options beyond enable
.
An up-to-date browser (released after December 2023) is required.
- Go to the address shown when you start the server, http://localhost:3030 by default
- The https://youtube.com or https://youtu.be part of any URL can be replaced by the given address
- Use an extension like Privacy Redirect (Chrome, Firefox) to automatically transform YouTube links (enable "Invidious redirects" in the options and set Insidious's address for the instance).
Key | Action |
---|---|
/ |
Focus search bar |
Escape |
Leave search bar |
k , Space |
Play/pause |
f |
Toggle fullscreen |
c |
Toggle subtitles if available |
m |
Toggle mute |
- |
Reduce volume |
+ |
Increase volume |
< |
Reduce playback speed |
> |
Increase playback speed |
h , j , Left |
Seek back 5s |
l , Right |
Seek forward 5s |
H , J |
Seek back 30s |
L |
Seek forward 30s |
, |
Seek to previous frame |
. |
Seek to next frame |
p |
Seek to previous chapter |
n |
Seek to next chapter |
P |
Go to previous playlist video |
N |
Go to next playlist video /next suggestion |
These shortcuts are always active without needing player focus.