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 it is found to be a match, it will then run through the configured action.

Prefiltering

Prefiltering occurs during each startup of cross-seed. cross-seed will index all of the .torrent files from torrentDir and any data from all configured dataDirs.

  • 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 files (data) and torrents with the same name and will therefore 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 files (if data-based in v5, or all matches in v6 if possible/configured)
  • inject matching torrent file
  • save matching torrent file