{"id":34569949,"url":"https://github.com/moderras/anime-organizer","last_synced_at":"2026-06-06T08:01:43.321Z","repository":{"id":329042967,"uuid":"1117890085","full_name":"ModerRAS/anime-organizer","owner":"ModerRAS","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-25T04:07:24.000Z","size":490,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-25T06:26:33.232Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ModerRAS.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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-12-17T00:58:53.000Z","updated_at":"2026-04-22T06:58:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ModerRAS/anime-organizer","commit_stats":null,"previous_names":["moderras/anime-organizer"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/ModerRAS/anime-organizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModerRAS%2Fanime-organizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModerRAS%2Fanime-organizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModerRAS%2Fanime-organizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModerRAS%2Fanime-organizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ModerRAS","download_url":"https://codeload.github.com/ModerRAS/anime-organizer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModerRAS%2Fanime-organizer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32412890,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T05:20:56.964Z","status":"ssl_error","status_checked_at":"2026-04-29T05:19:54.749Z","response_time":110,"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":[],"created_at":"2025-12-24T09:16:46.603Z","updated_at":"2026-04-29T06:01:33.973Z","avatar_url":"https://github.com/ModerRAS.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# anime-organizer\n\n[![CI](https://github.com/ModerRAS/anime-organizer/actions/workflows/ci.yml/badge.svg)](https://github.com/ModerRAS/anime-organizer/actions/workflows/ci.yml)\n[![Crates.io](https://img.shields.io/crates/v/anime-organizer.svg)](https://crates.io/crates/anime-organizer)\n[![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)\n\n轻量级、跨平台命令行工具，专为动漫收藏者批量整理视频文件，支持硬链接模式实现零额外空间占用。\n\n[English](#english) | [中文](#中文)\n\n---\n\n## 中文\n\n### 📖 项目描述\n\nanime-organizer（简称 aniorg）是一款专为动漫收藏者设计的命令行工具，旨在自动化整理下载目录中的动漫视频文件。\n\n**核心功能：**\n\n- 自动解析文件名，识别动漫名称、集数、发布组等信息\n- 支持硬链接模式，整理后不占用额外磁盘空间\n- 自动生成 Kodi 兼容的 NFO 元数据文件\n- 下载封面海报和背景图\n- 支持 RSS 订阅和 115 网盘同步（需启用 clouddrive feature）\n\n**适用场景：**\n\n- 整理下载目录中的动漫文件\n- 自动化管理动漫媒体库\n- 为 Kodi/Jellyfin/Plex 等媒体中心生成元数据\n\n### 🚀 功能特性\n\n- **智能解析**: 自动识别 `[发布组] 动漫名 - 集数 [标签].ext` 格式\n- **灵活整理**: 重构为 `动漫名/Season N/集数 [标签].ext` 结构\n- **多种模式**: 支持移动、复制、硬链接三种操作模式\n- **元数据刮削**: 基于 Bangumi 生成 Kodi 兼容的 NFO 文件\n- **封面下载**: 通过 TMDB 下载海报和背景图，失败时回退 AniDB 海报\n- **别名匹配**: 支持本地 `bangumi.db` 别名库和自定义 JSON 覆盖，缺失时回退到 Bangumi 名称/搜索匹配\n- **RSS 订阅**: 支持 RSS 自动订阅和 115 网盘同步（需 `clouddrive` feature）\n- **跨平台**: 支持 Windows、Linux、macOS\n- **零依赖运行**: 单文件部署，无需外部配置\n- **高性能**: Rust 原生实现，极速处理\n\n### 📥 安装方式\n\n#### 方式一：下载预编译二进制\n\n从 [GitHub Releases](https://github.com/ModerRAS/anime-organizer/releases) 下载对应平台的二进制文件：\n\n| 平台 | 文件 |\n|------|------|\n| Windows x64 | `aniorg-x86_64-pc-windows-msvc.zip` |\n| Windows ARM64 | `aniorg-aarch64-pc-windows-msvc.zip` |\n| Linux x64 | `aniorg-x86_64-unknown-linux-gnu.tar.gz` |\n| Linux x64 (musl) | `aniorg-x86_64-unknown-linux-musl.tar.gz` |\n| Linux ARM64 | `aniorg-aarch64-unknown-linux-gnu.tar.gz` |\n| macOS x64 | `aniorg-x86_64-apple-darwin.tar.gz` |\n| macOS ARM64 | `aniorg-aarch64-apple-darwin.tar.gz` |\n\n#### 方式二：从源码构建\n\n```bash\ngit clone https://github.com/ModerRAS/anime-organizer.git\ncd anime-organizer\n\n# 默认构建（启用 metadata feature）\ncargo build --release\n\n# 全功能构建\ncargo build --release --features \"scraper clouddrive torrent-scraper\"\n```\n\n编译后的二进制文件位于 `target/release/aniorg`。\n\n### 🎯 快速开始\n\n#### 基本用法\n\n```bash\n# 硬链接模式（默认，零额外空间）\naniorg --source=\"/path/to/downloads\"\n\n# 复制模式\naniorg --source=\"/path/to/downloads\" --mode=copy --target=\"/path/to/anime\"\n\n# 启用硬链接失败回退为复制\naniorg --source=\"/path/to/downloads\" --fallback-on-link-failure=copy\n\n# 启用分季目录结构\naniorg --source=\"/path/to/downloads\" --season-mode --target=\"/path/to/anime\"\n\n# 生成 NFO 和海报\naniorg --source=\"/path/to/downloads\" --scrape-metadata --tmdb-api-key=\"YOUR_TMDB_KEY\"\n```\n\n#### 预览模式\n\n在实际操作前先预览变更：\n\n```bash\naniorg --source=\"/path/to/downloads\" --dry-run --verbose\n```\n\n### 📋 参数说明\n\n| 参数 | 缩写 | 类型 | 必填 | 默认值 | 说明 |\n|------|------|------|------|--------|------|\n| `--source` | `-s` | string | ✅ | - | 源目录路径 |\n| `--target` | `-t` | string | ❌ | source | 目标根目录 |\n| `--mode` | `-m` | enum | ❌ | link | 操作模式：move/copy/link |\n| `--dry-run` | | bool | ❌ | false | 仅预览不执行 |\n| `--include-ext` | | string | ❌ | mp4,mkv,... | 处理的扩展名（逗号分隔） |\n| `--verbose` | `-v` | bool | ❌ | false | 显示详细日志 |\n| `--fallback-on-link-failure` | | enum | ❌ | - | 硬链接失败时回退模式：move 或 copy（默认不回退） |\n| `--season-mode` / `--分季` | | bool | ❌ | false | 按 `番名/Season N/` 结构整理多季作品 |\n| `--scrape-metadata` / `--刮削` | | bool | ❌ | false | 启用 Bangumi/TMDB 元数据刮削 |\n| `--tmdb-api-key` | | string | ❌ | - | TMDB API Key，用于下载海报和背景图 |\n| `--alias-file` | | string | ❌ | - | 自定义别名 JSON 文件，覆盖本地 `bangumi.db` 中的同名项 |\n| `--no-images` | | bool | ❌ | false | 只生成 NFO，不下载图片 |\n| `--force-overwrite` | | bool | ❌ | false | 覆盖已有的 NFO 和图片文件 |\n| `--bangumi-cache` | | string | ❌ | 系统临时目录 | Bangumi 缓存目录 |\n| `--metadata-source` | | string | ❌ | - | 指定本地 `subject.jsonlines` 或其所在目录 |\n| `--help` | `-h` | bool | ❌ | false | 显示帮助 |\n| `--version` | `-V` | bool | ❌ | false | 显示版本 |\n\n### 🧾 元数据刮削\n\n启用 `--scrape-metadata` 后，程序会：\n\n- 优先使用 `--alias-file` JSON 和本地 `bangumi.db` 别名库匹配 Bangumi 条目，缺失时回退到 Bangumi 名称/搜索匹配\n- 在动画根目录生成 `tvshow.nfo`\n- 在 `Season N/` 目录下生成与视频同名的 `*.nfo`\n- 如果提供了 TMDB API Key，则下载 `poster.jpg`、`fanart.jpg` 和 `seasonXX-poster.jpg`\n\n`--alias-file` 可直接复用 `extract-aliases` 导出的 JSON 对象格式，例如：\n\n```json\n{\n  \"芙莉莲\": {\n    \"bangumi_id\": 444444,\n    \"name\": \"葬送のフリーレン\",\n    \"tmdb_id\": 209867,\n    \"anidb_id\": 18597\n  }\n}\n```\n\n### 🎨 文件命名格式\n\n#### 支持的源文件名格式\n\n```\n[发布组] 动漫名称（可含季度） - 集数 [标签信息].扩展名\n```\n\n示例：\n- `[ANi] 妖怪旅館營業中 貳 - 07 [1080P][Baha][WEB-DL][AAC AVC][CHT].mp4`\n- `[SubsPlease] 间谍过家家 - 12 [1080p].mkv`\n- `[EMBER] 进击的巨人 The Final Season - 01 [1080p][Multiple Subtitle].avi`\n\n#### 目标文件结构\n\n```\n动漫名称（含季度）/\n├── Season 1/\n│   ├── 01 [标签信息].扩展名\n│   └── 02 [标签信息].扩展名\n├── Season 2/\n│   ├── 01 [标签信息].扩展名\n│   └── ...\n├── tvshow.nfo\n├── poster.jpg\n└── fanart.jpg\n```\n\n### 🔗 硬链接说明\n\n硬链接是推荐的整理方式，具有以下优势：\n\n- **零额外空间**: 不占用额外磁盘空间\n- **快速操作**: 几乎瞬间完成\n- **文件同步**: 源文件和目标文件内容完全同步\n\n#### 使用条件\n\n1. **同一文件系统**: 源文件和目标必须在同一分区/NAS卷\n2. **文件系统支持**: ext4、NTFS、APFS 等均支持\n3. **权限要求**: 需要对源和目标目录有写入权限\n\n#### 跨设备错误\n\n如果源文件和目标不在同一文件系统，会显示错误：\n```\n硬链接失败：源文件和目标必须在同一文件系统\n```\n\n此时可选择：\n- 将目标目录改为与源文件同一文件系统\n- 使用复制模式 (`--mode=copy`)，或通过 `--fallback-on-link-failure=copy` 自动回退\n- 使用移动模式 (`--mode=move`)，或通过 `--fallback-on-link-failure=move` 自动回退\n\n### 🔧 刮削子命令（需 `--features scraper`）\n\n```bash\n# 刮削近期更新\ncargo run --features scraper -- scrape --days 7 --format json\n\n# 匹配别名提案\ncargo run --features scraper -- match --input scraped.json --format github\n\n# 构建 SQLite 别名库\ncargo run --features scraper -- build-db --output bangumi.db\n\n# 从 dump 提取别名\ncargo run --features scraper -- extract-aliases --download\n\n# 合并新别名到数据库\ncargo run --features scraper -- merge-aliases --input new_aliases.json\n\n# 应用匹配的别名提案\ncargo run --features scraper -- apply-matches --input proposals.json\n\n# 创建别名请求 issue\ncargo run --features scraper -- create-alias-issues --input uncertain.json --repo ModerRAS/anime-organizer\n```\n\n### 📡 RSS 订阅管理（需 `--features clouddrive`）\n\n```bash\n# 列出订阅\naniorg rss --list-subscriptions\n\n# 添加订阅\naniorg rss --add-subscription \\\n  --rss-url \"https://example.com/rss\" \\\n  --rss-target \"/anime\" \\\n  --rss-filter \"720p\"\n\n# 单次执行\naniorg rss --single-shot \\\n  --clouddrive-url http://localhost:19798 \\\n  --rss-url \"https://example.com/rss\" \\\n  --rss-target \"/anime\"\n\n# Daemon 模式（持续监控）\naniorg rss --daemon \\\n  --clouddrive-url http://localhost:19798 \\\n  --rss-interval 300\n```\n\n认证支持两种方式：直接传 `--clouddrive-token`，或使用 `--clouddrive-user` + `--clouddrive-pass` 登录获取令牌。订阅和去重状态默认保存在 Windows 的 `%LOCALAPPDATA%\\anime-organizer\\rss.db`。\n\n### ☁️ CloudDrive 辅助命令（需 `--features clouddrive`）\n\n```bash\n# 直接提交 magnet 或 torrent URL 到离线下载\naniorg add-offline \"magnet:?xt=urn:btih:...\" \\\n  --target \"/anime\" \\\n  --clouddrive-url http://localhost:19798 \\\n  --clouddrive-token \"YOUR_TOKEN\"\n\n# 浏览云盘目录\naniorg list-folder \"/anime\" \\\n  --clouddrive-url http://localhost:19798 \\\n  --clouddrive-token \"YOUR_TOKEN\"\n```\n\n### 💡 使用示例\n\n```bash\n# 整理下载目录\naniorg --source=\"D:\\Downloads\\Anime\"\n\n# 整理到指定目录\naniorg -s \"/home/user/Downloads\" -t \"/media/anime\"\n\n# 硬链接模式\naniorg -s \"/home/user/Downloads\" -m link -t \"/mnt/anime\"\n\n# 多季作品按 Season 目录整理\naniorg -s \"/path/to/downloads\" -t \"/path/to/anime\" --season-mode\n\n# 预览变更并显示详细日志\naniorg -s \"/path/to/downloads\" --dry-run -v\n\n# 指定文件类型\naniorg -s \"/path/to/downloads\" --include-ext=\"mp4,mkv\"\n\n# 使用自定义别名库\naniorg -s \"/path/to/downloads\" --alias-file=\"./my-aliases.json\"\n\n# 强制覆盖已有 NFO\naniorg -s \"/path/to/downloads\" --scrape-metadata --force-overwrite\n```\n\n---\n\n## English\n\n### 📖 Project Description\n\nanime-organizer (aniorg) is a command-line tool designed for anime collectors to automatically organize video files in download directories.\n\n**Core Features:**\n\n- Auto-parse filenames to extract anime name, episode number, publisher info\n- Support hard link mode - organize files without using extra disk space\n- Generate Kodi-compatible NFO metadata files\n- Download poster and fanart images\n- RSS subscription and 115 cloud drive sync (requires clouddrive feature)\n\n**Use Cases:**\n\n- Organize anime files in download directories\n- Automate anime media library management\n- Generate metadata for Kodi/Jellyfin/Plex media centers\n\n### 🚀 Features\n\n- **Smart Parsing**: Auto-recognize `[Publisher] AnimeName - Episode [Tags].ext` format\n- **Flexible Organization**: Restructure to `AnimeName/Season N/Episode [Tags].ext`\n- **Multiple Modes**: Support move, copy, and hard link operations\n- **Metadata Scraping**: Generate Kodi-compatible NFO files from Bangumi metadata\n- **Artwork Download**: Download posters and fanart from TMDB with AniDB poster fallback\n- **Alias Matching**: Local `bangumi.db` aliases plus optional custom JSON overrides, with Bangumi title/search fallback\n- **RSS Subscription**: RSS auto-subscription and 115 cloud drive sync (requires `clouddrive` feature)\n- **Cross-Platform**: Support Windows, Linux, macOS\n- **Zero Runtime Dependencies**: Single binary deployment\n- **High Performance**: Native Rust implementation\n\n### 📥 Installation\n\n#### Option 1: Download Pre-built Binary\n\nDownload from [GitHub Releases](https://github.com/ModerRAS/anime-organizer/releases).\n\n#### Option 2: Build from Source\n\n```bash\ngit clone https://github.com/ModerRAS/anime-organizer.git\ncd anime-organizer\n\n# Default build (metadata feature enabled)\ncargo build --release\n\n# Full features\ncargo build --release --features \"scraper clouddrive torrent-scraper\"\n```\n\n### 🎯 Quick Start\n\n```bash\n# Hard link mode (default, zero extra space)\naniorg --source=\"/path/to/downloads\"\n\n# Preview mode\naniorg --source=\"/path/to/downloads\" --dry-run --verbose\n\n# Enable automatic fallback to copy when hard link fails\naniorg --source=\"/path/to/downloads\" --fallback-on-link-failure=copy\n\n# Organize multi-season releases into Season folders\naniorg --source=\"/path/to/downloads\" --season-mode --target=\"/path/to/anime\"\n\n# Generate NFO files and artwork\naniorg --source=\"/path/to/downloads\" --scrape-metadata --tmdb-api-key=\"YOUR_TMDB_KEY\"\n```\n\n### 📋 Arguments\n\n| Argument | Short | Type | Required | Default | Description |\n|----------|-------|------|----------|---------|-------------|\n| `--source` | `-s` | string | ✅ | - | Source directory path |\n| `--target` | `-t` | string | ❌ | source | Target root directory |\n| `--mode` | `-m` | enum | ❌ | link | Operation mode: move/copy/link |\n| `--dry-run` | | bool | ❌ | false | Preview only, no actual changes |\n| `--include-ext` | | string | ❌ | mp4,mkv,... | File extensions to process |\n| `--verbose` | `-v` | bool | ❌ | false | Show detailed logs |\n| `--fallback-on-link-failure` | | enum | ❌ | - | Fallback when hard link fails: move or copy (disabled by default) |\n| `--season-mode` / `--分季` | | bool | ❌ | false | Group multi-season titles as `Series/Season N/` |\n| `--scrape-metadata` / `--刮削` | | bool | ❌ | false | Enable Bangumi/TMDB metadata scraping |\n| `--tmdb-api-key` | | string | ❌ | - | TMDB API key for artwork download |\n| `--alias-file` | | string | ❌ | - | Custom alias JSON file overriding same-name entries from local `bangumi.db` |\n| `--no-images` | | bool | ❌ | false | Generate NFO only, skip artwork download |\n| `--force-overwrite` | | bool | ❌ | false | Overwrite existing NFO and image files |\n| `--bangumi-cache` | | string | ❌ | system temp dir | Bangumi cache directory |\n| `--metadata-source` | | string | ❌ | - | Local `subject.jsonlines` file or containing directory |\n| `--help` | `-h` | bool | ❌ | false | Show help |\n| `--version` | `-V` | bool | ❌ | false | Show version |\n\n### 🧾 Metadata Scraping\n\nWhen `--scrape-metadata` is enabled, the tool will:\n\n- Prefer aliases from `--alias-file` JSON and a local `bangumi.db`; if neither is available, it falls back to Bangumi title/search matching\n- Generate `tvshow.nfo` in the series root\n- Generate per-episode `*.nfo` files beside organized videos in `Season N/`\n- Download `poster.jpg`, `fanart.jpg`, and `seasonXX-poster.jpg` when a TMDB API key is provided\n\nThe `--alias-file` JSON can reuse the object output format from `extract-aliases`, for example:\n\n```json\n{\n  \"Frieren\": {\n    \"bangumi_id\": 444444,\n    \"name\": \"葬送のフリーレン\",\n    \"tmdb_id\": 209867,\n    \"anidb_id\": 18597\n  }\n}\n```\n\n### 🔗 Hard Link Notes\n\nHard linking is the recommended mode:\n\n- **Zero Extra Space**: No additional disk space used\n- **Fast Operation**: Almost instant\n- **File Sync**: Source and target share the same content\n\nIf hard linking fails due to cross-filesystem layouts or lack of support, you can opt in to automatic fallback via `--fallback-on-link-failure=copy` or `--fallback-on-link-failure=move`; otherwise, the failure is reported and the file is skipped.\n\n**Requirements:**\n1. Source and target must be on the same filesystem\n2. Filesystem must support hard links (ext4, NTFS, APFS, etc.)\n3. Write permission required for both directories\n\n### 🔧 Scraper Subcommands (requires `--features scraper`)\n\n```bash\n# Scrape recent updates\ncargo run --features scraper -- scrape --days 7 --format json\n\n# Match alias proposals\ncargo run --features scraper -- match --input scraped.json --format github\n\n# Build SQLite alias database\ncargo run --features scraper -- build-db --output bangumi.db\n\n# Extract aliases from dump\ncargo run --features scraper -- extract-aliases --download\n\n# Merge new aliases into database\ncargo run --features scraper -- merge-aliases --input new_aliases.json\n\n# Apply confident match proposals\ncargo run --features scraper -- apply-matches --input proposals.json\n\n# Create alias request issues\ncargo run --features scraper -- create-alias-issues --input uncertain.json --repo ModerRAS/anime-organizer\n```\n\n### 📡 RSS Subscription Management (requires `--features clouddrive`)\n\n```bash\n# List subscriptions\naniorg rss --list-subscriptions\n\n# Add subscription\naniorg rss --add-subscription \\\n  --rss-url \"https://example.com/rss\" \\\n  --rss-target \"/anime\" \\\n  --rss-filter \"720p\"\n\n# Single shot execution\naniorg rss --single-shot \\\n  --clouddrive-url http://localhost:19798 \\\n  --rss-url \"https://example.com/rss\" \\\n  --rss-target \"/anime\"\n\n# Daemon mode (continuous monitoring)\naniorg rss --daemon \\\n  --clouddrive-url http://localhost:19798 \\\n  --rss-interval 300\n```\n\nAuthentication supports either `--clouddrive-token` or `--clouddrive-user` + `--clouddrive-pass`. Subscription and dedupe state is stored in `%LOCALAPPDATA%\\anime-organizer\\rss.db` on Windows.\n\n### ☁️ CloudDrive Helper Commands (requires `--features clouddrive`)\n\n```bash\n# Submit a magnet or torrent URL directly to offline download\naniorg add-offline \"magnet:?xt=urn:btih:...\" \\\n  --target \"/anime\" \\\n  --clouddrive-url http://localhost:19798 \\\n  --clouddrive-token \"YOUR_TOKEN\"\n\n# Browse a cloud folder\naniorg list-folder \"/anime\" \\\n  --clouddrive-url http://localhost:19798 \\\n  --clouddrive-token \"YOUR_TOKEN\"\n```\n\n### 🧲 Torrent Scraping (requires `--features torrent-scraper`)\n\n```bash\n# Scrape DMHY torrent titles\naniorg torrent-scrape --source dmhy --output dmhy_titles.txt\n\n# Scrape Nyaa torrent titles\naniorg torrent-scrape --source nyaa --query \"anime\" --output nyaa_titles.txt\n\n# Scrape both sources\naniorg torrent-scrape --source all --pages 3 --output all_titles.txt\n```\n\n### 🛠️ Development\n\n```bash\n# Run tests\ncargo test\n\n# Run with verbose output\ncargo run -- --source=\"/path/to/downloads\" --verbose\n\n# Build release binary\ncargo build --release\n\n# Build with all features\ncargo build --release --features \"scraper clouddrive torrent-scraper\"\n```\n\n## License\n\nAGPL-3.0 License - see [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoderras%2Fanime-organizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoderras%2Fanime-organizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoderras%2Fanime-organizer/lists"}