pull/964/head
deniscerri 9 months ago
parent 7b085b1afe
commit 6876215859
No known key found for this signature in database
GPG Key ID: 95C43D517D830350

@ -1,5 +1,50 @@
# YTDLnis Changelog
> # 1.8.6 (2025-10)
# What's Changed
## Upgraded dependencies
Python 3.12.11
FFmpeg 7.1.1
16kb page size support
## Changes:
- 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 VORBIS to audio containers
- 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
> # 1.8.5 (2025-07)
# What's Changed

@ -11,7 +11,7 @@ plugins {
def properties = new Properties()
def versionMajor = 1
def versionMinor = 8
def versionPatch = 5
def versionPatch = 6
def versionBuild = 0 // bump for dogfood builds, public betas, etc.
def isBeta = false

@ -91,6 +91,8 @@ class PoTokenWebViewLoginActivity : BaseActivity() {
generateBtn = toolbar.findViewById(R.id.generate)
webViewCompose = findViewById(R.id.webview_compose)
cookieManager = CookieManager.getInstance()
cookieManager.removeAllCookies(null)
cookieManager.flush()
preferences = PreferenceManager.getDefaultSharedPreferences(this@PoTokenWebViewLoginActivity)
preferences.edit().putString("genenerate_youtube_po_token_preferred_url", url).apply()

@ -290,6 +290,14 @@ object Extensions {
animator.start()
}
fun dpToPx(resources: Resources, dp: Float): Int {
return TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
dp,
resources.displayMetrics
).toInt()
}
@OptIn(ExperimentalBadgeUtils::class)
fun Chip.createBadge(context: Context, nr: Int) {
this.overlay.clear()
@ -297,11 +305,11 @@ object Extensions {
val badge = BadgeDrawable.create(context).apply {
number = nr
backgroundColor = context.getColor(R.color.white)
verticalOffset = 25
verticalOffset = dpToPx(context.resources, 20f)
horizontalOffset =
if (nr < 10) dp(App.instance.resources, 16f)
else if (nr < 100) dp(App.instance.resources, 19f)
else dp(App.instance.resources, 22f)
if (nr < 10) dpToPx(context.resources, 16f)
else if (nr < 100) dpToPx(context.resources, 19f)
else dpToPx(context.resources, 22f)
}
BadgeUtils.attachBadgeDrawable(badge, this)
}

@ -1677,7 +1677,7 @@ object UiUtil {
val sponsorBlock = view.findViewById<Chip>(R.id.sponsorblock_filters)
sponsorBlock.isEnabled = sharedPreferences.getBoolean("use_sponsorblock", true)
if (items.size == 1 && sponsorBlock.isEnabled) {
sponsorBlock.createBadge(context, items.first().videoPreferences.sponsorBlockFilters.size)
sponsorBlock.createBadge(context, items.first().videoPreferences.sponsorBlockFilters.filter { it.isNotBlank() }.size)
}
sponsorBlock!!.setOnClickListener {
val builder = MaterialAlertDialogBuilder(context)
@ -1875,7 +1875,7 @@ object UiUtil {
val sponsorBlock = view.findViewById<Chip>(R.id.sponsorblock_filters)
sponsorBlock.isEnabled = sharedPreferences.getBoolean("use_sponsorblock", true)
if (items.size == 1 && sponsorBlock.isEnabled) {
sponsorBlock.createBadge(context, items.first().videoPreferences.sponsorBlockFilters.size)
sponsorBlock.createBadge(context, items.first().audioPreferences.sponsorBlockFilters.filter { it.isNotBlank() }.size)
}
sponsorBlock!!.setOnClickListener {
val builder = MaterialAlertDialogBuilder(context)

@ -141,6 +141,7 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co
request.addOption("--lazy-playlist")
request.addOption(if (singleItem) "-J" else "-j")
request.applyDefaultOptionsForFetchingData(if (query.isURL()) query else null)
val usePlaylistOriginalURL = sharedPreferences.getBoolean("use_original_url_playlist", false)
val finalResults = mutableListOf<ResultItem>()
var postedProgress = false
@ -148,6 +149,13 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co
runCatching {
val generatedResults = parseYTDLPListResults(listOf(line))
if (generatedResults.isNotEmpty()) {
generatedResults.forEach {
if (!it.playlistURL.isNullOrBlank() && usePlaylistOriginalURL) {
it.playlistURL = query
}
}
finalResults.addAll(generatedResults)
if (!postedProgress) {
if (finalResults.size > 1) {

@ -167,6 +167,7 @@
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/every_textinputet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"

@ -8,6 +8,7 @@
<item>flac</item>
<item>opus</item>
<item>wav</item>
<item>vorbis</item>
</string-array>
<string-array name="audio_containers_values">
@ -19,6 +20,7 @@
<item>flac</item>
<item>opus</item>
<item>wav</item>
<item>vorbis</item>
</string-array>
<string-array name="video_containers">

@ -500,4 +500,6 @@
<string name="disable_flat_playlist">Disable flat playlist</string>
<string name="disable_flat_playlist_summary">Don\'t use --flat-playlist. Slower data fetching, but more data rich</string>
<string name="chapters">Chapters</string>
<string name="use_original_url_playlist">Use original url for playlist url</string>
<string name="use_original_url_playlist_summary">Use playlist url given by user instead of the playlist_webpage_url tag from the json dump</string>
</resources>

@ -86,6 +86,14 @@
android:key="no_flat_playlist"
android:summary="@string/disable_flat_playlist_summary"
android:title="@string/disable_flat_playlist" />
<SwitchPreferenceCompat
android:widgetLayout="@layout/preferece_material_switch"
android:icon="@drawable/ic_lines"
android:key="use_original_url_playlist"
android:summary="@string/use_original_url_playlist_summary"
android:title="@string/use_original_url_playlist" />
</PreferenceCategory>
<Preference

@ -0,0 +1,42 @@
# What's Changed
## Upgraded dependencies
Python 3.12.11
FFmpeg 7.1.1
16kb page size support
## Changes:
- 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 VORBIS to audio containers
- 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

@ -17,3 +17,4 @@ android.nonTransitiveRClass=false
android.suppressUnsupportedCompileSdk=35
android.useAndroidX=true
org.gradle.jvmargs=-Xmx1536M -Dkotlin.daemon.jvm.options\="-Xmx2048M" -Dfile.encoding\=UTF-8
org.gradle.warning.mode=all

@ -2,7 +2,6 @@ pluginManagement {
repositories {
gradlePluginPortal()
google()
jcenter()
mavenCentral()
maven { url 'https://jitpack.io' }
maven { url "https://dl.bintray.com/kodein-framework/Kodein-DI" }
@ -12,7 +11,6 @@ dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
jcenter()
mavenCentral()
maven { url 'https://jitpack.io' }
maven { url "https://dl.bintray.com/kodein-framework/Kodein-DI" }

Loading…
Cancel
Save