Releases: deniscerri/ytdlnis
1.8.9.1
What's Changed
Note
Please upgrade to this version urgently if you are in 1.8.9, as it resolves critical bugs. Sorry for the inconvenience
In certain devices when searching for something on home screen you might experience a crash without a generated log. This is created by newpipe extractor. Change the data fetching extractor to yt-dlp in general settings to resolve this.
Urgent fixes
- Fix bug in history deleting whole history list if you select one item 💀
- Update newpipe extractor to snapshot
- Add reset button in crop bottom sheet
- Fix bug in history when deleting item, deletes whole folder in SD card
Autogenerated changes
Full Changelog: v1.8.9...v1.8.9.1
1.8.9
What's Changed
Video cropping
Now in the video section of the download card u can crop a video however you like and the app applies a ffmpeg postprocessor with yt-dlp. I have to note that in vp9 and av1 formats cropping might need higher versions of ffmpeg, so i recommend upgrading to ffmpeg 7.1.1 from the packages settings.
Subfolder download preference
I have to tell people that the app has a filename template system where u can have endless possibilities on how to name your files, but for some people they just need basic structure so i added this. U can select playlist name, website and download type
Other stuff
- Fix webview not working for tiktok and facebook
- Make webview go back when swiping back on the device
- Enabled by default download over metered networks
- Show progress in the updating app dialog
- Fix app inverting the order of items when restoring backup
- Added placeholder url in po token generation
- Validate url properly for the cookies screen
- fix app using search query for playlist url when use original url as playlist url toggle is enabled
- disable some website search options (nico video, google video) as they are broken
- fix parse metadata playlist name
- Fix The cache folder preference can't be interacted immediately (remains grayed out) after you grant all files perms
- remove reduntant -c:v libx264 -c:a aac -profile:v baseline for compat mode
- Use codec in -S instead of vcodec and acodec
- enable embed metadata in video downloads too
- remove yt-dlp from /raw to make fdroid buildable
- fix format card ui to have wrapping text instead of being cut off
- other stuff i forgor
Info
You should install the github release version to have app auto update and other features missing in foss. Foss versions are built to comply the F-droid / Izzy regulations.
Autogenerated changes
- Translations update from Hosted Weblate by @weblate in #1138
- Translations update from Hosted Weblate by @weblate in #1140
- README in Arabic by @NENO756 in #1153
- Translations update from Hosted Weblate by @weblate in #1141
- Translations update from Hosted Weblate by @weblate in #1160
- Translations update from Hosted Weblate by @weblate in #1167
- Update Telegram updates link in README by @Figim in #1166
- Translations update from Hosted Weblate by @weblate in #1170
- Translations update from Hosted Weblate by @weblate in #1174
- Enable asynchronous memory tagging in #1157
- Translations update from Hosted Weblate by @weblate in #1181
- Translations update from Hosted Weblate by @weblate in #1187
- Translations update from Hosted Weblate by @weblate in #1190
- Translations update from Hosted Weblate by @weblate in #1198
- add video crop option by @Sleeping-Donut in #1195
- Translations update from Hosted Weblate by @weblate in #1199
- Translations update from Hosted Weblate by @weblate in #1206
- Translations update from Hosted Weblate by @weblate in #1211
- Update README-az.md by @Figim in #1216
- Translations update from Hosted Weblate by @weblate in #1215
- Translations update from Hosted Weblate by @weblate in #1218
- Translations update from Hosted Weblate by @weblate in #1223
New Contributors
- @NENO756 made their first contribution in #1153
- @Sleeping-Donut made their first contribution in #1195
Full Changelog: v1.8.8...v1.8.9
1.8.8
What's Changed
Package Integration
This was long overdue, and the next progression from this app. Instead of releasing new versions of the app when packages like python, ffmpeg etc need upgrades, now the app can manage both bundled and downloadable packages.
Packages will be published in a separate repository.
You can also import zip if you have it locally.
Currently what is published is nodejs 25.3.0 and previous versions of ffmpeg and python.
I downgraded ffmpeg to 7.0.1 for this release to reduce filesize but also to resolve issues with users who cant run higher version ffmpeg.
ffmpeg 7.1.1 is available to download of course.
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.
YoutubeDL-Android rewrite
Since the package integration, the library had to undergo many changes so i decided to rewrite everything and integrate it within the app. Also fixed some other issues. In future releases i will have more control how commands are executed.
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
- Add remove audio as preference in the settings
- Add also download as audio as preference in the settings
- fix app not adding trailing spaces when adding command templates in the download card
- remove hardcoded --no-cache-dir from youtubedl-android
- add vorbis to audio containers
- some metadata command rework for title and author
- for errored downloads, long press redownloads and press sends to download card
- delete info json files after updating yt-dlp
- tried fixing po token no auth generation, lmk
- add badge to the filters in download history fragment
- fix app sometimes showing "watch" in result titles
- apply prefer drc audio format in quick downloads for video tab
- move use header from cookies screen to advanced since UA overriding breaks the tabs (playlist, releases, etc.) extraction, too
- add write info json when fetching formats aswell
- fix preference compatible video not applying in download card
- enforce avc and acc codecs when enabling compatible video
- made double tap of the downloads screen to open the search bar
- update to newpipe 0.25.2
- use --ppa VideoConvertor+ffmpeg_o:-c:v libx264 -c:a aac -profile:v baseline for compatibility mode toggle, should now be truly compatible lol
- apply prefer drc preference even in quick download
- truncate match filter logs to prevent crashes
- add --cache-dir always on downloads
- Fix app applying replace in metadata title for playlist items when quick downloaded and data was fetched after a while
- dont apply write info json on yt playlist links
- add back btn to webview in the menu
- add green and blue icons
- remove app autofocusing on the command textview in the command tab
New Contributors
- @ChongxiSama made their first contribution in #1087
- @jhaiian made their first contribution in #1109
Autogenerated Changes
- Translations update from Hosted Weblate by @weblate in #1053
- Translations update from Hosted Weblate by @weblate in #1059
- Translations update from Hosted Weblate by @weblate in #1062
- Translations update from Hosted Weblate by @weblate in #1069
- 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
- Text in application signature verification section by @Figim in #1117
- Translations update from Hosted Weblate by @weblate in #1118
- Translations update from Hosted Weblate by @weblate in #1125
- Searchable settings rework by @deniscerri in #1129
- Translations update from Hosted Weblate by @weblate in #1131
- Translations update from Hosted Weblate by @weblate in #1132
New Contributors
- @ChongxiSama made their first contribution in #1087
- @jhaiian made their first contribution in #1109
Full Changelog: v1.8.7.2...v1.8.8
1.8.7.3-beta-2
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
1.8.7.3-beta
What's Changed
Package Integration
This was long overdue, and the next progression from this app. Instead of releasing new versions of the app when packages like python, ffmpeg etc need upgrades, now the app can manage both bundled and downloadable packages.
Packages will be published in a separate repository.
You can also import zip if you have it locally.
Currently what is published is nodejs 25.3.0 and previous versions of ffmpeg and python.
I downgraded ffmpeg to 7.0.1 for this release to reduce filesize, but ffmpeg 7.1.1 is available to download.
YoutubeDL-Android rewrite
Since the package integration, the library had to undergo many changes so i decided to rewrite everything and integrate it within the app. Also fixed some other issues. In future releases i will have more control how commands are executed.
Other changes
- Add remove audio as preference in the settings
- Add also download as audio as preference in the settings
- fix app not adding trailing spaces when adding command templates in the download card
- remove hardcoded --no-cache-dir from youtubedl-android
- add vorbis to audio containers
- some metadata command rework for title and author
- for errored downloads, long press redownloads and press sends to download card
- delete info json files after updating yt-dlp
- tried fixing po token no auth generation, lmk
- add badge to the filters in download history fragment
- fix app sometimes showing "watch" in result titles
- apply prefer drc audio format in quick downloads for video tab
- move use header from cookies screen to advanced since UA overriding breaks the tabs (playlist, releases, etc.) extraction, too
- add write info json when fetching formats aswell
- fix preference compatible video not applying in download card
- enforce avc and acc codecs when enabling compatible video
- made double tap of the downloads screen to open the search bar
- update to newpipe 0.25.2
- use --ppa VideoConvertor+ffmpeg_o:-c:v libx264 -c:a aac -profile:v baseline for compatibility mode toggle, should now be truly compatible lol
- apply prefer drc preference even in quick download
- truncate match filter logs to prevent crashes
- add --cache-dir always on downloads
Autogenerated changes
- Translations update from Hosted Weblate by @weblate in #1053
- Translations update from Hosted Weblate by @weblate in #1059
- Translations update from Hosted Weblate by @weblate in #1062
- Translations update from Hosted Weblate by @weblate in #1069
Full Changelog: v1.8.7.2...v1.8.7.3-beta
1.8.7.2
What's Changed
F-Droid integration
- disabled auto-update of the app. (I will try to make build flavors in the following release so i can re-enable it for just github releases)
- Added Queue as default tab in the bottom navigation
- Add Hook in sponsorblock categories
- More translations
Autogenerated Changes
Full Changelog: v1.8.7.1...v1.8.7.2
1.8.7.1
What's Changed
Filename Template Live Preview & Info JSON
Brought back info json feature to prevent the app from calling servers twice. Also with all the metadata stored in a file, i added the feature to preview the filename template.
You can turn off using info json if you'd like in advanced settings.
Icon Picker
You can select the icon and not have it update depending on theme. I am open to custom icons if you'd like, ill add them to the app.
Looking at you decipher :P
Other stuff
- Fix app closing webview when leaving the app. You have to return from recents and not relaunch the app.
- Add time to the backup filename
- Reversed don't prefer DRC audio to prefer DRC audio preference
- Fix items in navigation rail in landscape being cut off
- Fix youtube playlist link fetching being null
- Add Hausa language
- Add intent for quick download in the share menu. You can enable it in the general settings. This ignores the download card and downloads immediately.
- Consider "creators" field when parsing author in the app
- Add youtube charts support for newpipe home recommendations
- Fix observe sources items not showing properly in light mode
Autogenerated Changes
- Translations update from Hosted Weblate by @weblate in #989
- README-az.md by @Figim in #1004
- Translations update from Hosted Weblate by @weblate in #999
- Translations update from Hosted Weblate by @weblate in #1007
- Translations update from Hosted Weblate by @weblate in #1016
- Translations update from Hosted Weblate by @weblate in #1017
- Translations update from Hosted Weblate by @weblate in #1020
- Translations update from Hosted Weblate by @weblate in #1023
- Translations update from Hosted Weblate by @weblate in #1026
- Translations update from Hosted Weblate by @weblate in #1028
- Translations update from Hosted Weblate by @weblate in #1030
- Translations update from Hosted Weblate by @weblate in #1031
- Translations update from Hosted Weblate by @weblate in #1037
- Translations update from Hosted Weblate by @weblate in #1040
- Edit by @Sumon-Kayal in #1042
- Translations update from Hosted Weblate by @weblate in #1045
- Undo changes by @Figim in #1047
New Contributors
- @Sumon-Kayal made their first contribution in #1042
Full Changelog: v1.8.7...v1.8.7.1
1.8.7
What's Changed
Add QuickJS runtime
Implements yt-dlp's --js-runtimes command to help with many website challenges while fetching data and downloading.
Hopefully with this many of the current issues are resolved
- Upgrade to ffmpeg 7.1.1
- Fix hardcoded user id in path so it supports multiple users
- fix --cache-dir not properly formatted when used as command template
- Add toggle to always update yt-dlp before downloading
Pushing this release quickly because js runtime is vital now. Happy downloading :)
Autogenerated changes
- Translations update from Hosted Weblate by @weblate in #954
- Translations update from Hosted Weblate by @weblate in #964
- Translations update from Hosted Weblate by @weblate in #974
- Translations update from Hosted Weblate by @weblate in #977
Full Changelog: v1.8.6...v1.8.7
1.8.6
What's Changed
- Fix app sometimes giving you dubbed audio format instead of original audio
- Fix app crashing sometimes when pasting a link to terminal, also btw u can enable color highlight if disabled, wont crash the app i guess
- Make sponsorblock preference clear by default
- For playlists app now uses --lazy-playlist to load large playlists continuously in pages like newpipe does, its faster
- Enable / Disable certain cookie records instead of all at once
- Add option to write cookie description or label
- Add GIF to video containers
- Don't apply sponsorblock api url if sponsorblock is disabled
- Add --no-check-certificates command when aria2 is applied
- Add embed thumbnail toggle in adjust video chips
- Some video chips are combined into one with hidden dialog menu when clicked to save space
- Add badges on the adjust audio/video chips with hidden menus so u can know how many settings are active on each of them
- Don't apply generated po tokens when cookies are disabled
- remove data sync id fetch from normal cookies webview, only in po token webview
- Add filename template selection in the terminal screen
- Add toggle to not prefer DRC Audio formats
- Add ability to long press the terminate button to show the warning dialog even if u checked to not show it
- Add warning in the download card if selected format is too big (if format size is known, also this is an approximate as format size could change in the final file)
- Removed prefer smallest formats preference and instead u can select if u prefer small formats or large size formats
- fix app deleting custom cache folder when clearing temporary data
- apply proper autonumber metadata for each item when downloading multiple items
- add ability to remove file from mediastore when deleting file
- fix app crashing when sometimes yt-dlp results subtitles as null instead of an array
- Other small details and changes i forgot to note idk
Advanced changes
- Added toggle to disable --flat-playlist when data fetching
- Add Subs PO Token support when generating po token
- PO Token generation now has two modes, Auth and Non Auth
- Added toggle to use the url user gave to the app as playlist url instead of the playlist_webpage_url tag from the json dump
Autogenerated changes
- Translations update from Hosted Weblate by @weblate in #872
- Translations update from Hosted Weblate by @weblate in #874
- Minor SECURITY.md changes by @jwkwshjsjsj in #884
- Translations update from Hosted Weblate by @weblate in #887
- Translations update from Hosted Weblate by @weblate in #889
- Translations update from Hosted Weblate by @weblate in #890
- Translations update from Hosted Weblate by @weblate in #894
- Translations update from Hosted Weblate by @weblate in #895
- Translations update from Hosted Weblate by @weblate in #901
- Alert Dialogue Box appears on long press to check/uncheck "Don't ask again" by @Amitesh-exp in #906
- Translations update from Hosted Weblate by @weblate in #907
- Translations update from Hosted Weblate by @weblate in #908
- Translations update from Hosted Weblate by @weblate in #911
- Add turkish translation by @xandaronox in #917
- Translations update from Hosted Weblate by @weblate in #912
- Translations update from Hosted Weblate by @weblate in #918
- Translations update from Hosted Weblate by @weblate in #920
- Translations update from Hosted Weblate by @weblate in #926
- Fix mediastore delete by @yugal1107 in #933
- Translations update from Hosted Weblate by @weblate in #929
- Translations update from Hosted Weblate by @weblate in #940
- Translations update from Hosted Weblate by @weblate in #949
- Translations update from Hosted Weblate by @weblate in #950
New Contributors
- @jwkwshjsjsj made their first contribution in #884
- @Amitesh-exp made their first contribution in #906
- @xandaronox made their first contribution in #917
- @yugal1107 made their first contribution in #933
Full Changelog: v1.8.5...v1.8.6
1.8.5
What's Changed
Bulk Edit items in the Multiple Download Card #817
Now you can select a subset of the items in the multiple download card and apply changes only to them.
- Select items between 2 items
- Write down item indexes to select
- remove items
- Invert selected
- All options in this screen that previously could apply to all items are implemented for this function.
Also if you select a sublist and try to update formats and decide to update in the background, the app will remember the other items you didnt select when you return back to it but only the selected items will have their formats updated of course.
Other changes:
- App now can show FFmpeg output in the download card to avoid confusion on cases where it might appear as if the download is stuck but its running a ffmpeg subprocess
- App can now downgrade to stable when in beta. You will get a popup to update to the prev stable release if you installed from github and had use beta disabled
- Fixed app crashing if yt-dlp sources in preferences is badly written
- Fixed app having multiple columns for format items instead of just one #800
- Clear results when changing home recommendation source to avoid confusion
- Fix app passing --cache-dir twice in the command
- Remove buffer time in cut player, could help it load faster
- Fix app not consistently preferring codec in a format
- Prevent app from showing 'null' in author field if its not available #814
- Change text to be Sentence Case #793
- Add feature to convert audio bitrate up to 320kbps. * Even though it doesnt really increase quality many people requested it so here you go
- Added feature to show available subtitles a video has when selecting subtitle languages
- Made default subtitle format default instead of srt
- Fix app not properly putting data fetching extra commands in some cases
- Added "system" option in language selection so it follows the system language always
- Fixed app crashing when putting unreal numbers in cut section
- Hid download all and clipboard chip when selecting items to avoid confusion
- Added separate icons for success, running and failed downloads
- Used ^.*$ for replace-in-metadata
- Groupped finished, running, errored notifications
- Added subs in po token creator screen
- Fix download failing when title has forbidden characters #847
- Fix titles doubling up #835
- Add option to reverse items in the multiple download card
- Made app not restart when restoring backup
- Fix app not removing items that you redownload from cancelled/erroret etc
- Other small stuff i forgor
For advanced users:
For anyone who is using intent arguments in YTDLnis for automation, the COMMAND argument has been removed. This is due to a found security vulnerability by SonarPaul where user information and app integrity could be compromised. Read the pdf for more information in the YTDLnis Updates Telegram Channel.
If you were using that argument for extra commands with audio/video downloads, you could make a command template about it and use it as extra command and also add a url regex if you want.
Autogenerated Changed
- Translations update from Hosted Weblate by @weblate in #766
- Translations update from Hosted Weblate by @weblate in #773
- Translations update from Hosted Weblate by @weblate in #775
- Disable build on PRs by @madmini in #804
- Translations update from Hosted Weblate by @weblate in #802
- Disable cut for live videos by @madmini in #803
- Translations update from Hosted Weblate by @weblate in #805
- Translations update from Hosted Weblate by @weblate in #806
- style: convert all strings to sentence case per M3 guidelines by @DarkWolf2244 in #808
- Translations update from Hosted Weblate by @weblate in #811
- Translations update from Hosted Weblate by @weblate in #812
- Translations update from Hosted Weblate by @weblate in #815
- Translations update from Hosted Weblate by @weblate in #819
- Translations update from Hosted Weblate by @weblate in #820
- Translations update from Hosted Weblate by @weblate in #822
- Update CONTRIBUTING and README in #828
- Translations update from Hosted Weblate by @weblate in #830
- Translations update from Hosted Weblate by @weblate in #831
- Translations update from Hosted Weblate by @weblate in #834
- Translations update from Hosted Weblate by @weblate in #836
- Translations update from Hosted Weblate by @weblate in #839
- Translations update from Hosted Weblate by @weblate in #841
- Translations update from Hosted Weblate by @weblate in #842
- Translations update from Hosted Weblate by @weblate in #843
- Translations update from Hosted Weblate by @weblate in #845
- Translations update from Hosted Weblate by @weblate in #848
- Translations update from Hosted Weblate by @weblate in #849
- Translations update from Hosted Weblate by @weblate in #850
- Add Romanian README Translation by @Goldpunk in #852
- Update README-ro.md by @Goldpunk in #854
- Translations update from Hosted Weblate by @weblate in #856
- Translations update from Hosted Weblate by @weblate in #858
- Translations update from Hosted Weblate by @weblate in #859
- Translations update from Hosted Weblate by @weblate in #860
- Translations update from Hosted Weblate by @weblate in #866
- Translations update from Hosted Weblate by @weblate in #869
- Translations update from Hosted Weblate by @weblate in #870
New Contributors
- @DarkWolf2244 made their first contribution in #808
- @Goldpunk made their first contribution in #852
Full Changelog: v1.8.4...v1.8.5