{"id":37214100,"url":"https://github.com/spotdl/spotify-downloader","last_synced_at":"2026-01-15T00:45:29.173Z","repository":{"id":37239287,"uuid":"62743585","full_name":"spotDL/spotify-downloader","owner":"spotDL","description":"Download your Spotify playlists and songs along with album art and metadata (from YouTube if a match is found).","archived":false,"fork":false,"pushed_at":"2025-11-15T03:49:30.000Z","size":159652,"stargazers_count":23494,"open_issues_count":84,"forks_count":2038,"subscribers_count":209,"default_branch":"master","last_synced_at":"2026-01-07T04:01:59.675Z","etag":null,"topics":["download-music","hacktoberfest","mp3","music","playlists","python","song","song-lyrics","spotdl","spotdl-cli","spotify","youtube-music"],"latest_commit_sha":null,"homepage":"https://spotdl.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spotDL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["Silverarmor"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2016-07-06T18:19:20.000Z","updated_at":"2026-01-07T03:44:57.000Z","dependencies_parsed_at":"2024-01-07T17:11:34.999Z","dependency_job_id":"0b8cfa59-515f-4d3d-a344-a0ba79cf3e48","html_url":"https://github.com/spotDL/spotify-downloader","commit_stats":{"total_commits":2151,"total_committers":150,"mean_commits":14.34,"dds":0.6071594607159461,"last_synced_commit":"f90cfb3f5ab1b15e73d0393d531908d4ac789e7d"},"previous_names":[],"tags_count":95,"template":false,"template_full_name":null,"purl":"pkg:github/spotDL/spotify-downloader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotDL%2Fspotify-downloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotDL%2Fspotify-downloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotDL%2Fspotify-downloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotDL%2Fspotify-downloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spotDL","download_url":"https://codeload.github.com/spotDL/spotify-downloader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotDL%2Fspotify-downloader/sbom","scorecard":{"id":116615,"data":{"date":"2025-08-04","repo":{"name":"github.com/spotDL/spotify-downloader","commit":"789b7649d036666d8e2e07913e97a1de7a340f8b"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":5.1,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":7,"reason":"Found 3/4 approved changesets -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 19 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build-docs.yml:1","Warn: no topLevel permission defined: .github/workflows/docker-hub-image-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/python-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/standard-checks.yml:1","Warn: no topLevel permission defined: .github/workflows/tests.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":3,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'master'","Info: 'force pushes' disabled on branch 'master'","Warn: branch 'master' does not require approvers","Warn: codeowners review is not required on branch 'master'","Warn: no status checks found to merge onto branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v4.3.0 not signed: https://api.github.com/repos/spotDL/spotify-downloader/releases/237040532","Warn: release artifact v4.2.11 not signed: https://api.github.com/repos/spotDL/spotify-downloader/releases/195058393","Warn: release artifact v4.2.10 not signed: https://api.github.com/repos/spotDL/spotify-downloader/releases/185899579","Warn: release artifact v4.2.9 not signed: https://api.github.com/repos/spotDL/spotify-downloader/releases/185686652","Warn: release artifact v4.2.8 not signed: https://api.github.com/repos/spotDL/spotify-downloader/releases/173811787","Warn: release artifact v4.3.0 does not have provenance: https://api.github.com/repos/spotDL/spotify-downloader/releases/237040532","Warn: release artifact v4.2.11 does not have provenance: https://api.github.com/repos/spotDL/spotify-downloader/releases/195058393","Warn: release artifact v4.2.10 does not have provenance: https://api.github.com/repos/spotDL/spotify-downloader/releases/185899579","Warn: release artifact v4.2.9 does not have provenance: https://api.github.com/repos/spotDL/spotify-downloader/releases/185686652","Warn: release artifact v4.2.8 does not have provenance: https://api.github.com/repos/spotDL/spotify-downloader/releases/173811787"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-docs.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/build-docs.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-docs.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/build-docs.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build-docs.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/build-docs.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker-hub-image-publish.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/docker-hub-image-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker-hub-image-publish.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/docker-hub-image-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker-hub-image-publish.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/docker-hub-image-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker-hub-image-publish.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/docker-hub-image-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker-hub-image-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/docker-hub-image-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker-hub-image-publish.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/docker-hub-image-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker-hub-image-publish.yml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/docker-hub-image-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/python-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-publish.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/python-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-publish.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/python-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-publish.yml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/python-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-publish.yml:83: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:93: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/python-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-publish.yml:94: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/python-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-publish.yml:121: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/standard-checks.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/standard-checks.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/standard-checks.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/standard-checks.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/standard-checks.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/standard-checks.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:92: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:97: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:107: update your workflow using https://app.stepsecurity.io/secureworkflow/spotDL/spotify-downloader/tests.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating python:3-alpine to python:3-alpine@sha256:f196fd275fdad7287ccb4b0a85c2e402bb8c794d205cf6158909041c1ee9f38d","Warn: pipCommand not pinned by hash: Dockerfile:18","Warn: pipCommand not pinned by hash: scripts/termux.sh:11","Warn: pipCommand not pinned by hash: .github/workflows/python-publish.yml:42","Info:   0 out of  17 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  19 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   3 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/docker-hub-image-publish.yml:26"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T01:27:30.244Z","repository_id":37239287,"created_at":"2025-08-16T01:27:30.244Z","updated_at":"2025-08-16T01:27:30.244Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28440247,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T00:34:46.850Z","status":"ssl_error","status_checked_at":"2026-01-15T00:34:46.551Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["download-music","hacktoberfest","mp3","music","playlists","python","song","song-lyrics","spotdl","spotdl-cli","spotify","youtube-music"],"created_at":"2026-01-15T00:45:28.598Z","updated_at":"2026-01-15T00:45:29.160Z","avatar_url":"https://github.com/spotDL.png","language":"Python","funding_links":["https://github.com/sponsors/Silverarmor"],"categories":[],"sub_categories":[],"readme":"\n\u003c!--- mdformat-toc start --slug=github ---\u003e\n\n\u003c!---\n!!! IF EDITING THE README, ENSURE TO COPY THE WHOLE FILE TO index.md in `/docs/` AND REMOVE THE REFERENCES TO ReadTheDocs THERE.\n---\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# spotDL v4\n\n**spotDL** finds songs from Spotify playlists on YouTube and downloads them - along with album art, lyrics and metadata.\n\n[![MIT License](https://img.shields.io/github/license/spotdl/spotify-downloader?color=44CC11\u0026style=flat-square)](https://github.com/spotDL/spotify-downloader/blob/master/LICENSE)\n[![PyPI version](https://img.shields.io/pypi/pyversions/spotDL?color=%2344CC11\u0026style=flat-square)](https://pypi.org/project/spotdl/)\n[![PyPi downloads](https://img.shields.io/pypi/dw/spotDL?label=downloads@pypi\u0026color=344CC11\u0026style=flat-square)](https://pypi.org/project/spotdl/)\n![Contributors](https://img.shields.io/github/contributors/spotDL/spotify-downloader?style=flat-square)\n[![Discord](https://img.shields.io/discord/771628785447337985?label=discord\u0026logo=discord\u0026style=flat-square)](https://discord.gg/xCa23pwJWY)\n\n\u003e spotDL: The fastest, easiest and most accurate command-line music downloader.\n\u003c/div\u003e\n\n______________________________________________________________________\n**[Read the documentation on ReadTheDocs!](https://spotdl.readthedocs.io)**\n______________________________________________________________________\n\n## Installation\n\nRefer to our [Installation Guide](docs/installation.md) for more details.\n\n### Python (Recommended Method)\n\n- _spotDL_ can be installed by running `pip install spotdl`.\n- To update spotDL run `pip install --upgrade spotdl`\n\n  \u003e On some systems you might have to change `pip` to `pip3`.\n\n\u003cdetails\u003e\n    \u003csummary style=\"font-size:1.25em\"\u003e\u003cstrong\u003eOther options\u003c/strong\u003e\u003c/summary\u003e\n\n- Prebuilt executable\n  - You can download the latest version from the\n    [Releases Tab](https://github.com/spotDL/spotify-downloader/releases)\n- On Termux\n  - `curl -L https://raw.githubusercontent.com/spotDL/spotify-downloader/master/scripts/termux.sh | sh`\n- Arch\n  - There is an [Arch User Repository (AUR) package](https://aur.archlinux.org/packages/spotdl/) for\n    spotDL.\n- Docker\n  - Build image:\n\n    ```bash\n    docker build -t spotdl .\n    ```\n\n  - Launch container with spotDL parameters (see section below). You need to create mapped\n    volume to access song files\n\n    ```bash\n    docker run --rm -v $(pwd):/music spotdl download [trackUrl]\n    ```\n\n  - Build from source\n\n    ```bash\n    git clone https://github.com/spotDL/spotify-downloader \u0026\u0026 cd spotify-downloader\n    pip install uv\n    uv sync\n    uv run scripts/build.py\n    ```\n\n    An executable is created in `spotify-downloader/dist/`.\n\n\u003c/details\u003e\n\n### Installing FFmpeg\n\nFFmpeg is required for spotDL. If using FFmpeg only for spotDL, you can simply install FFmpeg to your spotDL installation directory:\n`spotdl --download-ffmpeg`\n\nWe recommend the above option, but if you want to install FFmpeg system-wide,\nfollow these instructions\n\n- [Windows Tutorial](https://windowsloop.com/install-ffmpeg-windows-10/)\n- OSX - `brew install ffmpeg`\n- Linux - `sudo apt install ffmpeg` or use your distro's package manager\n\n## Usage\n\nUsing SpotDL without options:\n\n```sh\nspotdl [urls]\n```\n\nYou can run _spotDL_ as a package if running it as a script doesn't work:\n\n```sh\npython -m spotdl [urls]\n```\n\nGeneral usage:\n\n```sh\nspotdl [operation] [options] QUERY\n```\n\nThere are different **operations** spotDL can perform. The _default_ is `download`, which simply downloads the songs from YouTube and embeds metadata.\n\nThe **query** for spotDL is usually a list of Spotify URLs, but for some operations like **sync**, only a single link or file is required.\nFor a list of all **options** use ```spotdl -h```\n\n\u003cdetails\u003e\n\u003csummary style=\"font-size:1em\"\u003e\u003cstrong\u003eSupported operations\u003c/strong\u003e\u003c/summary\u003e\n\n- `save`: Saves only the metadata from Spotify without downloading anything.\n    - Usage:\n        `spotdl save [query] --save-file {filename}.spotdl`\n\n- `web`: Starts a web interface instead of using the command line. However, it has limited features and only supports downloading individual songs.\n\n- `url`: Get user-friendly URL for each song from the query.\n    - Usage:\n        `spotdl url [query]`\n\n- `sync`: Updates directories. Compares the directory with the current state of the playlist. Newly added songs will be downloaded and removed songs will be deleted. No other songs will be downloaded and no other files will be deleted.\n\n    - Usage:\n        `spotdl sync [query] --save-file {filename}.spotdl`\n\n        This creates a new **sync** file. To update the directory in the future, use:\n\n        `spotdl sync {filename}.spotdl`\n\n- `meta`: Updates metadata for the provided song files.\n\n\u003c/details\u003e\n\n## Music Sourcing and Audio Quality\n\nspotDL uses YouTube as a source for music downloads. This method is used to avoid any issues related to downloading music from Spotify.\n\n\u003e **Note**\n\u003e Users are responsible for their actions and potential legal consequences. We do not support unauthorized downloading of copyrighted material and take no responsibility for user actions.\n\n### Audio Quality\n\nspotDL downloads music from YouTube and is designed to always download the highest possible bitrate; which is 128 kbps for regular users and 256 kbps for YouTube Music premium users.\n\nCheck the [Audio Formats](docs/usage.md#audio-formats-and-quality) page for more info.\n\n## Contributing\n\nInterested in contributing? Check out our [CONTRIBUTING.md](docs/CONTRIBUTING.md) to find\nresources around contributing along with a guide on how to set up a development environment.\n\n### Join our amazing community as a code contributor\n\n\u003ca href=\"https://github.com/spotDL/spotify-downloader/graphs/contributors\"\u003e\n  \u003cimg class=\"dark-light\" src=\"https://contrib.rocks/image?repo=spotDL/spotify-downloader\u0026anon=0\u0026columns=25\u0026max=100\u0026r=true\" /\u003e\n\u003c/a\u003e\n\n## License\n\nThis project is Licensed under the [MIT](/LICENSE) License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspotdl%2Fspotify-downloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspotdl%2Fspotify-downloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspotdl%2Fspotify-downloader/lists"}