{"id":19135918,"url":"https://github.com/sonalys/animeman","last_synced_at":"2026-04-25T12:02:12.754Z","repository":{"id":221048833,"uuid":"752976446","full_name":"sonalys/animeman","owner":"sonalys","description":"A proof-of-concept for synchronizing your anime watchlist with your torrents","archived":false,"fork":false,"pushed_at":"2026-04-11T11:30:26.000Z","size":817,"stargazers_count":23,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-11T13:26:58.370Z","etag":null,"topics":["anime","nyaa-si","qbittorrent"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sonalys.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-02-05T08:20:54.000Z","updated_at":"2026-04-11T11:30:25.000Z","dependencies_parsed_at":"2024-02-12T09:30:58.038Z","dependency_job_id":"315e7e10-b805-45a4-a9eb-4ef0653ec777","html_url":"https://github.com/sonalys/animeman","commit_stats":null,"previous_names":["sonalys/animeman"],"tags_count":97,"template":false,"template_full_name":null,"purl":"pkg:github/sonalys/animeman","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonalys%2Fanimeman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonalys%2Fanimeman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonalys%2Fanimeman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonalys%2Fanimeman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sonalys","download_url":"https://codeload.github.com/sonalys/animeman/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonalys%2Fanimeman/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32261125,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T09:15:33.318Z","status":"ssl_error","status_checked_at":"2026-04-25T09:15:31.997Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anime","nyaa-si","qbittorrent"],"created_at":"2024-11-09T06:32:39.105Z","updated_at":"2026-04-25T12:02:12.719Z","avatar_url":"https://github.com/sonalys.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Animeman\n\n[![Release](https://github.com/sonalys/animeman/actions/workflows/goreleaser.yml/badge.svg)](https://github.com/sonalys/animeman/actions/workflows/goreleaser.yml)\n[![Tests](https://github.com/sonalys/animeman/actions/workflows/tests.yml/badge.svg)](https://github.com/sonalys/animeman/actions/workflows/tests.yml)\n\nAnimeman is a service for synchronizing your anime list currently watching with Nyaa and QBittorrent.  \nCurrently it manages qBittorrent through it's WebUI, creating and managing a category of torrents.  \nIt automatically parses the torrent titles for tagging the show, season and episodes, while also searching in Nyaa.si for new releases.\n\n## Features\n\n* **Automatic Downloads** weekly releases from your WatchList\n* **Downloads batch releases**: from complete series from your WatchList\n* **Tags**: all torrent entries under the configured category with [`!Serie name`, `Serie name S01E01`] as an example\n* **Source and quality filter**: you can specify resolution and HEVC tag\n* **Smart episode detection**: you don't need to worry about downloading the same episode twice\n\n## How does it work?\n\n0. Tag existing torrents in the configured category in **qBittorrent**\n1. Fetch your **Currently Watching** entries from **MAL** or **Anilist**\n2. Search **Nyaa.si** for episodes for each anime list entry\n3. Scan through results searching for newer episodes than the existing ones in **qBittorrent**  \n  It doesn't search for specific episodes, it uses all results from a single page to retrieve new episodes.  \n  This might not work well for shows with more episodes than nyaa.si page size.  \n  Changing this approach is not viable at the moment, \n  as it would require Animeman more requests about each episode information.\n4. Add torrent to qBittorrent via the WebUI API\n\nThe purpose of this tool is to download the latest RSS entry for each episode.\nIt prioritizes the highest provided quality, respecting your filter.\nIf there are multiple sources for the same quality, it should choose the one with the highest number of seeders.\n\n## Configuration\n\nAnimeman will generate a boilerplate config for the first time.  \nYou can set your own config path with the env `CONFIG_PATH`.\n\n```yaml\n# config.yaml\nlogLevel: info # (debug,info,error).\nanimeList:\n  type: myanimelist # (myanimelist|anilist).\n  username: YOUR_USERNAME # Replace with your username.\nrssConfig:\n  type: nyaa\n  pollFrequency: 5m0s # min 1m0s.\n  sources:\n      - source1 # replace with your sources or remove the sources field to fetch all.\n      - source2\n  qualities:\n      - 1080 # filter for 1080, 720, HEVC or remove to fetch all.\n  customParameters:\n    c: 1_2 # you can configure custom query parameters for the rss list call. In this example it will set ?c=1_2.\ntorrentConfig:\n  type: qbittorrent\n  category: Animes\n  downloadPath: /downloads/animes\n  createShowFolder: true # creates a folder to for the show inside downloadPath.\n  renameTorrent: true # will rename the torrent in qBittorrent avoiding conflict between multiple sources with different names for the show.\n  host: http://192.168.1.240:8088 # replace with your qBittorrent WebUI address.\n  username: admin # replace credentials with your own\n  password: adminadmin\n```\n\n## Installation\n\n### Download\n\nYou can download the latest release [here](https://github.com/sonalys/animeman/releases).  \nYou can run a first time for generating a boilerplate config, then you configure your `config.yaml`.\n\n### Linux CLI\n\nSimply run `CONFIG_PATH=./config.yaml ./animeman`\n\n### Windows\n\nSimply run `animeman.exe` on the `cmd`.\n\n### Docker\n\nSupport for `linux/amd64` and `linux/arm64`.\n\n```docker run -it -e CONFIG_PATH=/config/config.yaml -v ./config:/config ghcr.io/sonalys/animeman:latest```\n\n### Docker Compose\n\n```yaml\n# docker-compose.yaml\nversion: \"2.1\"\nservices:\n  animeman:\n    image: ghcr.io/sonalys/animeman:latest\n    container_name: animeman\n    environment:\n      - CONFIG_PATH=/config/config.yaml\n    volumes:\n      - ./config:/config\n```\n\n`docker compose -f docker-compose.yaml up -d animeman`\n\n## Building\n\n### Dependencies\n\nYou will need at least go 1.22 for building the binary.  \nFor the image you will need docker.  \nTo build you can simply run `make build`  \nFor the image you can run `make image`\n\n## Roadmap\n\nThere are a couple things that will be iterated:\n\n* Use some calendar service like anilist.co for scanning Nyaa only when close to the release date\n* Improve interfaces for allowing other RSS feeds\n\n## Contribution\n\nFeel free to fork and open pull requests  \nTests or roadmap features are very welcome, thanks.\n\n## Disclaimer\n\nThis tool is intended as a proof-of-concept, and is not intended for any illegal activities.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonalys%2Fanimeman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsonalys%2Fanimeman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonalys%2Fanimeman/lists"}