{
  "id": "gamdl",
  "name": "Gamdl",
  "homepage": "https://github.com/glomatico/gamdl",
  "description": "A command-line app for downloading Apple Music songs, music videos and post videos.",
  "executables": [
    "gamdl"
  ],
  "dotfiles": {
    "paths": [
      "~/.gamdl/config.ini"
    ],
    "exclude": [],
    "secret": [],
    "side_effect": false
  },
  "commands": {
    "format": 1,
    "label": "Download Apple Music",
    "description": "Download songs, albums, playlists, artists or videos from Apple Music URLs. Wrapper, DRM, and filename template options are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "source": [
      {
        "id": "readme",
        "kind": "manual",
        "url": "https://github.com/glomatico/gamdl/blob/main/README.md",
        "revision": "main 2026-10",
        "evidence": "| `--read-urls-as-txt`, `-r`      | Read URLs from text files                                         | `false`                       |\n| `--cookies-path`, `-c`          | Cookies file path                                                 | `./cookies.txt`               |\n| `--language`, `-l`              | Metadata language                                                 | `en-US`                       |\n| `--cover-size`                  | Cover size in pixels                                              | `1200`                        |\n| `--no-synced-lyrics`            | Don't download synced lyrics                                      | `false`                       |\n| `--synced-lyrics-only`          | Download only synced lyrics                                       | `false`                       |\n| `--music-video-resolution`      | Max music video resolution                                        | `1080p`                       |\n| `--output-path`, `-o`           | Output directory path                                             | `./Apple Music`               |\n| `--download-mode`               | Download mode                                                     | `ytdlp`                       |\n| `--no-config-file`, `-n`        | Don't use a config file                                           | `false`                       |\nEnable it with `--download-mode nm3u8dlre`\n"
      }
    ],
    "field": [
      {
        "id": "urls",
        "label": "URLs or text files",
        "type": "string",
        "position": 0,
        "multiple": true,
        "sources": [
          "readme"
        ]
      },
      {
        "id": "read_urls_as_txt",
        "label": "Read URLs from text files",
        "description": "Treat each positional argument as a text file of URLs.",
        "type": "boolean",
        "option": [
          "--read-urls-as-txt",
          "-r"
        ],
        "sources": [
          "readme"
        ]
      },
      {
        "id": "cookies_path",
        "label": "Cookies file",
        "type": "path",
        "option": [
          "--cookies-path",
          "-c"
        ],
        "path": {
          "kind": "file",
          "role": "input"
        },
        "sources": [
          "readme"
        ]
      },
      {
        "id": "output_path",
        "label": "Output directory",
        "type": "path",
        "option": [
          "--output-path",
          "-o"
        ],
        "path": {
          "kind": "directory",
          "role": "output"
        },
        "sources": [
          "readme"
        ]
      },
      {
        "id": "language",
        "label": "Metadata language",
        "type": "string",
        "option": [
          "--language",
          "-l"
        ],
        "suggestions": [
          {
            "value": "en-US",
            "label": "en-US"
          }
        ],
        "sources": [
          "readme"
        ]
      },
      {
        "id": "download_mode",
        "label": "Download mode",
        "type": "enum",
        "option": [
          "--download-mode"
        ],
        "choices": [
          {
            "value": "ytdlp",
            "label": "yt-dlp"
          },
          {
            "value": "nm3u8dlre",
            "label": "N_m3u8DL-RE"
          }
        ],
        "sources": [
          "readme"
        ]
      },
      {
        "id": "music_video_resolution",
        "label": "Max music video resolution",
        "type": "string",
        "option": [
          "--music-video-resolution"
        ],
        "suggestions": [
          {
            "value": "1080p",
            "label": "1080p"
          }
        ],
        "sources": [
          "readme"
        ]
      },
      {
        "id": "cover_size",
        "label": "Cover size (pixels)",
        "type": "integer",
        "option": [
          "--cover-size"
        ],
        "sources": [
          "readme"
        ]
      },
      {
        "id": "no_synced_lyrics",
        "label": "Skip synced lyrics",
        "type": "boolean",
        "option": [
          "--no-synced-lyrics"
        ],
        "sources": [
          "readme"
        ]
      },
      {
        "id": "synced_lyrics_only",
        "label": "Synced lyrics only",
        "type": "boolean",
        "option": [
          "--synced-lyrics-only"
        ],
        "sources": [
          "readme"
        ]
      },
      {
        "id": "no_config_file",
        "label": "Ignore config file",
        "type": "boolean",
        "option": [
          "--no-config-file",
          "-n"
        ],
        "sources": [
          "readme"
        ]
      }
    ],
    "task": [
      {
        "id": "download",
        "label": "Download URLs",
        "fields": [
          "urls",
          "cookies_path",
          "output_path",
          "language",
          "no_synced_lyrics"
        ],
        "required": [
          "urls"
        ]
      },
      {
        "id": "from-file",
        "label": "Download from a URL list",
        "set": {
          "read_urls_as_txt": [
            true
          ]
        },
        "lock": [
          "read_urls_as_txt"
        ],
        "fields": [
          "urls",
          "read_urls_as_txt",
          "cookies_path",
          "output_path"
        ],
        "required": [
          "urls"
        ]
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "urls",
          "read_urls_as_txt",
          "cookies_path",
          "output_path",
          "language"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "download_mode",
          "music_video_resolution",
          "cover_size",
          "no_synced_lyrics",
          "synced_lyrics_only",
          "no_config_file"
        ]
      }
    ]
  }
}
