AgentSkillsCN

synology-dsget

通过 dsget CLI 管理 Synology NAS:使用 Download Station 下载、暂停、恢复或删除种子、磁力链接和 URL;使用 File Station 浏览文件夹、创建文件夹、查看文件信息;使用 RSS Feeds 列出、查看条目并下载内容。当您需要在 Synology NAS 上管理下载任务,或浏览 NAS 文件时使用。

SKILL.md
--- frontmatter
name: synology-dsget
description: "Manage Synology NAS via dsget CLI: Download Station (add/pause/resume/delete torrents, magnets, URLs), File Station (browse folders, create folders, file info), and RSS Feeds (list, view items, download). Use when managing downloads on a Synology NAS or browsing NAS files."

Synology NAS Management with dsget

CLI tool for Synology Download Station and File Station.

⚠️ Important: File Naming

Torrent files MUST have .torrent extension or Download Station will reject them with error 1903.

When receiving torrent files from Telegram/messaging (which often have UUID names without extension):

bash
# WRONG - will fail with error 1903
dsget tasks add "/path/to/2076c91d-aa25-47f1-96eb-22c6b2c340b7"

# RIGHT - rename first
cp "/path/to/uuid-file" "/path/to/filename.torrent"
dsget tasks add "/path/to/filename.torrent" -d "video/tvshows/Series"

Authentication

bash
# Login (credentials stored locally)
dsget login --url https://nas.example.com:5001 -u admin
dsget login -h 192.168.1.100 -p 5001 -u admin -s  # -s for HTTPS

# Logout
dsget logout

Config stored in: ~/Library/Preferences/dsget-nodejs/config.json (macOS)

Download Station - Tasks

bash
# List tasks
dsget tasks                    # or: dsget tasks list
dsget tasks ls -v              # verbose with details

# Filter by status
dsget tasks ls -s downloading
dsget tasks ls -s seeding
dsget tasks ls -s paused
dsget tasks ls -s finished

# Add downloads
dsget tasks add "magnet:?xt=urn:btih:..."
dsget tasks add "https://example.com/file.torrent"
dsget tasks add /path/to/local.torrent
dsget tasks add <url> -d /volume1/downloads  # custom destination

# Control tasks
dsget tasks pause <id>         # or: dsget tasks pause all
dsget tasks resume <id>        # or: dsget tasks resume all
dsget tasks delete <id>
dsget tasks delete <id> -f     # skip confirmation

# Task info
dsget tasks info <id>

File Station

bash
# List shared folders
dsget files shares

# List files
dsget files ls /video/tvshows
dsget files ls /video/movies -l   # long format
dsget files ls /path -a           # include hidden

# Create folder
dsget files mkdir /video/tvshows "New Series"

# File info
dsget files info /path/to/file

BT Search

bash
# Search torrents (uses EZTV, The Pirate Bay)
dsget search find "query" --limit 20

# Available modules
dsget search modules

RSS Feeds

bash
# List feeds
dsget feeds list

# View feed items
dsget feeds items <feedId>
dsget feeds items <feedId> --limit 50

# Refresh feed
dsget feeds refresh <feedId>

# Download from feed item URL
dsget feeds download "<torrent-url>"

Destination Guidelines

When adding a torrent, determine the correct destination folder:

Content TypeDestinationExample
Movie/video/moviesdsget tasks add movie.torrent -d /video/movies
Complete series/video/tvshows/<Series Name>-d "/video/tvshows/Breaking Bad"
Season pack/video/tvshows/<Series Name>-d "/video/tvshows/The Office"
Single episode/video/tvshows/<Series Name>/Season X-d "/video/tvshows/The Pitt/Season 2"
Other/UnknownDefault (no -d flag)dsget tasks add file.torrent

How to find the right folder

⚠️ IMPORTANT: Always check the existing folder structure before adding episodes!

  1. Find the series folder: dsget files ls /video/tvshows | grep -i "<series name>"
  2. If series folder EXISTS, check its structure: dsget files ls "/video/tvshows/<Series Name>"
    • If you see Season folders (Season 1, Season 2, etc.) → use the appropriate season folder
    • If you see loose episode files (no season folders) → add directly to the series folder
    • Match the existing pattern — don't create Season folders if the series doesn't use them
  3. If series folder DOES NOT EXIST (new series):
    • Create series folder: dsget files mkdir "/video/tvshows" "<Series Name> (Year)"
    • Create season folder: dsget files mkdir "/video/tvshows/<Series Name>" "Season X"
    • Add to the season folder

Examples

bash
# Movie
dsget tasks add "Inception.2010.torrent" -d /video/movies

# Episode - FIRST check the structure:
dsget files ls "/video/tvshows/The Pitt"
# Output shows: Season 1/, Season 2/  → USE season folders
dsget tasks add "The.Pitt.S02E03.torrent" -d "/video/tvshows/The Pitt/Season 2"

dsget files ls "/video/tvshows/Percy Jackson y los Dioses del Olimpo"
# Output shows: S02E01.mkv, S02E02.mkv...  → NO season folders, episodes are loose
dsget tasks add "Percy.Jackson.S02E08.torrent" -d "/video/tvshows/Percy Jackson y los Dioses del Olimpo"

# Full season pack
dsget tasks add "Breaking.Bad.S01.torrent" -d "/video/tvshows/Breaking Bad"

Common Workflows

Add torrent to specific folder

bash
dsget tasks add "magnet:..." -d /video/movies

Search and download (RSS feeds only)

bash
# List available RSS feeds
dsget feeds list

# Search in feed items
dsget feeds items <feedId> --limit 50

# Download from feed item
dsget feeds download "<torrent-url>"

Download from private tracker feed

bash
# List feed items to find the torrent
dsget feeds items 2 --limit 50
# Download using the feed item URL
dsget feeds download "https://tracker.example.com/download.php?id=..."
# Or add directly
dsget tasks add "https://tracker.example.com/download.php?id=..."