SkillAgentSearch skills...

SeerrBridge

SeerrBridge automates movie torrent fetching by integrating Jellyseer/Overseer with DebridMediaManager. It listens to OverSeerr movie requests via webhook and uses DMM / Real-Debrid for efficient downloads. With features like persistent browser sessions and queue management, it simplifies media handling. https://discord.gg/Dy5xNzEHKw

Install / Use

/learn @Woahai321/SeerrBridge

README

🌉 SeerrBridge - Automate Your Media Fetching with DMM 🎬

seerrbridge-cover

GitHub last commit GitHub issues GitHub stars GitHub release Python Website LinkedIn

<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->

All Contributors

<!-- ALL-CONTRIBUTORS-BADGE:END -->

🚀 What is SeerrBridge?

🌉 SeerrBridge is a browser automation tool that integrates Jellyseer/Overseerr with Debrid Media Manager. It listens to movie requests via Overseerr webhook and automates the torrent search and download process using Debrid Media Manager via browser automation, which in turn gets sent to Real-Debrid. This streamlines your media management, making it fast and efficient.


⚡ Quick Start (1 Command!)

Just run this single command to get started. Docker will automatically pull the image if needed.

Windows PowerShell, Linux, & Mac:

docker run -d --name seerrbridge --restart unless-stopped -p 3777:3777 -p 8777:8777 -p 8778:8778 -p 3307:3306 -v seerrbridge_mysql_data:/var/lib/mysql -v ./logs:/app/logs -v ./data:/app/data ghcr.io/woahai321/seerrbridge:latest

That's it! Access the dashboard at http://localhost:3777

⚠️ Security Warning: This uses default passwords and is NOT recommended to expose publicly on the internet.

View logs: docker logs -f seerrbridge | Stop: docker stop seerrbridge && docker rm seerrbridge


<details> <summary>🔑 Key Features</summary>
  • Automated Movie Requests: Processes movie requests from Overseerr and fetches torrents via Debrid Media Manager
  • TV Show Subscriptions: Automatically tracks and fetches individual episodes for ongoing shows
  • Debrid Media Manager Integration: Browser automation for torrent search & downloads
  • Modern Web Dashboard: Built-in Darth Vadarr dashboard (Nuxt 4/Vue 3) for monitoring and management
  • Queue Management: Asynchronous queue handling for smooth processing
  • Custom Regex Filtering: Filter unwanted content via web interface
  • Persistent Browser Session: Faster automation with Selenium session management
</details> <details> <summary>🛠️ Why SeerrBridge?</summary>

SeerrBridge eliminates the need to set up multiple applications like Radarr, Sonarr, Jackett, FlareSolverr, and other download clients. With SeerrBridge, you streamline your media management into one simple, automated process. No more juggling multiple tools—just request and download!

Simply put, I was too lazy to set up all of these other applications (arrs) and thought.... I want this instead.

sb

</details> <details> <summary>🌉 Darth Vadarr Dashboard</summary>

Modern web dashboard built with Nuxt 4 and Vue 3 providing a comprehensive visual interface to monitor, manage, and control your SeerrBridge automation.

Key Features:

  • Real-time status monitoring and statistics
  • Processed media library with advanced filtering
  • Search & discovery with Overseerr integration
  • Franchise collections browser
  • Categorized logs and monitoring
  • Settings & configuration management
  • Responsive design with dark/light themes

Access at http://localhost:3777 after starting the container.

<img width="2528" height="1286" alt="image" src="https://github.com/user-attachments/assets/4d7dd3f7-711b-4c3f-beda-cb0de6e0767e" /> </details> <details> <summary>🔍 How It Works</summary>
  1. Seerr Webhook: SeerrBridge listens for movie requests via the configured webhook.
  2. Automated Search: It uses Selenium to automate the search for movies on Debrid Media Manager site.
  3. Torrent Fetching: Once a matching torrent is found, SeerrBridge automates the Real-Debrid download process.
  4. Queue Management: Requests are added to a queue and processed one by one, ensuring smooth and efficient operation.

If you want to see the automation working in real-time, you can edit the .env and set HEADLESS_MODE=false. This will launch a visible Chrome browser. Be sure not to mess with it while it's operating or else you will break the current action/script and need a re-run.

image

Example:

sb

