From 63a7c1e2d003f9f54203315ae97f6d0fe59a382f Mon Sep 17 00:00:00 2001 From: deniscerri <64997243+deniscerri@users.noreply.github.com> Date: Sun, 2 Nov 2025 07:43:46 +0100 Subject: [PATCH] try fix format update crash --- .../ytdl/ui/adapter/FormatAdapter.kt | 12 ++++-------- .../ytdl/util/extractors/ytdlp/YTDLPUtil.kt | 10 ++++++++++ app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/updating_preferences.xml | 18 +++++++++++++----- 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/deniscerri/ytdl/ui/adapter/FormatAdapter.kt b/app/src/main/java/com/deniscerri/ytdl/ui/adapter/FormatAdapter.kt index 6097af37..71fe17b1 100644 --- a/app/src/main/java/com/deniscerri/ytdl/ui/adapter/FormatAdapter.kt +++ b/app/src/main/java/com/deniscerri/ytdl/ui/adapter/FormatAdapter.kt @@ -54,12 +54,8 @@ class FormatAdapter(onItemClickListener: OnItemClickListener, activity: Activity } override fun getItemViewType(position: Int): Int { - try { - val isLabel = formats[position]!!.label != null - return if (isLabel) 0 else 1 - }catch (err: Exception) { - return 1 - } + val item = formats.getOrNull(position) + return if (item?.label != null) 0 else 1 } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { @@ -92,8 +88,8 @@ class FormatAdapter(onItemClickListener: OnItemClickListener, activity: Activity return } - val item = itm.format!! - val card = holder.item!! + val item = itm.format ?: return + val card = holder.item ?: return //card.popup() UiUtil.populateFormatCard(activity, card, item) card.isChecked = selectedVideoFormat == item || selectedAudioFormats.any { it == item } diff --git a/app/src/main/java/com/deniscerri/ytdl/util/extractors/ytdlp/YTDLPUtil.kt b/app/src/main/java/com/deniscerri/ytdl/util/extractors/ytdlp/YTDLPUtil.kt index 01ea0e4f..96d5901b 100644 --- a/app/src/main/java/com/deniscerri/ytdl/util/extractors/ytdlp/YTDLPUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdl/util/extractors/ytdlp/YTDLPUtil.kt @@ -688,12 +688,17 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co if (playerClients.isNotEmpty()){ extractorArgs.add("player_client=${playerClients.joinToString(",")}") + }else{ + //TODO DISCUSS + //extractorArgs.add("player_client=default,-web,-web-safari,-android,-ios,-tv") } if (poTokens.isNotEmpty() && sharedPreferences.getBoolean("use_cookies", false)) { extractorArgs.add("po_token=${poTokens.joinToString(",")}") } + //extractorArgs.add("skip=translated_subs") + val useLanguageForMetadata = sharedPreferences.getBoolean("use_app_language_for_metadata", true) if (useLanguageForMetadata) { val lang = java.util.Locale.getDefault().language @@ -853,6 +858,11 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co request.addOption("--proxy", proxy) } + val updateYTDLP = sharedPreferences.getBoolean("update_ytdlp_while_downloading", false) + if (updateYTDLP) { + request.addOption("-U") + } + val keepCache = sharedPreferences.getBoolean("keep_cache", false) if(keepCache){ request.addOption("--keep-fragments") diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cdc9af69..f2402f62 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -502,4 +502,6 @@ Chapters Use original url for playlist url Use playlist url given by user instead of the playlist_webpage_url tag from the json dump + Update yt-dlp while downloading + Add -U to yt-dlp to update it to latest before downloading diff --git a/app/src/main/res/xml/updating_preferences.xml b/app/src/main/res/xml/updating_preferences.xml index 1b1dd8f1..41384a53 100644 --- a/app/src/main/res/xml/updating_preferences.xml +++ b/app/src/main/res/xml/updating_preferences.xml @@ -2,10 +2,6 @@ - @@ -34,10 +30,23 @@ android:key="auto_update_ytdlp" app:title="@string/auto_update_ytdlp" /> + + + + -