返回 Skill 列表
extension
分类: 开发与工程无需 API Key

realdebrid-torrent-cleanup

通过API识别并移除Real-Debrid账户中死亡、不可用或出错的种子。显示种子状态,按健康状况过滤,并安全删除缺少文件的种子。当Jellyfin扫描速度慢时、排查404错误时、清理账户存储空间时或在主要库刷新之前使用此功能。

person作者: jakexiaohubgithub

Real-Debrid Torrent Cleanup

Automatically detect and remove dead torrents from your Real-Debrid account.

What This Does

  1. Lists all torrents with status breakdown
  2. Identifies dead torrents: magnet_error, dead, virus, 404
  3. Shows statistics: Total size, reclaimable space
  4. Safe deletion: Whitelist support, dry-run mode, confirmation required
  5. Post-cleanup: Displays before/after comparison

When To Use This

  • Jellyfin scans taking >10 minutes (dead files slow scanning)
  • Zurg logs showing "404 file not found" errors
  • Account storage approaching limit (cleanup frees 50-200GB typically)
  • After bulk torrent adding (some may fail to download)
  • Monthly maintenance to keep account healthy

Quick Start

1. Install Script on Server

ssh automation@srv759970.hstgr.cloud
cd /home/automation/scripts

# Download script (from repo or copy manually)
wget https://raw.githubusercontent.com/YOUR_REPO/main/.claude/skills/realdebrid-cleanup/scripts/cleanup_realdebrid.py

# Or copy from local repo
cat > cleanup_realdebrid.py << 'EOF'
[paste script from scripts/cleanup_realdebrid.py]
EOF

chmod +x cleanup_realdebrid.py

2. Dry-Run (See What Would Be Deleted)

python3 /home/automation/scripts/cleanup_realdebrid.py --dry-run

Expected output:

📊 Fetching Real-Debrid torrents...
Total torrents: 537
Total size: 2.30 TB

--- Status Breakdown ---
🟢 downloaded: 480
🔴 magnet_error: 23
🔴 dead: 18
🔴 virus: 4
🟡 downloading: 12

🔴 Found 45 dead torrents
Reclaimable: 156 GB

--- Dead Torrents ---
1. [MAGNET_ERROR] Movie.XYZ.2024.mkv
2. [DEAD] Old.Show.S01.Complete
...

🔍 DRY-RUN MODE - No torrents will be deleted

3. Execute Cleanup

python3 /home/automation/scripts/cleanup_realdebrid.py
# Type 'DELETE' when prompted

4. Post-Cleanup Workflow

After cleanup, refresh the media stack:

# See media-stack-refresh skill for complete workflow
docker restart zurg rclone
sleep 15
curl -X POST 'http://localhost:8096/Library/Refresh' \
  -H 'X-Emby-Token: 9af5f56a66e44ee68ddeec7bd07c9db8'

Safety Features

Automatic Protections

  • ✅ Never deletes active torrents (downloading, uploading, queued)
  • ✅ Whitelist support (preserve specific content)
  • ✅ Dry-run mode available
  • ✅ Confirmation required ("Type DELETE")
  • ✅ Respects API rate limits (0.5s between requests)

Whitelist Configuration

Edit script to protect specific torrents:

# In cleanup_realdebrid.py
WHITELIST = [
    "Naruto",            # By filename (partial match)
    "Breaking Bad",
    "4QMHWXG66PW64"     # By torrent ID (exact match)
]

Torrent Status Reference

| Status | Meaning | Action | |--------|---------|--------| | downloaded | Fully available | ✅ Keep | | downloading | In progress | ✅ Keep | | queued | Waiting to start | ✅ Keep | | magnet_error | Failed to resolve | 🔴 Delete | | dead | Files unavailable | 🔴 Delete | | virus | Flagged by RD | 🔴 Delete | | error | Generic error | 🔴 Delete | | timeout | Download timeout | 🔴 Delete |

Typical Results

| Scenario | Torrents Deleted | Space Freed | Time Saved | |----------|------------------|-------------|------------| | First cleanup | 30-50% | 100-200 GB | Scans 5-10x faster | | Monthly | 5-10% | 20-50 GB | Minor improvement | | After bulk add | 10-20% | 50-100 GB | Moderate improvement |

Integration with Other Skills

Before cleanup:
  ├─ server-diagnostics (check disk space)
  └─ backup-status (ensure configs backed up)

Run cleanup:
  └─ realdebrid-torrent-cleanup ← YOU ARE HERE

After cleanup:
  ├─ media-stack-refresh (restart Zurg/Rclone)
  └─ jellyfin-scan (monitor library update)

API Configuration

API Key Location

  • Stored in: SECRETS.md (not committed to Git)
  • Environment variable: RD_API_KEY (optional)

Rate Limits

  • 500 requests/hour per IP
  • Script adds 0.5s delay between requests
  • Safe for accounts with 1000+ torrents

Troubleshooting

Issue: Script returns 401 Unauthorized

Cause: Invalid or expired API key

Solution:

# Update API key in script or set environment variable
export RD_API_KEY="your_new_key_here"
python3 cleanup_realdebrid.py

Issue: Can't delete torrent (403 Forbidden)

Cause: Torrent is active or locked

Solution: Wait for torrent to finish or cancel it manually in Real-Debrid web UI

Issue: Deleted torrents reappear

Cause: Sonarr/Radarr re-added the torrent

Solution: Remove from *arr apps first, then cleanup

For More Details

See reference.md for:

  • Complete API endpoint documentation
  • Advanced configuration options
  • Detailed troubleshooting guide
  • Automation setup (cron job)

See scripts/cleanup_realdebrid.py for:

  • Complete Python source code
  • Customization options
  • Function documentation