</details> <details> <summary>📊 Compatibility</summary>

| Service | Status | Notes | |----------------|--------|--------------------------------------| | Jellyseerr/Overseerr | ✅ | Main integration via webhook | | Debrid Media Manager| ✅ | Torrent fetching automation | | Real-Debrid| ✅ | Unrestricted downloader | | List Sync| ✅ | Our other Seerr app for importing lists | | SuggestArr| ✅ | Auto-grab related content | | AllDebrid/TorBox| ❌ | Not Supported | | Windows & Linux x86-64| ✅ | Tested and working |

</details>

🛠️ Configuration & Requirements

⚠️ Note: This script is still in BETA

Most configuration can be managed via the web dashboard at http://localhost:3777 after starting the container. However, you'll need to set up the following prerequisites:

1. Jellyseerr / Overseerr API & Notifications

  • SeerrBridge should be running on the same machine that Jellyseerr / Overseerr is running on

  • You will need the API key for your .env file (or configure via web dashboard)

  • For notifications, navigate to Settings > Notifications > Webhook > Turn it on, and configure as shown below:

    http://localhost:8777/jellyseer-webhook/
    

image

Ensure your JSON payload is the following:

{
    "notification_type": "{{notification_type}}",
    "event": "{{event}}",
    "subject": "{{subject}}",
    "message": "{{message}}",
    "image": "{{image}}",
    "{{media}}": {
        "media_type": "{{media_type}}",
        "tmdbId": "{{media_tmdbid}}",
        "tvdbId": "{{media_tvdbid}}",
        "status": "{{media_status}}",
        "status4k": "{{media_status4k}}"
    },
    "{{request}}": {
        "request_id": "{{request_id}}",
        "requestedBy_email": "{{requestedBy_email}}",
        "requestedBy_username": "{{requestedBy_username}}",
        "requestedBy_avatar": "{{requestedBy_avatar}}",
        "requestedBy_settings_discordId": "{{requestedBy_settings_discordId}}",
        "requestedBy_settings_telegramChatId": "{{requestedBy_settings_telegramChatId}}"
    },
    "{{issue}}": {
        "issue_id": "{{issue_id}}",
        "issue_type": "{{issue_type}}",
        "issue_status": "{{issue_status}}",
        "reportedBy_email": "{{reportedBy_email}}",
        "reportedBy_username": "{{reportedBy_username}}",
        "reportedBy_avatar": "{{reportedBy_avatar}}",
        "reportedBy_settings_discordId": "{{reportedBy_settings_discordId}}",
        "reportedBy_settings_telegramChatId": "{{reportedBy_settings_telegramChatId}}"
    },
    "{{comment}}": {
        "comment_message": "{{comment_message}}",
        "commentedBy_email": "{{commentedBy_email}}",
        "commentedBy_username": "{{commentedBy_username}}",
        "commentedBy_avatar": "{{commentedBy_avatar}}",
        "commentedBy_settings_discordId": "{{commentedBy_settings_discordId}}",
        "commentedBy_settings_telegramChatId": "{{commentedBy_settings_telegramChatId}}"
    },
    "{{extra}}": []
}

Notification Types should also be set to "Request Automatically Approved", and your user should be set to automatic approvals.

image

image

2. Real-Debrid Account

  • You will need a valid Real-Debrid account to authenticate and interact with the Debrid Media Manager
  • The Debrid Media Manager Access token, Client ID, Client Secret, & Refresh Tokens are used and should be set within your .env file or via the web dashboard
  • Grab this from your browser via Inspect > Application > Local Storage

image

This is what you want to copy from your local storage and set in your .env:

    RD_ACCESS_TOKEN={"value":"your_token","expiry":123}
    RD_CLIENT_ID=YOUR_CLIENT_ID
    RD_CLIENT_SECRET=YOUR_CLIENT_SECRET
    RD_REFRESH_TOKEN=YOUR_REFRESH_TOKEN

3. Trakt API / Client ID

  • Create a Trakt.tv account. Navigate to Settings > Your API Apps > New Application
  • You can use https://google.com as the redirect URI
  • Save the Client ID for your

Related Skills

View on GitHub
GitHub Stars281
CategoryDevelopment
Updated3d ago
Forks32

Languages

Python

Security Score

100/100

Audited on Mar 26, 2026

No findings