### API Key Usage Examples Source: https://www.cross-seed.org/docs/basics/options Examples of how to provide an API key for authentication with the cross-seed daemon, either as a query parameter or an HTTP header. ```bash # provide api key as a query param curl -XPOST localhost:2468/api/webhook?apikey=YOUR_API_KEY --data-urlencode ... ``` ```bash # provide api key as an HTTP header curl -XPOST localhost:2468/api/webhook -H "X-Api-Key: YOUR_API_KEY" --data-urlencode ... ``` -------------------------------- ### Example Cross-Seed Configuration Source: https://www.cross-seed.org/docs/basics/getting-started An example JavaScript configuration file for cross-seed, demonstrating how to set up Torznab indexers, torrent clients, and linked directories. ```javascript module.exports = { torznab: [ "http://prowlarr:9696/1/api?apikey=12345", "http://prowlarr:9696/2/api?apikey=12345", ], torrentClients: [ "qbittorrent:http://user:pass@localhost:8080", "deluge:http://:pass@localhost:8112/json", "transmission:readonly:http://user:pass@localhost:9091/transmission/rpc", "rtorrent:http://user:pass@localhost:8080/RPC2", ], linkDirs: ["/data/torrents/SomeLinkDirName"], ... several other settings covered by the Next Steps section ... }; ``` -------------------------------- ### Example rTorrent schedule for untied torrents Source: https://www.cross-seed.org/docs/basics/faq-troubleshooting This is an example of a schedule entry in `.rtorrent.rc` that should be removed if rTorrent torrents are not checking or starting correctly. It relates to handling untied torrent files. ```bash schedule2 = untied_directory, 5, 5, (cat,"stop_untied=",(cfg.watch),"*.torrent") ``` -------------------------------- ### blockList Examples (Config File) Source: https://www.cross-seed.org/docs/basics/options Demonstrates various ways to configure the blockList in a configuration file, including name, regex, folder, category, tag, infoHash, and size-based exclusions. ```yaml blockList: [ "name:Release.Name", "name:-excludedGroup", "name:x265", "nameRegex:[Rr]elease[.\s][Nn]ame", "folder:folderName", "folderRegex:folder\d+", "category:icycool", "category:", "tag:everybody", "tag:", "tracker:tracker.example.com:8080", "infoHash:3317e6485454354751555555366a8308c1e92093", "sizeBelow:12345", "sizeAbove:98765", ] ``` -------------------------------- ### Configure link directories (CLI) Source: https://www.cross-seed.org/docs/basics/options Specify multiple directories for cross-seed to create links in. Use this for setups with cache/temp drives or when drive pooling is not possible. ```bash cross-seed search --linkDirs /data/torrents/xseeds /data1/torrents/cross-seed-links ``` -------------------------------- ### Check Node.js Version Source: https://www.cross-seed.org/docs/basics/getting-started Verify that Node.js version 20 or greater is installed before proceeding with the npm installation. ```bash node -v nodejs -v ``` -------------------------------- ### Generate Empty Configuration File Source: https://www.cross-seed.org/docs/reference/utils Generates an empty configuration file in the correct location. Use this to start with a fresh configuration. ```bash cross-seed gen-config ``` -------------------------------- ### Install Cross-Seed with npm Source: https://www.cross-seed.org/docs/basics/getting-started Install the cross-seed package globally using npm. This command requires Node.js 20 or higher. ```bash npm install -g cross-seed ``` -------------------------------- ### Uninstall and Install cross-seed Globally Source: https://www.cross-seed.org/docs/v6-migration Commands to uninstall the current global version and install the latest global version of cross-seed. ```bash npm uninstall -g cross-seed npm install -g cross-seed ``` -------------------------------- ### Run Cross-Seed Daemon with Verbose Logging Source: https://www.cross-seed.org/docs/basics/getting-started Enable verbose logging for the cross-seed daemon to get detailed output for troubleshooting configuration issues. Logs are also written to a file. ```bash cross-seed daemon --verbose ``` -------------------------------- ### Start cross-seed Daemon in Screen Source: https://www.cross-seed.org/docs/basics/managing-the-daemon This command starts the cross-seed daemon within a detached screen session. This allows the daemon to continue running even after you log out. ```bash screen -S cross-seed -d -m cross-seed daemon ``` -------------------------------- ### Action Type (Config File) Source: https://www.cross-seed.org/docs/basics/options Set the action option in the config file to 'save' or 'inject' to determine how found torrents are handled. 'inject' requires client setup. ```yaml action: "save", action: "inject", ``` -------------------------------- ### Run cross-seed daemon Source: https://www.cross-seed.org/docs/basics/managing-the-daemon This argument is used when launching the cross-seed executable to start the daemon service. Ensure the executable path is correctly specified. ```bash daemon ``` -------------------------------- ### Locate cross-seed executable on Windows Source: https://www.cross-seed.org/docs/basics/managing-the-daemon Use this command in cmd to find the installation path of the cross-seed executable. This is needed for setting up automated tasks. ```bash where cross-seed ``` -------------------------------- ### Enable Partial Matching Mode Source: https://www.cross-seed.org/docs/tutorials/partial-matching Set the `matchMode` option to `"partial"` to enable this feature. This requires prior setup of file linking. ```javascript module.exports = { // ... other settings ... matchMode: "partial", }; ``` -------------------------------- ### Run cross-seed with WASM memory fix Source: https://www.cross-seed.org/docs/basics/faq-troubleshooting Use this command to start cross-seed if you encounter 'RangeError: WebAssembly.instantiate(): Out of memory' errors, especially in shared environments. Requires Node v20.15 or higher. ```bash NODE_OPTIONS=--disable-wasm-trap-handler cross-seed daemon ``` -------------------------------- ### Run Cross-Seed Daemon Source: https://www.cross-seed.org/docs/basics/getting-started Execute the cross-seed daemon from your terminal to start automatic torrent searching and RSS scanning. ```bash cross-seed daemon ``` -------------------------------- ### Get User and Group IDs Source: https://www.cross-seed.org/docs/basics/managing-the-daemon Run this command to find your current user and group IDs, which are needed for the systemd service configuration. ```bash echo -e "User=$(id -un)\nGroup=$(id -gn)" ``` -------------------------------- ### Enable Flat Linking via CLI Source: https://www.cross-seed.org/docs/basics/options Use the `--flat-linking` flag on the command line to enable flat-style linking for cross-seed matches. This differs from the default tracker-specific folder structure and may require additional considerations for qBittorrent users. ```bash cross-seed search --flat-linking ``` -------------------------------- ### Configure match mode (CLI) Source: https://www.cross-seed.org/docs/basics/options Choose the matching algorithm for finding cross-seeds. 'flexible' or 'partial' are recommended for media libraries due to file renaming. ```bash cross-seed search --match-mode flexible ``` ```bash cross-seed search --match-mode strict ``` -------------------------------- ### qBittorrent webhook command for cross-seed Source: https://www.cross-seed.org/docs/tutorials/triggering-searches Configure qBittorrent to run this external program on torrent completion. Use the first command to include single episodes, or the second to exclude them. The `%I` placeholder is replaced by the torrent's info hash. ```bash curl -XPOST /api/webhook?apikey= -d "infoHash=%I" -d "includeSingleEpisodes=true" ``` ```bash curl -XPOST /api/webhook?apikey= -d "infoHash=%I" ``` -------------------------------- ### Specify Data Directories (CLI) Source: https://www.cross-seed.org/docs/basics/options Use the `--data-dirs` argument to provide paths to your media directories. Cross-seed will search these locations for files to create torrents. ```bash cross-seed search --data-dirs /data/usenet/movies ``` -------------------------------- ### Configure link directories (Config file) Source: https://www.cross-seed.org/docs/basics/options Define directories for cross-seed to create links. Ensure paths are correctly formatted, especially on Windows where double backslashes are required. ```yaml linkDirs: ["/data/torrents/SomeLinkDirName"], ``` ```yaml linkDirs: ["C:\\cross-seed-links", "D:\\xseeds"], ``` -------------------------------- ### Configure Torrent Clients (CLI) Source: https://www.cross-seed.org/docs/basics/options Specify torrent client URLs using the --torrent-clients flag. You can include multiple clients and mark them as readonly. ```bash cross-seed search --torrent-clients rtorrent:http://rutorrent/rutorrent/RPC2 ``` ```bash cross-seed search --torrent-clients rtorrent:http://user:pass@localhost:8080/RPC2 qbittorrent:http://user:pass@localhost:8080 ``` ```bash cross-seed search --torrent-clients rtorrent:readonly:http://user:pass@localhost:8080/RPC2 qbittorrent:http://user:pass@localhost:8080 ``` -------------------------------- ### Enable Client Torrent Search (CLI) Source: https://www.cross-seed.org/docs/basics/options Use the `--use-client-torrents` flag to query torrent client APIs for matches. Use `--no-use-client-torrents` to disable. ```bash cross-seed search --use-client-torrents ``` ```bash cross-seed search --no-use-client-torrents ``` -------------------------------- ### Configure Notification Webhooks (CLI) Source: https://www.cross-seed.org/docs/basics/options Set up notification webhook URLs using the --notification-webhook-urls flag for receiving event notifications. ```bash cross-seed daemon --notification-webhook-urls http://apprise:8000/notify http://apprise:8001/notify ``` -------------------------------- ### Enable Client Torrent Search (Config File) Source: https://www.cross-seed.org/docs/basics/options Set `useClientTorrents` to `true` in the configuration file to enable querying torrent client APIs. ```yaml useClientTorrents: true ``` -------------------------------- ### Add cross-seed to Cron for Reboot Source: https://www.cross-seed.org/docs/basics/managing-the-daemon This command opens the crontab editor to add a job that will automatically start the cross-seed daemon using screen after a system reboot. ```bash crontab -e ``` -------------------------------- ### Docker Compose Commands Source: https://www.cross-seed.org/docs/basics/managing-the-daemon These commands are used to manage the cross-seed Docker container after setting up the docker-compose.yml file. They allow updating, starting, stopping, restarting, and viewing logs. ```bash docker-compose pull # Update the container to the latest version of cross-seed ``` ```bash docker-compose up -d # Create/start the container ``` ```bash docker start cross-seed # Start the daemon ``` ```bash docker stop cross-seed # Stop the daemon ``` ```bash docker restart cross-seed # Restart the daemon ``` ```bash docker logs cross-seed # view the logs ``` -------------------------------- ### Configure Sonarr and Radarr URLs in config.js Source: https://www.cross-seed.org/docs/tutorials/id-searching Add the constructed Sonarr and Radarr URLs to your `config.js` file under the respective keys. Each URL should be a string within an array. ```javascript module.exports = { // ... other settings ... sonarr: ["http://localhost:8989/?apikey=12345"], radarr: ["http://localhost:7878/?apikey=67890"], }; ``` -------------------------------- ### Configure Torrent Clients (Config File) Source: https://www.cross-seed.org/docs/basics/options Define torrent client URLs in the configuration file. Multiple clients can be listed, with options for readonly access. ```yaml torrentClients: ["deluge:http://:pass@localhost:8112/json"] ``` ```yaml torrentClients: [ "qbittorrent:http://user:pass@localhost:8080", "deluge:http://:pass@localhost:8112/json", "transmission:readonly:http://user:pass@localhost:9091/transmission/rpc", "rtorrent:http://user:pass@localhost:8080/RPC2", ] ``` -------------------------------- ### Specify Torrent Directory (CLI) Source: https://www.cross-seed.org/docs/basics/options Provide the path to a directory containing torrent files using `--torrent-dir` or `-i`. Ensure correct path formatting for your OS. ```bash cross-seed search --torrent-dir ~/.config/deluge/state ``` ```bash cross-seed search -i ~/.config/transmission/torrents ``` -------------------------------- ### Season Pack Aggregation Ratio (CLI) Source: https://www.cross-seed.org/docs/basics/options Use `--season-from-episodes` with a decimal value (0 to 1) to specify the minimum ratio of episodes required to form a season pack for searching. Use `--no-season-from-episodes` to disable this feature. ```bash cross-seed search --season-from-episodes 0.8 # will also combine episodes into season packs if you have at least 80% cross-seed search --no-season-from-episodes # will not attempt to join episodes to season packs ``` -------------------------------- ### Cron Job for Rebooted Screen Session Source: https://www.cross-seed.org/docs/basics/managing-the-daemon Add this line to your crontab to ensure the cross-seed daemon starts automatically in a detached screen session every time the system reboots. ```cron @reboot screen -S cross-seed -d -m cross-seed daemon ``` -------------------------------- ### Configure match mode (Config file) Source: https://www.cross-seed.org/docs/basics/options Set the matching algorithm for cross-seed. 'strict' requires exact file name and size matches, 'flexible' allows renames, and 'partial' is the most comprehensive. ```yaml matchMode: "partial", ``` ```yaml matchMode: "strict", ``` -------------------------------- ### Set Output Directory (Config File) Source: https://www.cross-seed.org/docs/basics/options Configure the `outputDir` in your config file. Setting it to null uses the default behavior. Specify a path if you are using the 'save' action and prefer a custom location. ```yaml outputDir: null, outputDir: "/path/to/folder", ``` -------------------------------- ### Exclude Recent Search (Config File) Source: https://www.cross-seed.org/docs/basics/options Configure excludeRecentSearch in the config file with a time string to prevent searching for torrents too recently found. Examples include '1 day' or '2 weeks'. ```yaml excludeRecentSearch: "1 day", excludeRecentSearch: "2 weeks", ``` -------------------------------- ### Exclude Older Torrents (Config File) Source: https://www.cross-seed.org/docs/basics/options Set the excludeOlder option in the config file to a time string to exclude torrents based on their last search time. For example, '10 hours' or '3 days'. ```yaml excludeOlder: "10 hours", excludeOlder: "3days", excludeOlder: "0s", ``` -------------------------------- ### Manage systemd cross-seed Service Source: https://www.cross-seed.org/docs/basics/managing-the-daemon These commands are used to control the cross-seed daemon managed by systemd. They include reloading the daemon configuration, enabling/disabling the service on boot, starting, stopping, restarting, and viewing logs. ```bash sudo systemctl daemon-reload # tell systemd to reindex to discover the unit file you just created ``` ```bash sudo systemctl enable cross-seed # enable it to run on restart ``` ```bash sudo systemctl start cross-seed # start the service ``` ```bash sudo systemctl stop cross-seed # stop the service ``` ```bash sudo systemctl restart cross-seed # restart the service ``` ```bash sudo journalctl -u cross-seed # view the logs ``` -------------------------------- ### Action Type (CLI) Source: https://www.cross-seed.org/docs/basics/options Specify the action to take with found torrents using the -A or --action flags. Options are 'inject' to send to a client or 'save' to save the torrent file. ```bash cross-seed search -A inject cross-seed search --action save ``` -------------------------------- ### Trigger Cross-Seed Search via API (NPM/Local) Source: https://www.cross-seed.org/docs/basics/faq-troubleshooting Use this command to trigger a search job via the API when running cross-seed from NPM or a local installation. Ensure you replace YOUR_API_KEY with your actual API key. ```bash curl -XPOST http://localhost:2468/api/job?apikey=YOUR_API_KEY -d 'name=search' ``` -------------------------------- ### Configure API Key (Config File) Source: https://www.cross-seed.org/docs/basics/options Set the API key in the configuration file. 'undefined' disables API key authentication. ```yaml apiKey: undefined, ``` ```yaml apiKey: "abcdefghijklmn0pqrstuvwxyz", ``` -------------------------------- ### Generate Configuration File (Non-Docker) Source: https://www.cross-seed.org/docs/basics/getting-started Use this command to generate the initial configuration file for cross-seed when not using Docker. ```bash cross-seed gen-config ``` -------------------------------- ### Specify Sonarr URLs using CLI Source: https://www.cross-seed.org/docs/basics/options Use the `--sonarr` option to provide the URL(s) for your Sonarr instance(s), including the API key. Multiple URLs can be provided, separated by spaces. ```bash cross-seed search --sonarr https://localhost/?apikey=12345 ``` ```bash cross-seed search --sonarr https://localhost/?apikey=12345 https://localhost4k/?apikey=12345 ``` -------------------------------- ### Configure Radarr URL (CLI) Source: https://www.cross-seed.org/docs/basics/options Specify the URL for your Radarr instance with the API key appended. Multiple URLs can be provided. ```bash cross-seed search --radarr https://localhost/?apikey=12345 ``` ```bash cross-seed search --radarr https://localhost/?apikey=12345 https://localhost4k/?apikey=12345 ``` -------------------------------- ### Configure Multiple Sonarr/Radarr Instances Source: https://www.cross-seed.org/docs/tutorials/id-searching For managing multiple Sonarr or Radarr instances (e.g., separate 4K libraries), list each instance's URL as a separate string within the `sonarr` or `radarr` array in `config.js`. ```javascript module.exports = { // ... other settings ... sonarr: [ "http://localhost:8989/?apikey=12345", "http://localhost4k:8990/?apikey=54321", ], radarr: [ "http://localhost:7878/?apikey=67890", "http://localhost4k:7879/?apikey=09876", ], }; ``` -------------------------------- ### Ignore Non-Relevant Files for Resume (Config File) Source: https://www.cross-seed.org/docs/basics/options Set `ignoreNonRelevantFilesToResume: true` in your configuration file to enable resuming torrents when only non-video files are missing. Set to `false` to disable. ```yaml ignoreNonRelevantFilesToResume: true, ignoreNonRelevantFilesToResume: false, ``` -------------------------------- ### Configure Torznab URLs in config file Source: https://www.cross-seed.org/docs/basics/options List Torznab feed URLs within the `torznab` configuration option. Each URL should be a string, and the list must be enclosed in square brackets. ```yaml torznab: ["https://localhost/prowlarr/1/api?apikey=12345"], ``` ```yaml torznab: [ "http://prowlarr:9696/1/api?apikey=12345", "http://prowlarr:9696/2/api?apikey=12345", ], ``` ```yaml torznab: ["http://jackett:9117/api/v2.0/indexers/oink/results/torznab/api?apikey=12345"], ``` -------------------------------- ### Season Pack Aggregation Ratio (Config File) Source: https://www.cross-seed.org/docs/basics/options Configure `seasonFromEpisodes` with a decimal value (0 to 1) to set the minimum episode ratio for season pack searches. Set to `null` to disable. ```yaml seasonFromEpisodes: 0.8, // requires 80% of the episodes to cross-seed a season pack seasonFromEpisodes: null, // will disable season pack from episodes ``` -------------------------------- ### Ignore Non-Relevant Files for Resume (CLI) Source: https://www.cross-seed.org/docs/basics/options Use `--ignore-non-relevant-files-to-resume` to resume torrents if only non-video files are missing, provided the remaining size is within limits. Use `--no-ignore-non-relevant-files-to-resume` to disable this behavior. ```bash cross-seed search --ignore-non-relevant-files-to-resume # will resume if the only files missing are known-irrelevant files cross-seed search --no-ignore-non-relevant-files-to-resume # will not resume if the only files missing are known-irrelevant files ``` -------------------------------- ### Run Cross-Seed Search Command Source: https://www.cross-seed.org/docs/reference/utils Execute the search command to find torrents. Use flags like --no-exclude-recent-search and --no-exclude-older to modify search behavior. ```bash cross-seed search ``` ```bash cross-seed search --no-exclude-recent-search --no-exclude-older ``` -------------------------------- ### Create systemd Unit File for cross-seed Source: https://www.cross-seed.org/docs/basics/managing-the-daemon This command creates the systemd service file. Customize the User and Group variables to match your system's user and group. ```bash touch /etc/systemd/system/cross-seed.service ``` -------------------------------- ### Set API Key (CLI) Source: https://www.cross-seed.org/docs/basics/options Enable API key authentication for daemon requests. Requires a valid key. ```bash cross-seed daemon --api-key # will require auth on requests ``` -------------------------------- ### Test Notification Configuration Source: https://www.cross-seed.org/docs/reference/utils Sends a test notification to the configured URLs to verify settings. ```bash cross-seed test-notification ``` -------------------------------- ### Generate Configuration File (Docker) Source: https://www.cross-seed.org/docs/basics/getting-started Generate the configuration file for cross-seed within a Docker environment by mounting a volume for the config directory. ```bash docker run \ -v /path/to/config:/config \ ghcr.io/cross-seeding/cross-seed gen-config ``` -------------------------------- ### Compare Torrents for Matching Source: https://www.cross-seed.org/docs/reference/utils Compares two torrents to determine if and why they match the algorithm. ```bash cross-seed diff ``` -------------------------------- ### Include Non-Videos (CLI) Source: https://www.cross-seed.org/docs/basics/options Use the --include-non-videos flag to include non-video torrents in searches. Use --no-include-non-videos or omit the flag to exclude them. ```bash cross-seed search --include-non-videos # will include non-videos cross-seed search --no-include-non-videos # will not include non-videos cross-seed search # will not include non-videos ``` -------------------------------- ### Configure Search Cadence (Config File) Source: https://www.cross-seed.org/docs/basics/options Set the frequency for periodic torrent searches. Setting to null disables the feature. Minimum cadence is '1 day'. ```yaml searchCadence: null, // disable the periodic search feature ``` ```yaml searchCadence: "2w", ``` ```yaml searchCadence: "4 weeks", ``` -------------------------------- ### Configure RSS Cadence (Config File) Source: https://www.cross-seed.org/docs/basics/options Set the frequency for RSS feed checks. Setting to null disables the feature. Minimum cadence is 10 minutes. ```yaml rssCadence: null, // disable the RSS feature ``` ```yaml rssCadence: "10 minutes", ``` ```yaml rssCadence: "20min", ``` -------------------------------- ### Configure dataDirs and maxDataDepth for Usenet Downloads Source: https://www.cross-seed.org/docs/tutorials/data-based-matching Use this configuration when downloading through Usenet or other non-torrent methods. Set `maxDataDepth` to 1 to match movie files directly within the specified directory. ```yaml dataDirs: ["/data/usenet/movies", ...], maxDataDepth: 1, ``` -------------------------------- ### Specify Torznab URLs using CLI Source: https://www.cross-seed.org/docs/basics/options Use the `--torznab` or `-T` option to provide a list of Torznab feed URLs. The path of each URL must end with `/api`. This is useful for integrating with services like Jackett or Prowlarr. ```bash cross-seed search --torznab https://localhost/prowlarr/1/api?apikey=12345 ``` ```bash cross-seed search -T http://prowlarr:9696/1/api?apikey=12345 http://prowlarr:9696/2/api?apikey=12345 ``` ```bash cross-seed search -T http://jackett:9117/api/v2.0/indexers/oink/results/torznab/api?apikey=12345 ``` -------------------------------- ### Specify Torrent Directory (Config File) Source: https://www.cross-seed.org/docs/basics/options Configure the `torrentDir` option in the config file. For Windows paths, use double backslashes. ```yaml torrentDir: "/home//.config/deluge/state" ``` ```yaml torrentDir: "C:\\torrents" ``` -------------------------------- ### Auto Resume Max Download Size (CLI) Source: https://www.cross-seed.org/docs/basics/options Use `--auto-resume-max-download` with a byte value to set the maximum remaining download size for Cross-Seed to automatically resume a torrent. Set to `0` to only resume complete matches. ```bash cross-seed search --auto-resume-max-download 0 # only resume complete matches ``` -------------------------------- ### Set RSS Cadence (CLI) Source: https://www.cross-seed.org/docs/basics/options Configure how often the daemon checks RSS feeds for new uploads. Minimum cadence is 10 minutes. ```bash cross-seed daemon --rss-cadence 10min ``` -------------------------------- ### Display API Key Source: https://www.cross-seed.org/docs/reference/utils Shows the current API key used by the application. ```bash cross-seed api-key ``` -------------------------------- ### Trigger a Job Early Source: https://www.cross-seed.org/docs/reference/api This endpoint allows you to manually trigger an early run of a specified job ('search', 'rss', or 'cleanup'). For 'search' and 'rss' jobs, triggering an early run doubles their normal cadence for the next scheduled run. For the 'cleanup' job, it runs all cleanup tasks immediately. The endpoint returns `200 OK` on success, `404 Not Found` if the job is not enabled, and `409 Conflict` if the job is already running or its scheduled run is too soon. ```APIDOC ## POST /api/job ### Description This endpoint allows you to trigger an early run of a specified job. For the `search` and `rss` jobs, the next scheduled run for the job will be double its normal cadence if the request was successful. You will be able to perform another early run once the next scheduled run is closer than its regular cadence away. When triggered for the `cleanup` job, it will always run all cleanup tasks to bypass their internal scheduling. ### Method POST ### Endpoint /api/job ### Parameters #### Request Body - **job** (string) - Required - The name of the job to trigger (e.g., "search", "rss", "cleanup"). ### Supported formats `Content-Type`| Supported ---|--- `application/json`| ✅ `application/x-www-form-urlencoded`| ✅ ### Response #### Success Response (200 OK) Job successfully triggered. #### Not Found Response (404) Job is not enabled in the configuration. #### Conflict Response (409) Job is currently running or its scheduled run is too soon. ``` -------------------------------- ### Run Cross-Seed Daemon with Docker Source: https://www.cross-seed.org/docs/basics/getting-started Use Docker to run the cross-seed daemon, ensuring necessary paths are exposed to the container for configuration and data access. ```bash docker run -v /path/to/config:/config ghcr.io/cross-seed/cross-seed daemon ``` -------------------------------- ### Set Daemon Host (Config File) Source: https://www.cross-seed.org/docs/basics/options Configure the host the cross-seed daemon listens on within the configuration file. Defaults to '0.0.0.0'. ```yaml host: "1.3.3.7", ``` -------------------------------- ### Sonarr TV Library Folder Structure Handling Source: https://www.cross-seed.org/docs/v6-migration Enables cross-seed to understand and match Sonarr's standard TV library folder structures using `matchMode: "flexible"` or `"partial"`. This is useful for cross-seeding season packs after import. ```yaml My Show S01/ My Show S01E01 My Show S01E02 My Show S02/ My Show S02E01 My Show S02E02 ``` ```yaml My Show/ Season 1/ My Show S01E01 My Show S01E02 Season 2/ My Show S02E01 My Show S02E02 ``` -------------------------------- ### Enable Duplicate Categories (CLI) Source: https://www.cross-seed.org/docs/basics/options Use the `--duplicate-categories` flag to have cross-seed append '.cross-seed' to the original category for injected torrents. This prevents duplicate detection in clients like qBittorrent when linking is enabled. ```bash cross-seed search --duplicate-categories ``` -------------------------------- ### Configure Radarr URL (Config File) Source: https://www.cross-seed.org/docs/basics/options Define Radarr instance URLs within the configuration file. Supports multiple instances. ```yaml radarr: ["https://radarr/?apikey=12345"] ``` ```yaml radarr: ["http://radarr:7878/?apikey=12345","https://radarr4k:7879/?apikey=12345"] ``` -------------------------------- ### Configure skip recheck (Config file) Source: https://www.cross-seed.org/docs/basics/options Set to 'true' to skip rechecking torrents during injection, or 'false' to perform rechecks for all injections. ```yaml skipRecheck: true, ``` ```yaml skipRecheck: false, ``` -------------------------------- ### Configure rTorrent to run cross-seed script on completion Source: https://www.cross-seed.org/docs/tutorials/triggering-searches These commands add necessary methods and event listeners to your `.rtorrent.rc` file to execute the `rtorrent-cross-seed.sh` script when a torrent finishes downloading. ```bash echo 'method.insert=d.data_path,simple,"if=(d.is_multi_file),(cat,(d.directory),/),(cat,(d.directory),/,(d.name))"' >> .rtorrent.rc ``` ```bash echo 'method.set_key=event.download.finished,cross_seed,"execute={\`pwd\`/rtorrent-cross-seed.sh,$d.name=,$d.hash=,$d.data_path=}"' >> .rtorrent.rc ``` -------------------------------- ### Configure Partial Match Thresholds and Auto Resume Source: https://www.cross-seed.org/docs/tutorials/partial-matching Adjust `fuzzySizeThreshold` to control the acceptable size variance for partial matches. Configure `autoResumeMaxDownload` and `ignoreNonRelevantFilesToResume` to manage how cross-seed handles downloading missing files for partial matches. ```javascript module.exports = { // ... other settings ... fuzzySizeThreshold: 0.1, autoResumeMaxDownload: 52428800, ignoreNonRelevantFilesToResume: true, }; ``` -------------------------------- ### Configure Sonarr URLs in config file Source: https://www.cross-seed.org/docs/basics/options Define the `sonarr` configuration option as an array of strings, where each string is the URL to a Sonarr instance with its API key appended. ```yaml sonarr: ["https://sonarr/?apikey=12345"], ``` ```yaml sonarr: ["http://sonarr:8989/?apikey=12345","http://sonarr4k:8990/?apikey=12345"], ``` -------------------------------- ### Set Search Cadence (CLI) Source: https://www.cross-seed.org/docs/basics/options Configure how often the daemon performs periodic searches for torrents. Avoid increasing above '1 day'. ```bash cross-seed daemon --search-cadence "2 weeks" ``` ```bash cross-seed daemon --search-cadence "2w" ``` -------------------------------- ### Specify Data Directories (Config File) Source: https://www.cross-seed.org/docs/basics/options Configure `dataDirs` in your config file to specify multiple directories for cross-seed to search. For Windows users, ensure paths use double backslashes. ```yaml dataDirs: ["/data/usenet/movies"], dataDirs: ["/data/usenet/movies", "/data/torrents/tv"], dataDirs: ["C:\\My Data\\Downloads\\Movies"], ``` -------------------------------- ### Sonarr/Radarr URLs for API Key Source: https://www.cross-seed.org/docs/tutorials/id-searching Format URLs with your Sonarr/Radarr instance details and API key. Replace 'YOUR_API_KEY' with your actual key. These can be direct URLs or Docker container names. ```bash # Replace with your Sonarr/Radarr URL and API key http://localhost:8989/?apikey=YOUR_API_KEY http://localhost:7878/?apikey=YOUR_API_KEY # or, for Docker: http://localhost:8989/?apikey=YOUR_API_KEY http://radarr:7878/?apikey=YOUR_API_KEY ``` -------------------------------- ### Configure dataDirs and maxDataDepth for Sonarr Media Source: https://www.cross-seed.org/docs/tutorials/data-based-matching Configure `dataDirs` for Sonarr. `maxDataDepth` is set to 2. Use 3 if using `seasonFromEpisodes` or `includeSingleEpisodes`, noting that cross-seed will not search the show directory itself. ```yaml dataDirs: ["/data/sonarr", ...], maxDataDepth: 2, # use 3 if using seasonFromEpisodes or includeSingleEpisodes (note: cross-seed will not search 'Show/' itself) ``` -------------------------------- ### Fuzzy Size Threshold (CLI) Source: https://www.cross-seed.org/docs/basics/options Adjust the fuzzy size threshold for torrent matching using the --fuzzy-size-threshold flag. A higher value rejects fewer torrents based on size. ```bash cross-seed search --fuzzy-size-threshold 0.02 cross-seed daemon --fuzzy-size-threshold 0.02 ``` -------------------------------- ### Include Non-Videos (Config File) Source: https://www.cross-seed.org/docs/basics/options Set the includeNonVideos option to true or false in the configuration file to control the inclusion of non-video torrents. ```yaml includeNonVideos: true, includeNonVideos: false, ``` -------------------------------- ### Provide API Key for Authorization Source: https://www.cross-seed.org/docs/reference/api API key can be provided as a query parameter or an HTTP header for authenticated requests. ```bash # provide api key as a query param curl -XPOST localhost:2468/api/webhook?apikey=YOUR_API_KEY --data-urlencode ... ``` ```bash # provide api key as an HTTP header curl -XPOST localhost:2468/api/webhook -H "X-Api-Key: YOUR_API_KEY" --data-urlencode ... ``` -------------------------------- ### Set Daemon Host (CLI) Source: https://www.cross-seed.org/docs/basics/options Change the host the cross-seed daemon listens on. Defaults to '0.0.0.0'. ```bash cross-seed daemon --host 192.168.1.100 ``` -------------------------------- ### Specify injection directory for cross-seed inject Source: https://www.cross-seed.org/docs/tutorials/injection Use the `--inject-dir` flag with the `cross-seed inject` command to specify an alternative directory for .torrent files that need injection. This is useful if your torrents are not saved to the default output directory. ```bash cross-seed inject --inject-dir /path/to/folder ``` -------------------------------- ### Include Single Episodes in Cross-Seed Config (Config File) Source: https://www.cross-seed.org/docs/basics/options Set `includeSingleEpisodes: true` in your configuration file to include all single episodes during searches. Set to `false` to exclude them. ```yaml includeSingleEpisodes: true, includeSingleEpisodes: false, ``` -------------------------------- ### Configure link type (Config file) Source: https://www.cross-seed.org/docs/basics/options Specify the linking method for cross-seed. Valid options are 'hardlink', 'symlink', and 'reflink'. ```yaml linkType: "hardlink", ``` ```yaml linkType: "symlink", ``` -------------------------------- ### Run Cross-Seed Docker Container Source: https://www.cross-seed.org/docs/basics/getting-started Execute the cross-seed Docker image to check its version. This is a preliminary step before deploying the full Docker Compose configuration. ```bash docker run ghcr.io/cross-seeding/cross-seed:6 --version ``` -------------------------------- ### Create Job with Form Data Source: https://www.cross-seed.org/docs/reference/api Use this endpoint to create a new job by sending form-encoded data. The 'name' field is required, specifying the type of job to run. ```bash curl -XPOST http://localhost:2468/api/job \ -d 'name=search' \ -d 'ignoreExcludeRecentSearch=true' \ -d 'ignoreExcludeOlder=true' ``` -------------------------------- ### Configure Notification Webhooks (Config File) Source: https://www.cross-seed.org/docs/basics/options Specify notification webhook URLs in the configuration file to receive event payloads. ```yaml notificationWebhookUrls: ["http://apprise:8000/notify", "http://apprise:8001/notify"] ```