Skip to main content

Architecture

Pipelines

Search pipeline

Entry points

  • cross-seed daemon --searchCadence <cadence>
  • cross-seed search
  • POST /api/search

The search pipeline takes an owned torrent, parses its name, and then searches for its parsed name on all of your Torznab indexers. After that, it's given a list of candidates, which then all run through the matching algorithm against the owned torrent. Any resulting matches will then run through the configured action.

RSS pipeline

Entry points

  • cross-seed daemon --rssCadence <cadence>
  • POST /api/announce

The RSS pipeline takes a candidate torrent's metadata { name, size } and searches through your local torrent collection to see if any existing torrents have the same name. If found, it will run the pair of torrents through the matching algorithm. If a match is found, it will then run through the configured action.

Prefiltering

Prefiltering occurs during the startup of cross-seed. This will index all the .torrent files from torrentDir and data from any dataDirs you may have added.

  • If you're using injection, the existence of any .torrent files implies their presence in the client. If the torrent is not present in your client, it will fail injection and save instead.

  • Your torrentDir should not contain torrent files that are not present in your client.

  • Prefiltering de-duplicates. Multiple files/torrents with the same name will not be searched multiple times.

    info

    .torrent files from your torrentDir will take precedence over files in your dataDirs with the same name.

Matching algorithm

TODO

Actions

Three things can happen during the action phase:

  • link data files (if data-based)
  • inject matching torrent file
  • save matching torrent file