n9k
2c899cc18d
Ensures that if a client becomes idle the segment generator is exited within a constant amount of time (probably more than this timeout because of the ASGI server's write buffer and the OS's socket write buffer, but still constant). |
||
---|---|---|
LICENSES | ||
anonstream | ||
.gitignore | ||
README.md | ||
STREAMING.md | ||
app.py | ||
config.toml | ||
requirements.txt | ||
title.txt |
README.md
anonstream
Recipe for livestreaming over Tor
Repo
The canonical location of this repo is https://git.076.ne.jp/ninya9k/anonstream.
These mirrors also exist:
Setup
You must have Python 3.10 at a minimum.
Clone the repo:
git clone https://git.076.ne.jp/ninya9k/anonstream.git
cd anonstream
Install dependencies in a virtual environment:
python -m venv venv
source venv/bin/activate
python -m pip install -r requirements.txt
Before you run it might want to edit /config.toml:
-
secret_key
: used for cryptography, make it any long random string (e.g.$ dd if=/dev/urandom bs=16 count=1 | base64
) -
segments/directory
: directory containing stream segments, the default isstream/
in the project root -
title/file
: location of the stream title, the default istitle.txt
in the project root -
captcha/fonts
: locations of fonts for the captcha, leaving it blank will use the default font
Run it:
python -m uvicorn app:app --port 5051
This will start a webserver listening on localhost port 5051.
If you go to http://localhost:5051
in a regular web browser now
you should see the interface. When you started the webserver some
credentials were printed in the terminal; you can log in with those at
http://localhost:5051/login
(requires cookies).
The only things left are (1) streaming, and (2) letting other people access your stream. /STREAMING.md has instructions for setting up OBS Studio and a Tor onion service. The instructions will be useful even if you want to use different streaming software and put your stream on the Internet some other way.
Copying
anonstream is AGPL 3.0 or later, see /LICENSES/AGPL-3.0-or-later.md.
Assets
- /anonstream/static/settings.svg: setting by ulimicon is licensed under CC BY 3.0.
Dependencies
-
aiofiles https://github.com/Tinche/aiofiles (Apache 2.0)
-
itsdangerous https://github.com/pallets/itsdangerous/ (BSD 3-Clause)
-
quart https://gitlab.com/pgjones/quart (MIT)
-
toml https://github.com/uiri/toml (MIT)
-
werkzeug https://github.com/pallets/werkzeug (BSD 3-Clause)