Skip to content

fix(embed): honor is_streamable so inactive artists' tracks don't render - #14571

Merged
dylanjeffers merged 1 commit into
mainfrom
fix/embed-honor-is-streamable
Aug 20, 2026
Merged

fix(embed): honor is_streamable so inactive artists' tracks don't render#14571
dylanjeffers merged 1 commit into
mainfrom
fix/embed-honor-is-streamable

Conversation

@dylanjeffers

Copy link
Copy Markdown
Contributor

Follow-up to #14570, which gated the web and mobile track pages on is_streamable. The embed player is its own app and was missed — it still rendered the full card (title, artist, artwork, play button) for a track whose owner deactivated their own account or was delisted by the trusted notifier.

AudiusProject/api#1023 already made /v1/tracks/{id}/stream 404, so the player couldn't actually play these. It just showed the metadata and then failed silently on press.

Change

Route non-streamable tracks into the existing not-available treatment (the same path a 404 takes), with its own copy rather than reusing the deleted-by-creator string — the same flag covers a self deactivation and a delisted account, and we shouldn't tell listeners the creator removed a track when moderation suppressed it. Wording matches the web tombstone from #14570.

The check is an explicit === false, matching isTrackUnavailable in common: an absent field must not read as unavailable. (The embed depends on @audius/sdk rather than @audius/common, so the helper isn't importable here.)

Verification

Ran against prod data using audius.co/rehoxx/just-for-tonight-wmellark-hoonds (ENxw4), the track from the original report:

card "This track can no longer be streamed on Audius."
compact same
tiny "Track Unavailable"

Both routes covered — hash id (getTrack) and permalink (getBulkTracks). A streamable trending track still renders normally with artwork and play button. vite build, eslint, and jest all pass.

Note

The remaining gap is server-side: /v1/tracks/{id} still returns a signed content-node URL for these tracks, which AudiusProject/api#1024 fixes.

🤖 Generated with Claude Code

apps#14570 gated the web and mobile track pages on `is_streamable`, but the
embed player is its own app and was left rendering the full card - title,
artist, artwork, play button - for a track whose owner deactivated their own
account or was delisted by the trusted notifier. api#1023 made the stream
endpoint 404, so the player was already unable to play these; it just showed
the metadata and then failed silently on press.

Route non-streamable tracks into the existing not-available treatment. The copy
is its own message rather than reusing the deleted-by-creator string: the same
flag covers a self deactivation and a delisted account, and we shouldn't tell
listeners the creator removed a track when moderation suppressed it. Wording
matches the web tombstone from #14570.

The check is an explicit `=== false` because an absent field must not read as
unavailable.

Verified against audius.co/rehoxx/just-for-tonight-wmellark-hoonds in all three
flavors (card, compact, tiny) and both routes (hash id and permalink), with a
streamable track confirmed unaffected.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Aug 20, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 04609d5

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@dylanjeffers
dylanjeffers merged commit fbe39da into main Aug 20, 2026
3 checks passed
@dylanjeffers
dylanjeffers deleted the fix/embed-honor-is-streamable branch August 20, 2026 19:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant