recommend_from_playlist_for_mood
Find new songs from one playlist based on a listener's mood. It reads every track, scores mood fit, and seeds only genuine matches for recommendations.
Instructions
Recommend new songs from ONE playlist, shaped by how the listener feels.
For "I feel like this -- look at this playlist and find me songs". Use this over recommend_from_playlist whenever a mood is part of the ask, and over recommend_for_mood whenever a specific playlist is.
Unlike recommend_from_playlist, which samples a few tracks at random and ignores mood entirely: EVERY track in the playlist is read and scored for mood fit, and only genuine matches -- tracks whose own mood resolves and actually fits the target -- are used as seeds. An off-mood playlist therefore yields few seeds or none, which is reported rather than papered over by seeding from tracks that don't fit.
Seeding costs ~4 API calls per seed, so the best-fitting seeds are capped
(default 20, override with seed_cap). seed_report in the result says how
many tracks were considered, how many were genuine, and how many were
capped away.
Mood arguments behave exactly as in recommend_for_mood (vector preferred,
then feeling, then context; falls back to inferred mood). arc shapes
the sequence the same way. Results are guaranteed absent from Liked Music,
from this playlist, and from every other playlist -- and limit is a
ceiling, not a guarantee: filler is capped at 25% of it, same as
recommend_for_mood.
This is READ-ONLY -- it never creates a playlist or adds anything anywhere. To turn the result into a real playlist, pass the returned videoIds to a playlist-management tool, then call refresh_library() so the new tracks are excluded from later recommendations.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| arc | No | mirror | |
| bpm | No | ||
| limit | No | ||
| vector | No | ||
| bpm_max | No | ||
| bpm_min | No | ||
| context | No | ||
| feeling | No | ||
| language | No | ||
| seed_cap | No | ||
| playlist_id | Yes | ||
| exclude_languages | No | ||
| allow_unlabelled_language | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||