Sync/Async API wrapper for Spotify's web API
Project description
Web API Wrapper for Spotify in Python
Features
- 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
Quick Start
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)
Documentation 📑
Readthedocs: (https://pyfy.readthedocs.io/en/latest)
Setup ⚙️
$ pip install pyfy
Backward Incompatibility Notices
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
-
Contributors
Big thank you to our amazing contributors:
Contact 📧
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
Buy me a coffee ☕
Bitcoin: 3NmywNKr1Lzo8gyNXFUnzvboziACpEa31z
Ethereum: 0x1E1400C31Cd813685FE0f6D29E0F91c1Da4675aE
Bitcoin Cash: qqzn7rsav6hr3zqcp4829s48hvsvjat4zq7j42wkxd
Litecoin: MB5M3cE3jE4E8NwGCWoFjLvGqjDqPyyEJp
Paypal: https://paypal.me/omarryhan
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pyfy-2.0.7.tar.gz
.
File metadata
- Download URL: pyfy-2.0.7.tar.gz
- Upload date:
- Size: 40.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d96d456e9d79c70b85e703ebbc75d917658b4aee9c277fe1783711c8a549f94 |
|
MD5 | d37a9a043501f084ec81117045983f94 |
|
BLAKE2b-256 | 374d46b20bb1a03c5cc933e66d35a074ef1cc942d8662fbf927515a0224a09fb |