2025-02-26 13:30:39 +01:00
2025-02-26 13:30:39 +01:00
2025-02-26 13:30:39 +01:00

Transmission RSS Manager

A comprehensive web-based tool to automate and manage your Transmission torrent downloads with RSS feed integration and intelligent media organization.

Features

  • 🔄 RSS Feed Integration: Automatically download torrents from RSS feeds with customizable filters
  • 📊 Torrent Management: Monitor and control your Transmission torrents from a clean web interface
  • 📚 Intelligent Media Organization: Automatically categorize and organize downloads by media type
  • 📖 Book & Magazine Sorting: Specialized processing for e-books and magazines with metadata extraction
  • 📂 Post-Processing: Extract archives, rename files, and move content to appropriate directories
  • 🔄 Remote Support: Connect to remote Transmission instances with local path mapping
  • 📱 Mobile-Friendly UI: Responsive design works on desktop and mobile devices

Installation

Prerequisites

  • Ubuntu/Debian-based system (may work on other Linux distributions)
  • Node.js 14+ and npm
  • Transmission daemon installed and running
  • Nginx (for reverse proxy)

Automatic Installation

The easiest way to install Transmission RSS Manager is with the installation script:

# Download the installation script
wget https://raw.githubusercontent.com/username/transmission-rss-manager/main/install.sh

# Make it executable
chmod +x install.sh

# Run it with sudo
sudo ./install.sh

The script will guide you through the configuration process and set up everything you need.

Manual Installation

If you prefer to install manually:

  1. Clone the repository:

    git clone https://github.com/username/transmission-rss-manager.git
    cd transmission-rss-manager
    
  2. Install dependencies:

    npm install
    
  3. Configure settings:

    cp config.example.json config.json
    nano config.json
    
  4. Start the server:

    node server.js
    

Configuration

Main Configuration Options

The system can be configured through the web interface or by editing the config.json file:

{
  "transmissionConfig": {
    "host": "localhost",
    "port": 9091,
    "username": "transmission",
    "password": "password",
    "path": "/transmission/rpc"
  },
  "destinationPaths": {
    "movies": "/mnt/media/movies",
    "tvShows": "/mnt/media/tvshows",
    "music": "/mnt/media/music",
    "books": "/mnt/media/books",
    "magazines": "/mnt/media/magazines", 
    "software": "/mnt/media/software"
  },
  "processingOptions": {
    "enableBookSorting": true,
    "extractArchives": true,
    "renameFiles": true,
    "ignoreSample": true
  }
}

Remote Transmission Setup

For remote Transmission instances, configure the directory mapping:

"remoteConfig": {
  "isRemote": true,
  "directoryMapping": {
    "/var/lib/transmission-daemon/downloads": "/mnt/transmission-downloads"
  }
}

This maps paths between your remote Transmission server and the local directories.

Usage

Web Interface

The web interface provides access to all functionality and is available at:

http://your-server-ip

RSS Feed Management

  1. Go to the "RSS Feeds" tab in the web interface
  2. Click "Add Feed" and enter the RSS feed URL
  3. Configure optional filters for automatic downloads
  4. The system will periodically check feeds and download matching items

Managing Torrents

From the "Torrents" tab, you can:

  • Add new torrents via URL or magnet link
  • Start, stop, or delete existing torrents
  • Monitor download progress and stats

Media Organization

The post-processor automatically:

  1. Waits for torrents to complete and meet seeding requirements
  2. Identifies the media type based on content analysis
  3. Extracts archives if needed
  4. Moves files to the appropriate category directory
  5. Renames files according to media type conventions
  6. Updates the media library for browsing

Book & Magazine Sorting

When enabled, the system can:

  • Differentiate between books and magazines
  • Extract author information from book filenames
  • Organize magazines by title and issue number
  • Create appropriate folder structures

Detailed Features

Automatic Media Detection

The system uses sophisticated detection to categorize downloads:

  • Movies: Recognizes common patterns such as resolution (1080p, 720p) and release year
  • TV Shows: Identifies season/episode patterns (S01E01) and TV-specific naming
  • Music: Detects audio formats like MP3, FLAC, album folders
  • Books: Identifies e-book formats (EPUB, MOBI, PDF) and author-title patterns
  • Magazines: Recognizes magazine naming patterns, issues, volumes, and publication dates
  • Software: Detects software installers, ISOs, and other program files

RSS Feed Filtering

Powerful filtering options for RSS feeds:

  • Title matching: Regular expression support for title patterns
  • Category filtering: Filter by feed categories
  • Size limits: Set minimum and maximum size requirements
  • Custom rules: Combine multiple criteria for precise matching

Remote Transmission Support

Full support for remote Transmission instances:

  • Secure authentication: Username/password protection
  • Path mapping: Configure how remote paths map to local directories
  • Full API support: Complete control via the web interface

Updating

To update to the latest version:

wget https://raw.githubusercontent.com/username/transmission-rss-manager/main/update.sh
chmod +x update.sh
sudo ./update.sh

File Structure

transmission-rss-manager/
├── server.js                # Main application server
├── postProcessor.js         # Media processing module
├── rssFeedManager.js        # RSS feed management module
├── install.sh               # Installation script
├── update.sh                # Update script
├── config.json              # Configuration file
├── public/                  # Web interface files
│   ├── index.html           # Main web interface
│   ├── js/                  # JavaScript files
│   │   └── enhanced-ui.js   # Enhanced UI functionality
│   └── css/                 # CSS stylesheets
└── README.md                # This file

Modules

Post-Processor

The Post-Processor module handles:

  • Monitoring completed torrents
  • Categorizing content by type
  • Extracting archives
  • Organizing files into the correct directories
  • Renaming files according to conventions

RSS Feed Manager

The RSS Feed Manager module provides:

  • Regular checking of configured RSS feeds
  • Filtering of feed items based on rules
  • Automated downloading of matching content
  • History tracking of downloaded items

Advanced Configuration

Seeding Requirements

Set minimum seeding requirements before processing:

"seedingRequirements": {
  "minRatio": 1.0,
  "minTimeMinutes": 60,
  "checkIntervalSeconds": 300
}

Processing Options

Customize how files are processed:

"processingOptions": {
  "enableBookSorting": true,
  "extractArchives": true,
  "deleteArchives": true,
  "createCategoryFolders": true,
  "ignoreSample": true,
  "ignoreExtras": true,
  "renameFiles": true,
  "autoReplaceUpgrades": true,
  "removeDuplicates": true,
  "keepOnlyBestVersion": true
}

Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License.

Acknowledgments

  • Transmission for the excellent BitTorrent client
  • Node.js and the npm community for the foundation libraries
  • All contributors who have helped improve this project
Description
No description provided
Readme 1.3 MiB
Languages
Shell 45%
JavaScript 43.1%
HTML 9.3%
CSS 2.6%