{"id":28223,"library":"spotifyscraper","title":"SpotifyScraper","description":"A Python library for extracting playlist and track metadata from Spotify without requiring authentication. Version 2.1.5 uses the library's own internal parser and requests. Rapid release cadence with frequent breaking API changes.","status":"active","version":"2.1.5","language":"python","source_language":"en","source_url":"https://github.com/AliAkhtari78/SpotifyScraper","tags":["spotify","scraper","web-scraping","music"],"install":[{"cmd":"pip install spotifyscraper","lang":"bash","label":"Install via pip"}],"dependencies":[{"reason":"HTTP requests to Spotify endpoints (not from official API)","package":"requests","optional":false}],"imports":[{"wrong":"from spotifyscraper import Spotify","symbol":"Spotify","correct":"from spotify_scraper import Spotify"}],"quickstart":{"code":"from spotifyscraper import Spotify\n\nsp = Spotify()\nplaylist = sp.get_playlist('37i9dQZF1DXcBWIGoYBM5C')\nprint(playlist['name'])\nfor track in playlist['tracks'][:3]:\n    print(track['name'], '-', track['artists'])","lang":"python","description":"Fetch a Spotify playlist by its ID (found in URL) and print the first three tracks."},"warnings":[{"fix":"Use the Spotify class and its methods (get_playlist, get_track, etc.).","message":"In v2.0.0, the entire API changed from function-based to class-based. Old code like 'import spotifyscraper; spotifyscraper.get_track(...)' will fail.","severity":"breaking","affected_versions":"<2.0.0"},{"fix":"Access data via dictionary keys: 'playlist['name']' instead of 'playlist.name'.","message":"Return types changed in v2.1.0: 'get_playlist' now returns a dict instead of a custom Playlist object. Code relying on attribute access (e.g., 'playlist.name') will break.","severity":"breaking","affected_versions":"<2.1.0"},{"fix":"Use the official Spotify API (spotipy) if you need reliability and structured data.","message":"This library does NOT use the official Spotify Web API. It scrapes public-facing data from Spotify's web pages. Data may be incomplete or break without notice.","severity":"gotcha","affected_versions":"all"},{"fix":"Remove calls to 'get_track_lyrics' or catch exceptions gracefully.","message":"The 'get_track_lyrics' method is no longer functional since Spotify removed lyrics from public web endpoints in late 2024.","severity":"deprecated","affected_versions":">=2.0.0"}],"env_vars":null,"search_vec":"'2.1.5':17 'api':33 'authent':15 'break':32 'cadenc':29 'chang':34 'extract':6 'frequent':31 'intern':23 'librari':4,20 'metadata':10 'music':40 'parser':24 'playlist':7 'python':3 'rapid':27 'releas':28 'request':26 'requir':14 'scrape':39 'scraper':36 'spotifi':12,35 'spotifyscrap':1 'track':9 'use':18 'version':16 'web':38 'web-scrap':37 'without':13","created_at":"2026-05-09T05:54:23.025259+00:00","updated_at":"2026-05-09T05:54:23.025259+00:00","problems":{"verify_error":"Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\nImportError: cannot import name 'Spotify' from 'spotify_scraper' (/tmp/tmppr77cepi/venv/lib/python3.12/site-packages/spotify_scraper/__init__.py)"},"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/AliAkhtari78/SpotifyScraper","docs":"https://spotifyscraper.readthedocs.io/","changelog":"https://github.com/AliAkhtari78/SpotifyScraper/blob/master/CHANGELOG.md","pypi":"https://pypi.org/project/spotifyscraper/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["http-networking","data"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"import_fail","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-07-10","install_tag":null}}