JSON-LD could set track_name but return empty byArtist, making the OG block (guarded by `if not track_name`) never run — leaving artist blank. Now OG runs whenever either name or artist is missing, and only fills fields that are still empty so JSON-LD name isn't overwritten. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>