Repository navigation
Conversation
The web UI's tonie card builds the track download from the tag's audioUrl (/content/download/<ruid>), but only /content/<path> handled tracks=, so the whole TAF was served as Ogg instead of a zip. Resolve the tag's source (e.g. lib://) and use the same track export as /content/. Refs toniebox-reverse-engineering/teddycloud_web#350 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The web UI downloads selected tracks from a Tonie card via the tag's
audioUrl:/content/download/<ruid>?overlay=…&skip_header=true&ogg=true&tracks=10,11. Only/content/<path>handledtracks=./content/download/ignored it and streamed the whole TAF as Ogg (application/octet-stream), which the client then saved under a.zipname.Change
handleApiContentDownloadnow evaluatestracks=. It resolves the tag's source (e.g.lib://…) and callshandleApiContentTrackExport, the same export as/content/.Tests
tests/py/test_track_export.pycreates a TAF with 3 tracks in the library and a tag withsource: lib://…. It checks both routes, for multiple tracks (zip) and one track (Ogg).application/octet-streaminstead ofapplication/zip. This reproduces the report exactly.Also verified manually in the web UI (teddycloud_web PR #348): a tag pointing at a 4-track library TAF, tracks 2 and 3 selected, returns a zip with exactly those two tracks via the tag's own
audioUrl.Not included
zip, UTF-8 filenames, see Track split ZIP corrupts filenames containing special characters #552) will follow in a separate PR.Refs toniebox-reverse-engineering/teddycloud_web#350
🤖 Generated with Claude Code