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" /> + + + + -