snix/users/Profpatsch/whatcd-resolver
Profpatsch 498c8e05f8 feat(users/Profpatsch/whatcd-resolver): serve torrent files
We want to be able to play the files directly from the web
browser (jukebox).

Luckily, transmission does not seem to change the filenames from the
ones given by the torrent file, so we can literally parse the torrent
file and construct a path to the media file, extraordinary.

Adjusts the caddy reverse proxy to serve the given transmission
directory (using my weird sshfs forwarding scheme in the shell.nix
preset lol), then redirect from a handler that maps from
torrentId/fileId to the actual file.

Change-Id: Iab5faf7cc06066f3253031af31e137c0e28f54e3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13270
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2025-03-15 19:11:00 +00:00
..
services feat(users/Profpatsch/whatcd-resolver): serve torrent files 2025-03-15 19:11:00 +00:00
src feat(users/Profpatsch/whatcd-resolver): serve torrent files 2025-03-15 19:11:00 +00:00
.gitignore chore(users/Profpatsch/whatcd-resolver): ignore .ninja 2024-09-13 11:13:59 +00:00
build.ninja feat(users/Profpatsch/whatcd-resolver): add services & readme 2024-03-17 01:21:14 +00:00
default.nix feat(users/Profpatsch/my-tools): init 2025-03-15 16:32:01 +00:00
Main.hs feat(users/Profpatsch/whatcd-resolver): add executable 2023-09-17 18:05:42 +00:00
notes.org feat(users/Profpatsch): init whatcd-resolver 2023-07-14 08:03:14 +00:00
README.md feat(users/Profpatsch/whatcd-resolver): add services & readme 2024-03-17 01:21:14 +00:00
server-notes.org feat(users/Profpatsch): init whatcd-resolver 2023-07-14 08:03:14 +00:00
whatcd-resolver.cabal feat(users/Profpatsch/my-tools): init 2025-03-15 16:32:01 +00:00

whatcd-resolver

To run:

ninja run-services

in one terminal (starts the background tasks)

ninja run

to start the server. It runs on 9092.

You need to be in the nix-shell in ./...

You need to set the pass key internet/redacted/api-keys/whatcd-resolver to an API key for RED.

You need to have a transmission-rpc-daemon listening on port 9091 (no auth, try ssh port forwarding lol).