Automattic / Automattic/pocket-casts-android
Option to re-compress downloads to mp3/opus/aac
- Dominant language
- Kotlin
- Stars
- 2.8k
- Forks
- 308
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 187
Description
### What problem does this address?
Running out of space for downloads on mobile
### What is your proposed solution?
Add option to selectively re-compress each download, or based on filter i.e. compressing lengthy podcasts that encode at high bitrates like 320kbps.
For example, encoding a 1 hour podcast using the voip preset of opus at 32kbps can consume about 10Mib and is perfectly listenable over bluetooth earbuds/phone speaker.
I think this is probably an unrealistic and weighty thing to add to the app (unless android has builtin encoders?), an alternative may be to support sharing an episode to the ffmpeg app and config it to overwrite the original pocketcasts UUID-named mp3 so the database is none-the-wiser and just plays the re-compressed mp3/aac/opus ignoring the fact that the filename is still abcdef1233.mp3?
**EDIT** I tested reencoding a 3hr uuid.mp3 file in place when plugged into PC and it did work as expected, it even maintained the playback position. The reported file size did not change in the app, it remained as ~250MB even though it existed as an opus encoded file with mp3 filename extension and size ~40MB
### Did you search for existing feature suggestions?
- [X] I have searched for existing feature suggestions.
Contributor guide
Research direction
The issue names no files, tests, or entry points. Start by reviewing how Android stores downloaded episodes and whether the app has an encoding path or integration with ffmpeg. Done means offering the requested selective or filter-based recompression while preserving playback and accurately reporting the resulting file size.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100