- Async and Sync clients
- Authenticate using:
- OAuth2 client credentials flow
- OAuth2 authroization code flow
- Access token only authorization
- Covers every parameter for every endpoint in Spotify's Web API
- Automatically refreshes tokens for clients and users
- Descriptive errors
- Able to automatically default to user's locales
- Rate limiting
- HTTP and SOCKS proxies
- HTTP caching (Sync only)
- Unit and integration tested
- Fit for both production and experimental/personal environments
- Begginner friendly interface
- Almost identical Async and Sync Interfaces
Sync:
from pyfy import Spotify
spt = Spotify('your_access_token')
spt.user_playlists()
spt.play()
spt.volume(85)
spt.next()
spt.pause()
results = spt.search(q='alice in chains them bones')
print(results)Async:
import asyncio
from pyfy import AsyncSpotify
spt = AsyncSpotify('your_access_token')
async def query():
return await spt.search('Like a motherless child')
res = asyncio.run(query())
print(res)Readthedocs: (https://pyfy.readthedocs.io/en/latest)
$ pip install pyfy
V2:
-
Removed
Spotify.oauth_uriproperty in favor ofSpotify.auth_urimethod. -
Spotify.play()now accepts,track_ids,artist_idsetc. instead ofresource_ids+resource_names -
Oauth2 state handling:
-
Removed deprecated
enforce_state_checkfunctionality -
Removed state attribute from
user_creds -
Oauth2 state checking is no longer done by Pyfy's client and should be handled manually
-
Big thank you to our amazing contributors:
I currently work as a freelance software devloper. Like my work and got a gig for me?
Want to hire me fulltime? Send me an email @ omarryhan@gmail.com
Bitcoin: 3NmywNKr1Lzo8gyNXFUnzvboziACpEa31z
Ethereum: 0x1E1400C31Cd813685FE0f6D29E0F91c1Da4675aE
Bitcoin Cash: qqzn7rsav6hr3zqcp4829s48hvsvjat4zq7j42wkxd
Litecoin: MB5M3cE3jE4E8NwGCWoFjLvGqjDqPyyEJp
Paypal: https://paypal.me/omarryhan