What's Changed
Packages rewrite
Bumped up target sdk back to 36. Since beyond skd28 downloadable executables can't execute, the only way to make them executable is if they are part of jniLibs inside the app OR inside another app. So now downloadable packages are shipped as apks u can install. The app will immediately recognize them.
The package apks are simply empty apps with jniLibs folder in them containing libxxx.so and libxxx.zip.so. libxxx.zip.so are extracted within the ytdlnis internal directory, and libxxx.so is accessible throughout the android system.
Also, added a loading dialog on the start of the app to note that the packages are loading, since you could technically speedrun the app and then start a download before the library is init and it fails.
Android 16 Live Notifications
Now the app supports the new live notification feature for download jobs. If you have concurrent downloads, it will make separate live notifications for each.
Everything else
- Remove error code 100 from success codes, it was causing errored downloads to not go to errored screen
- Made app not hardcode @latest when using custom yt-dlp update repository
- fix beta1 crashing when sharing link to the app, sorry lol
- fix app putting premerged videos before video only formats when fetching from newpipe
- made app pre-sort audio formats from newpipe by highest bitrate, for default users
- fix app not applying embed thumbnail in compatible mode for some reason
- add AI policy to contributing.md
- add feature to reapply old codec and video container preferences when disabling compatible mode
- remove redundant +br +fps +res from worst audio in quick download
- fix app showing repeated aria2c logs in logs screen
- made app give more importance to preferred language than prefer drc audio on quick download
- made use_app_language_for_metadata false by default
- fix ytdlp not auto downloading when app starts and erroring out, made it wait for runtime to start
- fix exporting the temp files generates a folder named "0" and an extra "storage/emulated/0/…" directory inside, LOL
- fix app not showing generic format ids in format selection screen, without restarting app
- made cache export only export temporary download files and not other config files like infojsons or other ytdlp temp files
- add --replace-in-metadata "playlist,playlist_title" "^.*$" "NAME" if use item url instead of playlist url is applied
- add %(rownumber)s as metadata instead of modifying autonumber start. use that in filename template to do the same thing as autonumber when downloading multiple items at once
- add 968kbps for audio bitrate setting
- merge thumbnail chips in audio download in a single dialog to save space
Autogenerated Changes
- Add README-zh_CN.md by @ChongxiSama in #1087
- Translations update from Hosted Weblate by @weblate in #1076
- Translations update from Hosted Weblate by @weblate in #1090
- Downloadable Plugins Branch by @deniscerri in #1112
- Translations update from Hosted Weblate by @weblate in #1110
- Refactor ShareActivity overlay and fix persistent status bar on Android 8.1 and lower by @jhaiian in #1109
New Contributors
- @ChongxiSama made their first contribution in #1087
- @jhaiian made their first contribution in #1109
Full Changelog: v1.8.7.3-beta...v1.8.7.4-beta
Updated to commit 7498cdb