Funny proxy service that impersonates youtube while at same time redirecting everything to rick roll https://youtu.ee
Find a file
2025-10-14 13:30:26 +03:00
.github refactor: Move to github 2025-06-23 14:07:10 +03:00
cmd chore: Bump deps 2025-10-14 13:30:26 +03:00
.envrc first commit 2024-12-29 19:02:11 +01:00
.gitignore first commit 2024-12-29 19:02:11 +01:00
build.nix chore: Bump deps 2025-10-14 13:30:26 +03:00
flake.lock chore: Bump deps 2025-10-14 13:30:26 +03:00
flake.nix chore: Bump flake 2025-07-15 22:01:43 +03:00
go.mod chore: Bump deps 2025-10-14 13:30:26 +03:00
go.sum chore: Bump deps 2025-10-14 13:30:26 +03:00
main.go refactor: Add support for using youtube api 2025-05-01 13:55:55 +03:00
module.nix fix: Clean up flake for secrets 2025-05-01 14:09:38 +03:00
README.md Update README.md 2025-06-23 14:18:14 +03:00
test.nix chore: Bump deps 2025-06-23 14:00:57 +03:00

Youtuee

Funny proxy service that impersonates youtube while at same time redirecting everything to rick roll

To use simply, click share on a video then replace be with ee (youtu.be -> youtu.ee)

CleanShot 2025-06-23 at 14 16 40@2x

https://github.com/user-attachments/assets/54e0901b-df1e-43a7-a656-43eda2134364

Hosting

By default it will try to use yt-dlp, theres an option to call the official api if you include the YT_API env var, more info on youtube api keys

Nixos

# flake.nix
youtuee = {
    url = "github:batteredbunny/youtuee";
    inputs.nixpkgs.follows = "nixpkgs";
};
# configuration.nix
imports = [
    inputs.youtuee.nixosModules.default
];

services = {
    youtuee = {
        enable = true;
        user = "youtuee";
        group = "youtuee";

        settings = {
            secretsFile = "/etc/secrets/youtuee.env";
            behindReverseProxy = true;
            port = 8181;
        };
    };

    caddy.virtualHosts."youtu.ee".extraConfig = ''
        reverse_proxy :${toString config.services.youtuee.settings.port}
    '';
};

Development

Runnings tests

go test ./cmd -v
nix flake check .