Skip to main content

beets based mitm of your torrent client and music player

Project description

beets based man-in-the-middle of your torrent client and music player


installation

$ pip install --user betanin

usage

$ betanin [--port=<port>]

docker

image

docker pull sentriz/betanin

volumes

/root/.local/share/betanin/ for a persistent database
/root/.config/betanin/ for a persistent betanin config
/root/.config/beets/ for a persistent beets home (point this to your current beets home if you have one)
/music/ so beets can access your music
/downloads/ so beets can access your downloads

compose
betanin:
    image: sentriz/betanin
    ports:
    - 9393:9393
    restart: unless-stopped
    volumes:
    - ${DATA}/betanin/data:/root/.local/share/betanin/
    - ${DATA}/betanin/config:/root/.config/betanin/
    - ${DATA}/betanin/beets:/root/.config/beets/
    - ${MEDIA}/music:/music/
    - ${MEDIA}/downloads:/downloads/

transmission

settings.json (example excerpt)
...
"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/scripts/done",
...
done script
#!/bin/sh


curl \
    --request POST \
    --data-urlencode "path=/downloads/complete/beets" \
    --data-urlencode "name=$TR_TORRENT_NAME" \
    --user 'user:password' \
    "http://betanin:9393/api/torrents"
docker compose (excerpt)
volumes:
- ${DATA}/transmission/config:/config
- ${DATA}/transmission/scripts:/scripts
- ${MEDIA}/download:/downloads

developing

working on the backend

there is not much else to do, write your code, python -m betanin.entry_betanin, kill it, write your code, etc. the webserver will be available at http://localhost:9393/. the static frontend is served at /, and the api is served at /api. (there is a swagger ui there too) also see python -m betanin.entry_shell.
if you need to do a manual migration do env FLASK_APP='betanin.application:create' flask db migrate --directory betanin_migrations/ (then upgrades are automatically done on betanin start)

working on the frontend

start the backend with python -m betanin.entry_betanin, but don't use the static frontend served at http://localhost:9393/. Instead, in a new shell, do npm --prefix betanin_client/ run serve and use the frontend served at http://localhost:8081/. it will look for a backend listening on port 9393 locally. after that you can edit anything in betanin_client/src, it will be linted and automatically reflected in your web browser.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

betanin-0.2.2.tar.gz (2.6 MB view details)

Uploaded Source

Built Distribution

betanin-0.2.2-py3-none-any.whl (2.6 MB view details)

Uploaded Python 3

File details

Details for the file betanin-0.2.2.tar.gz.

File metadata

  • Download URL: betanin-0.2.2.tar.gz
  • Upload date:
  • Size: 2.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for betanin-0.2.2.tar.gz
Algorithm Hash digest
SHA256 d9b005b6d579d59d38d35e178f7e1bffe32ab6db0f077bae592e01d7b00dfa9d
MD5 af0994e8b7065b677db3dee0fd2d6263
BLAKE2b-256 1d014390742cf7e5d4b91d04cb32b0a506f9a5b81f4152c75f8cf97f5564e8de

See more details on using hashes here.

File details

Details for the file betanin-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: betanin-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for betanin-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f3600f9aac132ad976b019baeb3ffe134bb817bd2bce6738adb04a44bc785a1a
MD5 da1e56b10315def465c786d5b5f86a69
BLAKE2b-256 aed0f4ccd38ae81de8e9b9c22a1e8c3969834affad86141524f7c2758b71c3c4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page