Repository navigation
Releases: itolkien/universal-captions
Release list
Universal Captions 3.0.1
Universal Captions 3.0.1 is a maintenance update to 3.0.0. The translation menu and source-selection behavior remain unchanged.
What's Changed
- Safer caption parser cleanup: Cleanup is now request-specific. Native exception handlers can no longer close another decoder's styling scope.
- Code cleanup: Removed two test-only
augment()overloads from the Android extension. - Improved test coverage: Added regression tests for nested exception cleanup and the recorded 156-language fallback catalog.
- Release workflow fixes: Corrected the Morphe Manager bundle URL. The workflow now reads the version directly from
patches-list.jsonand skips versions that have already been published. - Documentation: Updated the architecture and compatibility documentation.
Installation
Download universal-captions-3.0.1.mpp or refresh the custom source in Morphe Manager.
Patch a clean YouTube APK using one of the supported versions: 21.20.405 or 21.41.525.
Testing & Compatibility
- Universal Captions 3.0 development builds were manually tested on both supported YouTube versions.
- Version 3.0.1 includes automated regression coverage. The updated parser cleanup has not been separately documented in an on-device test.
- YouTube may still withhold translations for certain tracks or languages.
Release Files
This release includes the MPP patch bundle, patch metadata, and a SHA-256 checksum for verification. It does not distribute a modified YouTube APK.
Universal Captions 3.0.0
This is the rewrite I've been working toward. The old patch could restore Auto-translate and offer extra languages on many videos, but some still showed just 16–18 choices. Those videos often had several original caption tracks, and copying a translation from the wrong one wasn't a safe fix.
I reverse-engineered the original YouTube caption manager and followed how its metadata connects caption sources to the active audio track. In 3.0 the patch uses that native source-index routing, keeps YouTube's original translated tracks, and adds missing language choices from the correct source. It no longer depends on guessing which caption happens to be the default.
The translated subtitle styling fix has also been rewritten. Instead of using a global flag for the last network request, it identifies the caption during parsing, including cached captions. Original creator styling stays on original subtitles, while affected translations use visible default text styles.
What's included
- A wider Auto-translate menu, typically around 155–156 languages when an eligible source exists.
- Restored Auto-translate menus for videos with original captions but no translated choices.
- Support for auto-generated, uploaded and named captions, including videos with multiple audio/caption sources.
- Native signed caption URLs and existing per-language selections preserved.
- Caption styling handling scoped to the actual XML parser rather than a process-wide request flag.
- More tests for source identity, signed URLs, multi-audio routing, regional language aliases, cache parsing and concurrent requests.
Install or update
Download universal-captions-3.0.0.mpp or refresh this repository in Morphe Manager. Patch a clean YouTube 21.20.405 or 21.41.525 APK and select Universal Captions - additional translation languages.
Important for 2.1.0 users: 3.0 has its own translated-caption pen and Auto-translate hooks. Do not apply it alongside an older Morphe Captions patch that already supplies those same hooks. Use the standalone Universal Captions patch until the old Morphe implementation is replaced. Repatch YouTube after updating; updating a patch source alone doesn't update an installed APK.
Testing and limits
Both listed YouTube versions were patched and tested manually during development. The previously limited menu on YouTube 21.20.405 expanded from 17 to 156 choices, and the user confirmed that selecting Turkish showed actual translated captions. The later dev builds, including the parser-scoped styling refactor, were tested without reported problems. Automated regression tests and Android bundle checks passed.
A visible language choice is not a guarantee that YouTube's backend will translate that particular video. The patch also doesn't replace YouTube/Morphe's caption preference or visibility settings, and exact handling of every manually selected source remains subject to the native player.
The release contains the MPP bundle, generated patches-list.json and its SHA-256 checksum. No modified YouTube APKs or private device logs are distributed.
Universal Captions is an independent project I developed and maintain. The Morphe maintainers later invited me to integrate it into their patch set.
See NOTICE for the applicable copyright and license notices.
Universal Captions 2.1.0
Restores missing YouTube Auto-translate menus and expands language coverage using YouTube's per-video metadata.
Changes
- Restore the native Auto-translate option when valid original captions exist but Android returns an empty translation list.
- Support ASR, uploaded/manual and named captions, including multiple current-audio sources.
- Read target languages dynamically; use the dated 156-language fallback only when native metadata is empty. Preserve regional menu targets.
- Preserve signed source URLs and Morphe's caption preference, Off and manual-selection policies. Existing native menus respect Morphe's additional-language setting.
Installation
Import universal-captions-2.1.0.mpp or refresh this repository in Morphe Manager. Select Universal Captions - additional translation languages alongside Captions, using a clean YouTube 21.20.405 or 21.41.525 APK. Replace older experimental Universal Captions imports; select only one version. Repatch YouTube to apply the update.
Validation
The runtime is byte-for-byte identical to device-tested experiment.4. The user reported successful translation, Off/on, audio/source changes and video switching on 21.20.405; the app-process capture showed no crash. Automated construction checks cover 193,440 source/target/locale cases. The full 45-test native-combined suite passed again, and the exact stable MPP passed Android patching/DEX/hierarchy/signing verification on both declared APK versions. Native coexistence in both orders was validated with the identical experimental implementation.
Additional user-reported device testing confirmed working operation across YouTube 20.21.37–21.42.241, including both endpoints and intermediate versions. Automated APK validation covers 21.20.405 and 21.41.525.
Known limits
YouTube may withhold a translation for particular videos/accounts. Native automatic regional preference matching may choose generic pt for pt-PT; manual menu options remain separate. The fallback uses the current-audio default/native order and does not guarantee tracking every manual source choice.
SHA-256 (universal-captions-2.1.0.mpp):
f25f28130260895efcaea4f267b26293d057b2401c0e643c53d0aa7275923622
Universal Captions v2.0.0
Universal Captions 2.0.0 expands YouTube’s native Auto-translate language menu and sorts it by localized display name.
- Adds all languages supported by the patch to YouTube’s native Auto-translate menu, while retaining native entries.
- Caption preferences, source selection, visibility and Off behavior are managed by Morphe’s Captions patch.
- When the native Morphe additional-language feature is present, its setting controls the menu; the standalone addon leaves that behavior to Morphe.
- Older Morphe builds continue to use the independent language-menu extension.
Upgrading from 1.4: version 2.0 is a menu-only addon. Enable Morphe’s Captions patch for caption preference and visibility features. Use only one Universal Captions version in each patching session.
Validated APK targets: YouTube 21.20.405 and 21.41.525. All 20 regression tests passed, and standalone and combined-native APKs passed SDK verification on both targets. The release implementation was also confirmed working on-device. Other versions remain unverified; translation availability varies by video and account.
Install: update this source in Morphe Manager, or import universal-captions-2.0.0.mpp from the assets below.
Universal Captions v1.4.0
YouTube-native captions in your preferred language, with remembered language selection and an alphabetical Auto-translate menu.
- YouTube 21.41.525 and 21.20.405 compatibility.
- A curated translation-language catalogue, including Greek, with native entries retained.
- Language choices ordered by their displayed names using the app locale.
- Manual/ASR caption preference and YouTube-native translation when a suitable source is available.
- Remembered language and explicit Off preferences.
Install: add this repository as a source in Morphe Manager, or import universal-captions-1.4.0.mpp. Replace development-source copies with the release source before patching a clean supported APK.
Validated with automated regression tests, standalone APK patching/rebuilding, and user testing on Waydroid / Android 13. Translation availability varies by video and account; other YouTube versions are unverified. No modified YouTube APK is distributed.
Universal Captions v1.3.0 - YouTube
Adds native auto-translation language options and remembers subtitle language or Off across videos. Prefers target-language manual captions, then ASR; otherwise selects a suitable native track for YouTube translation. Tested on YouTube 21.20.405 with Waydroid; other versions and edge cases unverified. No external translation API.
Universal Captions v1.2.0 - YouTube
Experimental YouTube-native auto-translation unlock. Verified by a user on YouTube 21.20.405. Supports additional languages through native caption-track cloning. Compatibility metadata targets YouTube, not universal apps. Always retain a working APK backup; other YouTube versions are unverified.