- 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_uri
property in favor ofSpotify.auth_uri
method. -
Spotify.play()
now accepts,track_ids
,artist_ids
etc. instead ofresource_ids
+resource_names
-
Oauth2 state handling:
-
Removed deprecated
enforce_state_check
functionality -
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 @ [email protected]
Bitcoin: 3NmywNKr1Lzo8gyNXFUnzvboziACpEa31z
Ethereum: 0x1E1400C31Cd813685FE0f6D29E0F91c1Da4675aE
Bitcoin Cash: qqzn7rsav6hr3zqcp4829s48hvsvjat4zq7j42wkxd
Litecoin: MB5M3cE3jE4E8NwGCWoFjLvGqjDqPyyEJp
Paypal: https://paypal.me/omarryhan