All Projects → sentriz → Betanin

sentriz / Betanin

Licence: gpl-3.0
beets based mitm of your torrent client and music player

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Betanin

Docker Compose Usenet
Docker-powered usenet pipeline
Stars: ✭ 240 (+137.62%)
Mutual labels:  automation, plex, htpc
Htpc Docker Standup
A simple docker-compose based configuration to stand up a new HTPC w/ Plex, Deluge, Sonarr, Radarr and more!
Stars: ✭ 160 (+58.42%)
Mutual labels:  plex, htpc, torrent
Media Docker
all-in-one deployment and configuration for an all-in-one media server, running on docker.
Stars: ✭ 148 (+46.53%)
Mutual labels:  plex, htpc, transmission
exatorrent
Easy to Use Torrent Client. Can be hosted in Cloud. Files can be streamed in Browser/Media Player.
Stars: ✭ 1,557 (+1441.58%)
Mutual labels:  torrent, transmission, self-hosted
Bobarr
🍿 The all-in-one alternative for Sonarr, Radarr, Jackett... with a VPN and running in docker
Stars: ✭ 697 (+590.1%)
Mutual labels:  plex, torrent
Electorrent
A remote control client for µTorrent, qBittorrent, rTorrent, Transmission, Synology & Deluge
Stars: ✭ 582 (+476.24%)
Mutual labels:  torrent, transmission
Flox
Self Hosted Movie, Series and Anime Watch List
Stars: ✭ 901 (+792.08%)
Mutual labels:  self-hosted, plex
Muximux
A lightweight way to manage your HTPC
Stars: ✭ 1,008 (+898.02%)
Mutual labels:  plex, htpc
Nefarious
Web application for automatically downloading TV & Movies
Stars: ✭ 373 (+269.31%)
Mutual labels:  torrent, transmission
Bloom
The simplest way to de-Google your life and business: Inbox, Calendar, Files, Contacts & much more
Stars: ✭ 934 (+824.75%)
Mutual labels:  self-hosted, automation
Teletor
Telegram Torrents Bot
Stars: ✭ 54 (-46.53%)
Mutual labels:  torrent, transmission
Cloud Torrent
☁️ Cloud Torrent: a self-hosted remote torrent client
Stars: ✭ 5,071 (+4920.79%)
Mutual labels:  self-hosted, torrent
Monitorr
"Monitorr” is a self-hosted PHP web app that monitors the status of local and remote network services, websites, and applications.
Stars: ✭ 449 (+344.55%)
Mutual labels:  self-hosted, htpc
Atomic Toolkit
AtoMiC Toolkit simplifies HTPC / Home Server setup and management on Ubuntu and Debian variants including Raspbian. It currently supports: Couchpotato, Deluged, Emby, FFmpeg, Headphones, Htpcmanager, Jackett, Kodi, Lazylibrarian, Madsonic, Mono, Mylar, Nzbget, Nzbhydra, NzbToMedia, Ombi, Plex, Plexpy, Pyload, qBittorrent, Radarr, Sabnzbd+, Sickgear, Sickrage, Sonarr, Subsonic, Transmission, Unrar, Watcher, and Webmin.
Stars: ✭ 747 (+639.6%)
Mutual labels:  htpc, transmission
Monitorrent
Automatic torrents downloader
Stars: ✭ 383 (+279.21%)
Mutual labels:  torrent, transmission
Opentorrentsite
A modern torrent site template that is easy to setup with an intuitive GUI. Currently in development.
Stars: ✭ 34 (-66.34%)
Mutual labels:  self-hosted, torrent
Fragments
Moved to GNOME GitLab -> https://gitlab.gnome.org/haecker-felix/Fragments
Stars: ✭ 80 (-20.79%)
Mutual labels:  torrent, transmission
Torrt
Automates torrent updates for you
Stars: ✭ 73 (-27.72%)
Mutual labels:  torrent, transmission
K8s Mediaserver Operator
Repository for k8s Mediaserver Operator project
Stars: ✭ 81 (-19.8%)
Mutual labels:  plex, transmission
Flexget
The official FlexGet repository
Stars: ✭ 1,279 (+1166.34%)
Mutual labels:  automation, torrent

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


workflow


notifiers

betanin uses apprise for notifications. so anything supported there will work. but some include

  • email
  • discord
  • telegram
  • emby

installation

$ pip install --user betanin

usage

$ # start server
$ betanin
$ # a config file will be created, add your credentials to it
$ # start again
$ betanin [--host=<host>] [--port=<port>]
$ # ui will be available at port
$ # you may also use env vars instead, eg
$ BETANIN_HOST=0.0.0.0 betanin
$ BETANIN_PORT=4030 betanin

$ # optionally start cli (for db operations, debugging)
$ betanin-shell
$ # or if docker
$ docker exec -it <container_id> betanin-shell

screenshots


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
    environment:
    - UID=1000 # (optionally) set user id
    - GID=1000 # (optionally) set group id
    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

create a script named done.sh or anything you like, and make it executable:
chmod +x done.sh

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

curl \
    --request POST \
    --data-urlencode "path=<path_to_transmission_downloads>" \
    --data-urlencode "name=$TR_TORRENT_NAME" \
    --header "X-API-Key: <your_api_key>" \
    "https://betanin.example.com/api/torrents"
transmission docker compose (excerpt)
volumes:
- ${DATA}/transmission/config:/config
- ${DATA}/transmission/scripts:/scripts
- ${MEDIA}/download:/downloads

deluge

create a script named done.sh or anything you like, and make it executable:
chmod +x done.sh
you must also be using the Execute plugin, set to the Torrent Complete event

done script
#!/bin/sh

curl \
    --request POST \
    --data-urlencode "path=<path_to_deluge_downloads>" \
    --data-urlencode "name=$2" \
    --header "X-API-Key: <your_api_key>" \
    "https://betanin.example.com/api/torrents"

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].