Example: build a read-only live lyrics companion
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 42/100
Piste de recherche
Create the new script at examples/live_lyrics.py, using examples/player.py and examples/lyrics.py as the reference for resource ownership and cancellation. Read how PlaybackState.position_ms and Lyrics.at() are exposed in the typed player and lyrics APIs before selecting the active line. Done means the script runs offline checks, handles missing or unsynchronized lyrics, discards stale lyric fetches on track change, exits cleanly on Ctrl+C, and is linked from the player docs.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Goal
Add one polished example that combines SpotAPI's existing typed player and lyrics APIs into a live, synchronized terminal companion. This demonstrates a complete workflow without expanding the core library.
Expected workflow
The example should:
- connect using the user's
SPOTIFY_COOKIE; - observe an existing Spotify player without starting playback;
- fetch lyrics when the current track changes;
- select active lines using
PlaybackState.position_msandLyrics.at(); - print track information, the current lyric, and the supplied artwork URL when available.
Acceptance criteria
- Add a focused
examples/live_lyrics.pyscript with no new runtime dependency. - Do not send playback commands, download audio, or write account data.
- Handle tracks without lyrics and unsynchronized lyrics clearly.
- Cancel or discard stale lyric work when the track changes.
- Exit cleanly on Ctrl+C and close owned resources.
- Link the example from the player documentation.
- Keep credentials out of output and error messages.
- Run the existing offline quality checks; a maintainer will perform final live verification.
Notes
This uses authenticated, entitlement-dependent Spotify behavior and therefore requires more care than the two beginner CLI issues. Preserve the ownership and cancellation patterns used in examples/player.py and examples/lyrics.py.
Comment before starting so duplicate work can be avoided.
- Langage dominant
- Python
- Étoiles
- 493
- Forks
- 40
- Merge moyen
- 5 min
- PR mergées (30 j)
- 1
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de Aran404/SpotAPI
-
CLI: expose public search language with --languagePeut-être pris @semajzandrews l’a pris aujourd’hui. Ouverteenhancement good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
-
CLI: reject invalid player seek and volume values before connectingPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouvertebug good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Toutes les issues de Aran404/SpotAPI
Issues similaires
-
generate_observation_scenario_from_cpgs exposure time conversion when auto-gain set to 'yes'Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
roman-corgi/corgisim#327 ·
Les mainteneurs répondent en général sous 2 jours
-
[Bug]: opencode_go chat route drops reasoning_effort (even 'none'), while the same endpoint honors it via custom_llm_provider=openaiPeut-être pris @arvindkumar-ship-it l’a pris aujourd’hui. Ouvertellm translation
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
BerriAI/litellm#51871 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
PolicyEngine backdates South Carolina’s EITC into 2015–2017Peut-être pris @MaxGhenis l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
PolicyEngine/policyengine-us#10944 ·
Les mainteneurs répondent en général sous 2 jours
-
fix(frontend): resolve SSE parser crash on unhandled Ref methods and undefined actions identifierOuvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
kodokbakar/MiroFish-Local#94 ·
Les mainteneurs répondent en général sous 1 jour