Allow Mapping Tags, Categories, And Source Indexers To Specific Indexers In Cross-Seed
Introduction
In the realm of torrent management and cross-seeding, efficient and precise control over which indexers are searched for specific content types is paramount. This article delves into the feature request for allowing the mapping of tags, categories, and source indexers to specific indexers in cross-seed. This enhancement aims to provide users with granular control over their cross-seeding process, reducing unnecessary queries and optimizing search efficiency. Currently, users often resort to complex workarounds to achieve this level of control, highlighting the need for a more integrated solution within cross-seed.
The Problem: Lack of Granular Control
The existing mechanisms for controlling which indexers are searched, such as Category-aware Searching and blocklists, fall short of providing the fine-grained control that some users require. While these features offer a degree of filtering, they lack the specificity needed to tailor searches based on tags, categories, and source trackers. For instance, a user might want to specify that for torrents tagged as tagA, only indexerA and indexerB should be searched, explicitly excluding indexerC, even if all three support the relevant media type category. This level of control is crucial for several reasons:
- Optimizing Search Efficiency: Users may know that certain indexers are unlikely to yield successful results for specific content types. For example, if indexerC does not host RARed content, querying it for torrents tagged as tagA (which are known to be RARed) is a futile exercise. By mapping tags to specific indexers, users can avoid these unnecessary queries, saving time and resources.
- Customizing Search Behavior: Beyond technical considerations, users may have personal preferences or reasons for excluding certain indexers from specific searches. A user might simply not want to query some indexers for particular torrent types, regardless of their technical capabilities. A more flexible system allows users to tailor the search process to their specific needs and preferences.
- Avoiding Workarounds and Inefficiencies: Currently, users often resort to running multiple instances of
cross-seed
with complex blocklist configurations to achieve the desired level of control. This workaround is not only disorganized and inefficient but also interferes withcross-seed
's built-in rate-limiting features. A more integrated solution would streamline the process and enhance overall performance.
Proposed Solution: Indexer Mapping
The proposed solution involves introducing a configuration option, indexerMap
, within the config.js
file. This option would allow users to define mappings between specific criteria (tags, categories, source trackers) and the indexers that should be searched for matching torrents. The configuration could look something like this:
indexerMap: {
"tag:current_airing": [
"http://prowlarr.example.com/3/api?apikey=XXXXXXXXXXXX", // indexer3
"http://prowlarr.example.com/4/api?apikey=XXXXXXXXXXXX", // indexer4
"http://prowlarr.example.com/5/api?apikey=XXXXXXXXXXXX" // indexer5
],
"indexer:some-tracker.com": [
"http://prowlarr.example.com/3/api?apikey=XXXXXXXXXXXX" // indexer3
],
"category:music/classical": [
"http://prowlarr.example.com/1/api?apikey=XXXXXXXXXXXX", // indexer1
"http://prowlarr.example.com/2/api?apikey=XXXXXXXXXXXX" // indexer2
],
"category:music/folk": [
"http://prowlarr.example.com/1/api?apikey=XXXXXXXXXXXX" // indexer1
],
"category:ebook/manuals": [
"http://prowlarr.example.com/2/api?apikey=XXXXXXXXXXXX", // indexer2
"http://prowlarr.example.com/3/api?apikey=XXXXXXXXXXXX" // indexer3
],
"indexer:some-indexer-with-RARed-files.com": [
"http://prowlarr.example.com/6/api?apikey=XXXXXXXXXXXX", // indexer6
]
}
This indexerMap
would be consulted during the pre-filter stage of the cross-seed process. If a torrent matches any of the defined criteria (e.g., a specific tag or category), the search would be restricted to the indexers specified in the corresponding mapping. This ensures that only relevant indexers are queried, reducing unnecessary requests and improving overall efficiency.
Benefits of Indexer Mapping
The implementation of an indexerMap
feature would offer several key benefits:
- Fine-Grained Control: Users gain precise control over which indexers are searched for specific torrent types, based on tags, categories, and source trackers. This level of control is unmatched by existing features like Category-aware Searching and blocklists.
- Optimized Search Efficiency: By avoiding unnecessary queries to irrelevant indexers, the search process becomes more efficient. This saves time, reduces bandwidth consumption, and minimizes the load on indexer resources.
- Customized Search Behavior: Users can tailor the search process to their specific needs and preferences. Whether it's excluding indexers that are unlikely to return results for certain content types or simply preferring specific indexers for particular searches, the
indexerMap
provides the flexibility to customize the search experience. - Simplified Configuration: The
indexerMap
eliminates the need for complex workarounds, such as running multiple instances ofcross-seed
with extensive blocklist configurations. This simplifies the configuration process and makescross-seed
easier to use. - Improved Rate Limiting: By reducing the number of unnecessary queries, the
indexerMap
can help users stay within the rate limits imposed by indexers. This ensures a smoother and more reliable cross-seeding experience.
Current Workarounds and Their Limitations
Currently, users seeking this level of control often resort to running multiple instances of cross-seed
, each configured with specific blocklists and indexer settings. For example, a user might run four separate instances, three of which are configured to block all categories/tags except a specific type. These instances would then use different sets of indexers through the torznab
configuration. While this workaround allows users to achieve a degree of control, it suffers from several limitations:
- Disorganized Setup: Managing multiple instances of
cross-seed
is inherently disorganized and complex. It requires careful coordination and monitoring to ensure that each instance is functioning correctly. - Inefficient Resource Utilization: Running multiple instances consumes more system resources than a single, well-configured instance. This can lead to performance issues, especially on resource-constrained systems.
- Interference with Rate Limiting: The workaround interferes with
cross-seed
's built-in rate-limiting features. Each instance operates independently, potentially leading to excessive queries to indexers and an increased risk of being rate-limited or banned. - Maintenance Overhead: Maintaining multiple instances requires more effort and attention. Changes to indexer settings or blocklists must be applied to each instance individually, increasing the risk of errors and inconsistencies.
The indexerMap
feature would address these limitations by providing a more integrated and efficient solution for controlling indexer searches. It would eliminate the need for complex workarounds and streamline the cross-seeding process.
Addressing Potential Concerns and Scope
While the indexerMap
feature offers significant benefits, it's essential to address potential concerns and consider the scope of the project. One concern is that this feature might be considered out of scope for cross-seed
, particularly if the primary focus is on cross-seeding movies and TV shows. However, the ability to precisely control indexer searches is valuable for all types of content, not just movies and TV shows. By extending its capabilities to handle diverse content types, cross-seed
can become an even more versatile and powerful tool.
Broader Applicability
The benefits of the indexerMap
feature extend beyond the core use case of cross-seeding movies and TV shows. It can be particularly useful for users who cross-seed a wide range of content, including:
- Music: Different indexers may specialize in different genres of music. The
indexerMap
can be used to direct searches for classical music to indexers known for their classical music collections, while searches for folk music can be directed to indexers with a strong folk music catalog. - Ebooks: Similarly, different indexers may specialize in different types of ebooks. The
indexerMap
can be used to direct searches for technical manuals to indexers that focus on technical literature, while searches for fiction can be directed to indexers with a broader selection of fiction titles. - Software: Some indexers may be better sources for software than others. The
indexerMap
can be used to ensure that software searches are directed to the most relevant indexers. - Niche Content: For users interested in niche content, such as audiobooks, comics, or specific types of documentaries, the
indexerMap
can be invaluable in directing searches to the indexers most likely to have the desired content.
By accommodating these diverse use cases, cross-seed
can cater to a broader audience and become an indispensable tool for any torrent user who values efficiency and control.
Potential Implementation Considerations
Implementing the indexerMap
feature will require careful consideration of several factors, including:
- Configuration Syntax: The syntax for defining the
indexerMap
should be intuitive and easy to use. The example provided above offers a good starting point, but further refinement may be necessary to ensure clarity and flexibility. - Matching Logic: The logic for matching torrents to indexer mappings should be robust and accurate. This will likely involve examining torrent tags, categories, and source trackers, and comparing them against the criteria defined in the
indexerMap
. - Pre-Filtering Integration: The
indexerMap
should be integrated into the pre-filtering stage of the cross-seed process. This ensures that irrelevant indexers are excluded from the search before any queries are made. - Performance Optimization: The implementation should be optimized for performance to minimize any impact on search speed. This may involve caching mappings and using efficient data structures for matching.
Conclusion
The feature request to allow mapping tags, categories, and source indexers to specific indexers in cross-seed addresses a significant need for more granular control over the cross-seeding process. By implementing an indexerMap
feature, cross-seed
can empower users to optimize their searches, reduce unnecessary queries, and tailor the search experience to their specific needs and preferences. While there are implementation considerations to address, the benefits of this feature in terms of efficiency, flexibility, and user satisfaction are substantial. This enhancement would not only streamline the cross-seeding process for existing users but also make cross-seed
a more versatile and appealing tool for a broader audience.