{
  "id": "scdl",
  "name": "scdl",
  "homepage": "https://github.com/scdl-org/scdl",
  "description": "SoundCloud downloader",
  "executables": [
    "scdl"
  ],
  "dotfiles": {
    "paths": [],
    "secret": [
      "[configHome]/scdl/scdl.cfg"
    ]
  },
  "commands": {
    "format": 1,
    "label": "Download from SoundCloud",
    "description": "Download a SoundCloud track, playlist or user's uploads with scdl. Naming formats, size limits, yt-dlp passthrough and credentials are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": false,
      "short_attached": false,
      "short_bundles": false
    },
    "source": [
      {
        "id": "help",
        "kind": "help",
        "url": "https://github.com/scdl-org/scdl/blob/master/scdl/scdl.py",
        "revision": "master 2026-10-27",
        "evidence": "    -l [url]                        URL can be track/playlist/user\n    -a                              Download all tracks of user (including reposts)\n    -t                              Download all uploads of a user (no reposts)\n    -f                              Download all favorites (likes) of a user\n    -p                              Download all playlists of a user\n    -r                              Download all reposts of user\n    -c                              Continue if a downloaded file already exists\n    -o [offset]                     Start downloading a playlist from the [offset]th track\n    --onlymp3                       Download only mp3 files\n    --path [path]                   Use a custom path for downloaded files\n    --download-archive [file]       Keep track of track IDs in an archive file,\n    --sync [file]                   Compares an archive file to a playlist and downloads/removes\n    --flac                          Convert original files to .flac. Only works if the original\n    --no-playlist-folder            Download playlist tracks into main directory,\n    --overwrite                     Overwrite file if it already exists\n    --no-playlist                   Skip downloading playlists\n    --opus                          Prefer downloading opus streams over mp3 streams\n"
      }
    ],
    "field": [
      {
        "id": "url",
        "label": "SoundCloud URL",
        "description": "Track, playlist or user URL.",
        "type": "url",
        "option": [
          "-l"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "all_tracks",
        "label": "All tracks of user",
        "description": "Including reposts.",
        "type": "boolean",
        "option": [
          "-a"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "uploads",
        "label": "Uploads of user",
        "description": "No reposts.",
        "type": "boolean",
        "option": [
          "-t"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "favorites",
        "label": "Favorites (likes) of user",
        "type": "boolean",
        "option": [
          "-f"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "path",
        "label": "Download folder",
        "type": "path",
        "option": [
          "--path"
        ],
        "path": {
          "kind": "directory",
          "role": "output",
          "must_exist": false
        },
        "sources": [
          "help"
        ]
      },
      {
        "id": "continue",
        "label": "Continue if file exists",
        "type": "boolean",
        "option": [
          "-c"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "overwrite",
        "label": "Overwrite existing files",
        "type": "boolean",
        "option": [
          "--overwrite"
        ],
        "effect": "overwrite",
        "sources": [
          "help"
        ]
      },
      {
        "id": "archive",
        "label": "Download archive",
        "description": "Record downloaded track IDs here and skip them next time.",
        "type": "path",
        "option": [
          "--download-archive"
        ],
        "path": {
          "kind": "file",
          "role": "output",
          "must_exist": false
        },
        "sources": [
          "help"
        ]
      },
      {
        "id": "onlymp3",
        "label": "Only MP3",
        "type": "boolean",
        "option": [
          "--onlymp3"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "no_playlist_folder",
        "label": "No playlist subfolder",
        "type": "boolean",
        "option": [
          "--no-playlist-folder"
        ],
        "sources": [
          "help"
        ]
      }
    ],
    "task": [
      {
        "id": "single",
        "label": "Download a track or playlist",
        "fields": [
          "url",
          "path",
          "continue",
          "onlymp3"
        ],
        "required": [
          "url"
        ]
      },
      {
        "id": "user-uploads",
        "label": "Download a user's uploads",
        "set": {
          "uploads": [
            true
          ]
        },
        "fields": [
          "url",
          "uploads",
          "path",
          "archive"
        ],
        "required": [
          "url"
        ]
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "url",
          "all_tracks",
          "uploads",
          "favorites",
          "path"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "continue",
          "overwrite",
          "archive",
          "onlymp3",
          "no_playlist_folder"
        ]
      }
    ]
  }
}
