← Back to EQfluency Beta
YouTube Music testers
Discovery + video playback
YouTube Music is the discovery-and-videos service for EQfluency. Playback happens through the YouTube IFrame player (not the YouTube app), so tracks render as full videos with thumbnails. YouTube's API doesn't expose everything Apple Music or Spotify do, so a few features intentionally hide — flag anything that hangs or fails silently instead.
Join the TestFlight →
Verify build 246 (paywall cleanup + redeem-code button)
Cross-service change — paywall lives in Settings regardless of music service.
- Settings → Premium → Pro pill. Pro benefits list now shows only "Remote Multiplayer" as the Plus-additive perk (the previous "Custom Themes" row was removed).
- New "Have a code? Redeem it here." button on the same paywall — Apple offer-code redemption sheet.
Verify build 244 (Musical Hangman registers in Play Stats + concert push cooldown)
Cross-service fixes — both work regardless of which music service you have connected.
- Play → Games → Musical Hangman → finish a round → Play → Profile shows Musical Hangman card with 1W or 1L. Overall + Solo rails update to match.
- Concert push cooldown (7d per artist) — applied server-side, no app change required.
Verify build 243 (Play Stats split by Solo / Multiplayer with W/L/Win%)
Cross-service feature — the Play stats surface is the same regardless of which music service you have connected.
- Storage was wiped: the aggregate Leaderboard reads "No wins yet" on first launch of 243. Profile stats card reads "No sessions yet" until you finish a game.
- Finish a solo round (any game) → Profile stats card shows Overall + Solo rails with matching W/L/% and a per-game card under "By Game" with no sub-rows.
- Pair another device and run a multi session → Profile gains a Multiplayer rail; the per-game card for that game expands with Solo + Multi sub-rows.
- Reset leaderboard → Profile stats drops back to "No sessions yet".
Verify build 242 (Share text auto-appends #ArtistName #EQfluency)
Every share path now appends an artist hashtag + app hashtag tail. Cross-service feature — works the same regardless of which music service you have connected.
- Pulse → Feed → share an article via any social row chip. The body should end with a blank line, then
#ArtistName #EQfluency. Capitalization preserved (Taylor Swift → #TaylorSwift).
- SMS / email / Copy paths from the same share sheet should carry the same hashtag tail.
- Share a YouTube Music-resolved song or album from Now Playing → tail reads
#ArtistName #EQfluency.
- Concert share, playlist share, game-result share: all carry at least
#EQfluency; artist-aware ones also include #Artist.
Verify build 241 (Official artist accounts on Artist Detail)
Drill into any well-known artist.
- New "Official accounts" section above hashtag rows with direct links to artist's verified Twitter, Instagram, YouTube, Threads, Vimeo, TikTok.
- Cross-service: works regardless of which music service you have connected — Wikidata sourcing is independent.
- Obscure artist (no Wikidata page) → only hashtag rows appear, header reads "Social".
Verify build 240 (Hangman hint reliability + 15s sample cap)
Direct relevance for YT-Music-only testers — 239 likely showed both bugs.
- Get a Hint now shows "Looking up hint…" briefly while iTunes resolves the song/album title instead of going blank.
- Hear Sample no longer gets stuck on "Loading…" — 8-second iTunes timeout means the button always lands on a defined state (Playing or No Sample Found).
- Sample now plays exactly 15s (was previously the full ~30s).
Verify build 239 (Hangman hints work without Apple Music)
Direct relevance for YT-Music-only testers.
- "Hear Sample" hint previously always ended at "No Sample Found" because the MusicKit fetch needed Apple Music auth. Switched to the public iTunes Search API — should play a real 30s preview regardless of your service.
- "Get a Hint" text fallback uses the same iTunes source for song/album titles.
- Genre hint still comes first when artist metadata is available locally.
Verify build 238 (Hangman hint: real titles, not letter counts)
Play → Games → Musical Hangman.
- Hint button (after 3 wrong) surfaces one of the artist's top song or album titles instead of the old letter/word count fallback.
- Genre still comes first when available; song → album → "(no hint)" is the new chain.
- Hangman uses Apple Music catalog search regardless of your service for in-app data — no YT Music dependency here.
Verify build 237 (gray out notification toggles when iOS push is off)
Flip iOS Settings → Notifications → EQfluency between OFF and ON.
- OFF: per-artist Shows / Releases / Alerts icons gray out + refuse taps on the Artists list and Artist Detail. News stays interactive.
- Artist Detail footer changes to an explainer with an "Open iOS Settings" button.
- ON: no regression.
- Toggling iOS Settings without relaunch should update the gray-out on next foreground.
Verify build 236 (Hangman: empty-state fix + opt-in hints)
Three Musical Hangman changes.
- Bug fix: with no Apple Music library, Musical Hangman used to drop into a broken game with empty word. Now you get a "No artists to guess" empty state. YT-Music-only testers: this is the path that affected you.
- Get a Hint after 3 wrong (was 2). Genre/letter-count revealed.
- Hear Sample after 4 wrong. 10-second clip of one of the artist's top songs via Apple Music preview.
Verify build 235 (paywall tier toggle)
Settings → Premium — paywall now leads with a tier picker.
- Top: Plus / Pro pill toggle. Plus shows 4 benefits + 2 plan cards ($2.99/mo, $19.99/yr). Pro shows "Everything in Plus +" with Remote Multiplayer + Custom Themes, plus 2 plan cards ($5.99/mo, $44.99/yr).
- Annual card has a SAVE X% badge computed live from price values (~44% Plus / ~37% Pro).
- Subscribe button reads "Subscribe — $X.YY" with a gradient matching the selected tier. Free-trial copy is explicit on each card.
- Don't actually buy — sandbox/USA-only records.
Verify build 234 (Premium plans load)
Settings → Premium (paywall sheet).
- All 4 plans resolve with prices: Plus $2.99/mo · $19.99/yr · Pro $5.99/mo · $44.99/yr, each with a 1-week free trial.
- Before 234 the paywall would show empty because Swift was asking for stale product IDs.
- Don't actually complete a purchase — these are sandbox/USA-only test records.
Verify build 233 (Anonymous Analytics sheet readable)
Settings → Pulse → Data & Privacy → tap "Anonymous Analytics".
- The opt-in sheet should render on a deep purple-tinted dark background with readable white text. Before 233 it was white-on-white in light mode (issue #56).
- Easiest way to confirm: set your iPhone to LIGHT MODE before opening the sheet.
Verify build 232 (return to last tab on relaunch)
Pulse and Play now remember the last tab you were on across app launches.
- Open the app, switch to Pulse → Artists, force-quit (swipe up from app switcher), relaunch. Should land on Pulse → Artists.
- Same on Play: switch to Play → Mixtape, force-quit, relaunch. Should land on Play → Mixtape.
- Cross-side: while on Play → Leaderboard, force-quit + relaunch. Should land on Play side AND Leaderboard.
- Not yet persisted: nav-stack depth (drilling into Artist Detail → Setlists → setlist returns to Artists tab's root after quit).
Verify build 231 (eager bottom-bar collapse)
On Pulse, scroll the Feed (or any tab with a list).
- The 6-item bottom bar should collapse to the small leading pill + now-playing + side-switch layout on the very first scroll movement — not after 8pt of scroll like before.
- On a light Feed day, this lets you reach the "Show older articles" button at the bottom of the list; before, it was trapped under the expanded bar.
- Scroll back to the top and the full 6-item bar should re-expand. Tiny rubber-band wobble at the top should NOT spuriously re-expand.
Verify build 230 (Tracked section wired up)
Open More → My Stuff. The "Tracked" section had an empty hint promising tap-to-track from Feed / Releases / Mixtape — but no tap actually wired into it before 230.
- Feed: tap an artist badge on any article card. The artist should appear in My Stuff → Tracked.
- Releases: tap a track inside an inline release track list. The album (not the song) gets tracked.
- Mixtape: tap the play (preview) button on any song. The song gets tracked.
- Re-tapping the same item should NOT double-track.
- The × on each Tracked row still untracks.
Verify build 229 (non-disruptive launch + album track long-press)
Two small but visible behavior changes.
- Launching does NOT stop other music: start YouTube Music in the YT Music app, lock the phone, launch EQfluency. YT Music should keep playing. Browse Pulse / Play / Settings without ever playing in-app — YT Music should never be interrupted.
- First in-app play: after the previous test, tap any Top Songs row. First-play should work; may have a ~100–500ms initial buffer (one-shot per session).
- Album track long-press: Play → Games → Queue Music → Albums (Apple Music library only — YT Music testers without Apple Music will see this tab empty, expected). If you have any Apple Music library content, long-pressing a track in an album shows an Add to Queue / Play Next / Play Now context menu — no confirmation dialog needed.
Verify build 228 (Queue Music — Albums tab)
Play → Games → pick any game → Queue Music → tap the new Albums tab.
- Browse your Apple Music library albums in a 2-column grid — this tab reads from MusicKit, not YouTube Music. If you don't have Apple Music, the grid is empty (expected).
- Tap an album to see its full track list. Tap a track for Play Now / Play Next / Add to Queue. Album header has Play Album / Add Album shortcuts.
- If you're paired to an Apple TV, tracks route to the TV.
Verify build 224 (new setlist actions)
Open any artist → Setlists → expand a setlist.
- Three YouTube Music action buttons appear per setlist: Play Now, Queue, Playlist.
- Play Now → resolves matched tracks to YouTube videos and starts playing via the in-app IFrame player.
- Queue → matched videos append to your queue.
- Playlist → creates a real playlist on your YouTube account (capped at 25 tracks per setlist — see the API quota note below). Success modal also offers Play Now + Add to Queue for the fresh list.
Verify build 223 (tab bar redesign)
Scroll Feed, Artists, Releases, Shows, or any artist drill-down.
- Scroll-top: full 6-item menu, with the full Now Playing pill above it when a YouTube Music video is playing.
- Scroll down → menu collapses to two pills; mini player slides inline between them.
- Scroll back to top → menu + full Now Playing pill return.
- Long-press the player → "Clear Queue" appears. Tap → player disappears, queue empties.
Connect YouTube Music
- Pulse → More → Settings → Music Services → Connect YouTube Music. Google OAuth opens; sign in and grant the requested scopes.
- If you've connected before but it forces re-auth, that's the scope version bump (we add new permissions as features ship — read the consent screen).
- The picker opens immediately while your Liked Music loads.
Playback flows to verify
- Tap any artist → Top Videos (the YouTube Music equivalent of Top Songs) → tap one → opens the in-app video player.
- Use the on-screen video controls + the EQfluency mini player both — they should stay in sync.
- Skip-forward in the mini player advances to the next queued video.
- Now Playing sheet: title + thumbnail update; lyrics work (LRCLIB pulls by title + artist, service-agnostic).
Per-artist drill-down
- Top Videos (YouTube Music–specific) — playable.
- Releases / Shows / Setlists / News — service-agnostic, work like the other services.
- Setlists — each expanded setlist now offers three YouTube Music actions: Play Now (resolves matched tracks to YouTube videos and plays them via the in-app IFrame player), Queue (appends matched videos to your queue), and Playlist (creates a real playlist on your YouTube account; tap "Open in YouTube" to verify — capped at 25 tracks per setlist due to the API quota described below). After Playlist runs, the success modal also offers Play Now / Add to Queue for the fresh list.
- Playlist Generator — seeded from your Liked Music (YouTube doesn't expose "recently played", so this is a curation snapshot, not a "lately" mix).
Service-agnostic flows
- Feed: artist news, no YouTube dependency.
- Shows tab: location-aware concert search.
- Cross-service share: tap "Share" on any song → cross-platform links resolve.
What's limited on YouTube Music (by YouTube's API)
No album browsing per artist. The YouTube Data API doesn't have an album endpoint — so the artist Albums page is empty if YouTube Music is your only connected service. (If you also have Apple Music or Spotify, those albums show.)
No "save / like" within EQfluency. YouTube Data API has no library-write endpoint for individual tracks. You can like via the YouTube app; EQfluency can read Likes (used as the Playlist Generator seed) but can't write them.
No recently-played, no top-artist stats. Those endpoints don't exist in the public API.
API quota: YouTube gives us 10,000 units / day across all users. Heavy operations (setlist-to-playlist generation = ~3,800 units per 25-track setlist) eat that budget fast — we cap them, but if you see a "YouTube Music quota exceeded" message, that's not a bug.
Send feedback
- TestFlight → screenshot → "Send Beta Feedback" — easiest.
- Or email support@impostorsoftware.com.
- Especially helpful: if a button shows but does nothing on YouTube Music (instead of either working OR explaining why it's hidden), tell us where. Those are the gaps we most want to close before App Store submission.