Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

iOS: a no-length transcode that drops mid-song ends the song early

Open
#970 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
ios, swift
Domain
mobile

Research direction

Start in the shuttle-playback growing-file source, where a chunked or close-delimited body is treated as complete when the connection drops. Check how the S2 engine handles the #950 part 2 restart path, which only covers restarts from byte 0, and find where a StartTimeTicks re-open could be triggered. Done means a dropped no-Content-Length transcode re-opens at the playback position instead of ending the song, verified on an iOS device or simulator. Ask in the issue thread before choosing between a byte-count check and surfacing the URLSession error.

Written by the indexing model from the issue text.

Description

impact:U2 P3 reach:R2 size:M

On iOS, a server transcode sent without a Content-Length (chunked or close-delimited) that drops mid-song looks like a complete body to shuttle-playback's growing-file source. The song then ends early instead of re-opening at the position.

The #950 part 2 drop recovery only catches restarts from byte 0. It needs shuttle-playback to tell a dropped connection apart from a real end of body (for example, compare the bytes received against the expected duration or bitrate, or surface the URLSession error), so the S2 engine can re-open via StartTimeTicks.

Likely hit with Emby or Jellyfin FLAC under the metered 320 kbps cap, which produces a progressive MP3 transcode.

Dominant language
Kotlin
Stars
229
Forks
28
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from timusus/Shuttle2

All issues in timusus/Shuttle2

Similar issues

More Kotlin issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.