{"id":13433212,"url":"https://github.com/SwapnilSoni1999/spotify-dl","last_synced_at":"2025-03-17T10:33:37.429Z","repository":{"id":35012085,"uuid":"185091285","full_name":"SwapnilSoni1999/spotify-dl","owner":"SwapnilSoni1999","description":"Spotify Downloader and alternative of Spotdl(python) tool made in NodeJS based on youtube-dl ","archived":false,"fork":false,"pushed_at":"2025-03-08T18:31:12.000Z","size":26293,"stargazers_count":1409,"open_issues_count":8,"forks_count":152,"subscribers_count":28,"default_branch":"master","last_synced_at":"2025-03-13T07:18:29.354Z","etag":null,"topics":["downloader","hacktoberfest","nodejs-script","spotify","spotify-dl","spotify-downloader","youtube-dl"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/SwapnilSoni1999.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"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}},"created_at":"2019-05-05T22:53:06.000Z","updated_at":"2025-03-12T09:34:26.000Z","dependencies_parsed_at":"2024-10-14T08:42:22.873Z","dependency_job_id":"f35b1915-e80c-4851-bf5c-27c7b2c71ada","html_url":"https://github.com/SwapnilSoni1999/spotify-dl","commit_stats":{"total_commits":285,"total_committers":16,"mean_commits":17.8125,"dds":0.4982456140350877,"last_synced_commit":"ecdacd298290928db2a583282795db059549ce8d"},"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwapnilSoni1999%2Fspotify-dl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwapnilSoni1999%2Fspotify-dl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwapnilSoni1999%2Fspotify-dl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwapnilSoni1999%2Fspotify-dl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SwapnilSoni1999","download_url":"https://codeload.github.com/SwapnilSoni1999/spotify-dl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244017001,"owners_count":20384253,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["downloader","hacktoberfest","nodejs-script","spotify","spotify-dl","spotify-downloader","youtube-dl"],"created_at":"2024-07-31T02:01:22.543Z","updated_at":"2025-03-17T10:33:37.420Z","avatar_url":"https://github.com/SwapnilSoni1999.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# Spotify Downloader\r\n\r\n\u003cp align=\"center\"\u003e\r\n  \u003cimg src=\"./logo.png\" height=\"200px\"/\u003e\r\n  \u003cbr\u003e\u003cbr\u003e\r\n  \u003cb\u003eDownload audio files from spotify links(Based on: youtube-dl)\u003c/b\u003e\r\n  \u003cbr\u003e\r\n\u003c/p\u003e\r\n\r\n\u0026nbsp;\r\n\r\n#### Required\r\n\r\nGet [FFMPEG](https://ffmpeg.org/download.html)\r\n\r\n[Node.js 18](https://nodejs.org/en/download/package-manager/)\r\n\r\n[git not windows](https://formulae.brew.sh/formula/git)\r\nor\r\n[git for windows](https://git-scm.com/download/win)\r\n\r\nNote: if you run into issues related to puppeteer chromium download please try `PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true npm install -g https://github.com/swapnilsoni1999/spotify-dl`\r\n\r\n#### spotifydl\r\n\r\nA simple commandline utility that allows you to download Spotify Songs, Shows, Episodes, Playlists and Albums from Youtube.\r\n\r\nPLEASE NOTE:\r\n\r\n* The ability to find a video is dependent on the fact it is hosted on youtube, and even then there is a chance it is still incorrectly matched\r\n* Some items may only be available to spotify premium users, please be sure to provide a username and password when this is the case\r\n\r\n\u003chr\u003e\r\n\r\n# Installation\r\n\r\n#### NPM\r\n\r\n```sh\r\nnpm install -g https://github.com/swapnilsoni1999/spotify-dl\r\n```\r\n\r\nor You can do manually\r\n\r\n```sh\r\ngit clone https://github.com/SwapnilSoni1999/spotify-dl\r\ncd spotify-dl\r\nnpm install\r\nnpm link\r\n```\r\n\r\n#### Android (Termux)\r\n\r\nPS: You may need to type `termux-setup-storage` first and allow storage permission\r\n\r\n```sh\r\nsh -c \"$(curl -fsSL https://raw.githubusercontent.com/SwapnilSoni1999/spotify-dl/master/tools/termux.sh)\"\r\n```\r\n\r\n#### Docker\r\n\r\n```sh\r\ndocker run ghcr.io/swapnilsoni1999/spotify-dl\r\n```\r\n\r\nor Build docker image:\r\n\r\n```sh\r\ngit clone https://github.com/SwapnilSoni1999/spotify-dl\r\ncd spotify-dl\r\ndocker build -t spotify-dl .\r\n```\r\n\r\n\u003chr\u003e\r\n\r\n# Usage\r\n\r\nTo download highest quality audio file\r\n\r\n```sh\r\nspotifydl \u003cspotify track/album/playlist link\u003e ...\r\n```\r\n\r\n\u0026nbsp;\r\n\r\nExample\r\n\r\n```sh\r\nspotifydl https://open.spotify.com/track/xyz\r\n\r\n```\r\n\r\n#### Options\r\n\r\n| Flag  | Long Flag           | Usage                                                                                                   |\r\n| ----- | ------------------- | ------------------------------------------------------------------------------------------------------- |\r\n| --o   | --output            | takes valid output path argument                                                                        |\r\n| --es  | --extra-search      | takes extra search string/term to be used for youtube search                                            |\r\n| --oo  | --output-only       | enforces all downloaded songs in the output dir                                                         |\r\n| --sf  | --search-format     | provide template for youtube api, supports `albumName`, `artistName`,`itemName`                         |\r\n|       |                     | \"something {itemName} - {albumName} anyrandomextrastring\"                                               |\r\n| --of  | --output-format     | provide template for output of filenames, supports `albumName`, `artistName`,`itemName`                 |\r\n|       |                     | 3 x _  are used to signify directories                                                                  |\r\n|       |                     | \"something___{artistName}___{albumName}___{itemName}\"                                                   |\r\n| --ef  | --exclusion-filters | comma separated string of exclusion filters                                                             |\r\n|       |                     | each filter will be checked against the description and title if found the link will be ignored         |\r\n| --st  | --saved-tracks      | download spotify saved tracks                                                                           |\r\n| --ss  | --saved-songs       | download spotify saved shows                                                                            |\r\n| --sp  | --saved-playlists   | download spotify saved playlists                                                                        |\r\n| --sa  | --saved-albums      | download spotify saved albums                                                                           |\r\n| --l   | --login             | Requests a login in an external window (non tty should use --u and --p) (Docker without -it is non tty) |\r\n| --u   | --username          | spotify username for headless long (Note: you must use --login once to grant access)                    |\r\n| --p   | --password          | spotify password                                                                                        |\r\n| --cf  | --cache-file        | takes valid output file name path argument                                                              |\r\n| --dr  | --download-report   | output a download report of what files failed                                                           |\r\n| --cof | --cookie-file       | takes valid file name path argument to a txt file for youtube cookies                                   |\r\n| --v   | --version           | returns current version                                                                                 |\r\n| --h   | --help              | outputs help text                                                                                       |\r\n| --dl  | --download-lyrics   | enables downloading of lyrics                                                                           |\r\n| --oft | --output-file-type  | choose which type of file to be output as                                                               |\r\n\u003chr\u003e\r\n\r\n## Notes\r\n\r\nTo use --u and --p (headless login) you must do a --l once first to grant required permissions (playlists, saved songs ect.)\r\n\r\nif you receive 'Got a spotify api error WebapiRegularError: An error occurred while communicating with Spotify's Web API\r\nDetails: non existing id'  you may need to provide auth either use `--l` for manual login prompt or `--u username --p password` for headless login\r\n\r\nIf you receive a 429 error please provide a cookies file given the `--cof` flag, to generate a cookies file please refer to [Chrome](https://chrome.google.com/webstore/detail/njabckikapfpffapmjgojcnbfjonfjfg) or [Firefox](https://github.com/rotemdan/ExportCookies)\r\n\r\n## Docker\r\n\r\n```sh\r\ndocker run -it --user=$(id -u):$(id -g) -v $(pwd):/download --rm spotify-dl \u003coptions-to-spotify-dl defaults to --help\u003e\r\ndocker run -it --user=$(id -u):$(id -g) -v $(pwd):/download --rm spotify-dl \"https://open.spotify.com/....\"\r\n```\r\n\r\n#### Acknowledgements\r\n\r\nthanks to [icons8](https://icons8.com) for icons in hero image\r\nand all the contributors for PR, suggestions and testing :love:\r\n\r\n\u0026nbsp;\r\n\r\n#### License\r\n\r\nMIT © [Swapnil Soni](https://github.com/SwapnilSoni1999)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSwapnilSoni1999%2Fspotify-dl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSwapnilSoni1999%2Fspotify-dl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSwapnilSoni1999%2Fspotify-dl/lists"}