diff --git a/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/GenerateYoutubePoTokensFragment.kt b/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/GenerateYoutubePoTokensFragment.kt index 37dd2eed..5f940a54 100644 --- a/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/GenerateYoutubePoTokensFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdl/ui/more/settings/advanced/GenerateYoutubePoTokensFragment.kt @@ -108,12 +108,14 @@ class GenerateYoutubePoTokensFragment : Fragment() { .filterIndexed { index, _ -> selectedItems[index] } .toMutableSet() - configuration.remove(conf) - conf.clients.clear() - conf.clients.addAll(newValues) - configuration.add(conf) - preferences.edit().putString("youtube_generated_po_tokens", Gson().toJson(configuration).toString()).apply() - setValues(conf) + if (newValues.isNotEmpty()) { + configuration.remove(conf) + conf.clients.clear() + conf.clients.addAll(newValues) + configuration.add(conf) + preferences.edit().putString("youtube_generated_po_tokens", Gson().toJson(configuration).toString()).apply() + setValues(conf) + } } .setNegativeButton(R.string.cancel, null) .show() @@ -143,10 +145,12 @@ class GenerateYoutubePoTokensFragment : Fragment() { switch.setOnClickListener { configuration.remove(conf) - conf.enabled = switch.isEnabled + conf.enabled = switch.isChecked configuration.add(conf) preferences.edit().putString("youtube_generated_po_tokens", Gson().toJson(configuration).toString()).apply() - regenerate.performClick() + if (conf.poTokens.isEmpty()) { + regenerate.performClick() + } } } } \ No newline at end of file diff --git a/app/src/main/java/com/deniscerri/ytdl/util/extractors/YTDLPUtil.kt b/app/src/main/java/com/deniscerri/ytdl/util/extractors/YTDLPUtil.kt index 01699865..a7048bfd 100644 --- a/app/src/main/java/com/deniscerri/ytdl/util/extractors/YTDLPUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdl/util/extractors/YTDLPUtil.kt @@ -1301,6 +1301,12 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co } } + val dataSyncID = sharedPreferences.getString("youtube_data_sync_id", "")!! + if (dataSyncID.isNotBlank()) { + extractorArgs.add("player-skip=webpage,configs") + extractorArgs.add("data_sync_id=${dataSyncID}") + } + val generatedPoTokensRaw = sharedPreferences.getString("youtube_generated_po_tokens", "[]") val generatedPoTokens = Gson().fromJson(generatedPoTokensRaw,Array::class.java).toMutableList() if (generatedPoTokens.isNotEmpty()) { @@ -1315,8 +1321,11 @@ class YTDLPUtil(private val context: Context, private val commandTemplateDao: Co } } - extractorArgs.add("player-skip=webpage,configs") - extractorArgs.add("visitor_data=${value.visitorData}") + if (dataSyncID.isBlank()) { + extractorArgs.add("player-skip=webpage,configs") + extractorArgs.add("visitor_data=${value.visitorData}") + } + } } } diff --git a/app/src/main/res/layout/fragment_generate_youtube_po_token.xml b/app/src/main/res/layout/fragment_generate_youtube_po_token.xml index 590c7cc4..658c6ef9 100644 --- a/app/src/main/res/layout/fragment_generate_youtube_po_token.xml +++ b/app/src/main/res/layout/fragment_generate_youtube_po_token.xml @@ -222,6 +222,14 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + + diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index cd004bb5..a1a1cfe9 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -467,7 +467,6 @@ Automatyczna kopia zapasowa Ścieżka kopii zapasowej Tworzenie napisów podczas osadzania - Używanie automatycznie wygenerowanych tokenów PO z narzędzia NewPipe Extractor Automatyczne tworzenie kopii zapasowej wszystkiego po znalezieniu nowej wersji aplikacji Po włączeniu tej opcji aplikacja wyłączy pliki cookie i użyje wygenerowanych tokenów po i danych odwiedzających jako argumentów ekstraktora YouTube Spowoduje to zastosowanie opcji Zapisz napisy i Zapisz automatyczne napisy w celu pobrania plików napisów, a następnie usunięcia ich po osadzeniu diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 6b98c123..9968c408 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -470,6 +470,5 @@ Usar marcador para code de cores Salvar legendas ao incorporar Isso aplicará \"Salvar legendas\" e \"Salvar legendas automáticas\" para baixar os subarquivos e excluí-los após a incorporação - Usar chave de acesso PO gerados automaticamente por NewPipe Extractor Ao ativar essa opção, o aplicativo desativará os cookies e usará as chaves de acesso PO gerados e os dados do visitante como argumentos do YouTube Extractor diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index 6c2b4be7..077f6c3b 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -470,6 +470,5 @@ Аутоматско прављење резервне копије свега, када се пронађе нова верзија апликације Писање титлова приликом уграђивања Ово ће применити „Сачувај титлове“ и „Сачувај аутоматске титлове“ за преузимање потфајлова, а затим их избрисати након уграђивања - Користи аутоматски генерисане PO токене из NewPipe Extractor-а Ако ово омогућите, апликација ће онемогућити колачиће и користити генерисане PO токене и податке о посетиоцима као аргументе YouTube Extractor-а diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 82289d8b..fcf450ec 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -470,6 +470,5 @@ Вписувати субтитри під час вкладання Використовувати колірний маркер коду Шлях до резервної копії - Використовувати автозгенеровані токени PO з NewPipe Extractor Увімкнувши це, застосунок вимкне файли cookie і використовуватиме згенеровані токени PO та дані відвідувачів як аргументи для YouTube Extractor diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 890270be..4bf0d109 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -469,6 +469,5 @@ 自动备份 备份路径 嵌入时写入字幕 - 使用来自 NewPipe 提取器自动生成的 PO 令牌 启用本选项后,应用会禁用 cookies 并把生成的 po 令牌和访问者数据用作 YouTube 提取器变量 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0241738a..45814a6f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -474,4 +474,5 @@ This will apply Save Subtitles and Save Automatic Subtitles to download the sub files and then delete them after embedding Generate PO Tokens Re-generate + * By enabling this, you need to disable cookies. If you want to keep using cookies, fill in the Data Sync ID Extractor Argument diff --git a/app/src/main/res/xml/advanced_preferences.xml b/app/src/main/res/xml/advanced_preferences.xml index b64cfa6c..6f296101 100644 --- a/app/src/main/res/xml/advanced_preferences.xml +++ b/app/src/main/res/xml/advanced_preferences.xml @@ -24,6 +24,13 @@ android:key="use_app_language_for_metadata" android:title="@string/use_app_language_for_metadata" /> + +