From 0ebc06633b0c0cf1f725fa1fee1b0d566f1e38f1 Mon Sep 17 00:00:00 2001 From: anxdpanic Date: Sat, 30 Sep 2023 00:28:23 +0000 Subject: [PATCH] [plugin.video.youtube] 7.0.2.2 --- plugin.video.youtube/addon.xml | 11 +- plugin.video.youtube/changelog.txt | 66 +- .../resource.language.af_za/strings.po | 134 +- .../resource.language.am_et/strings.po | 134 +- .../resource.language.ar_sa/strings.po | 134 +- .../resource.language.ast_es/strings.po | 134 +- .../resource.language.az_az/strings.po | 134 +- .../resource.language.be_by/strings.po | 134 +- .../resource.language.bg_bg/strings.po | 158 +- .../resource.language.bs_ba/strings.po | 134 +- .../resource.language.ca_es/strings.po | 147 +- .../resource.language.cs_cz/strings.po | 200 +- .../resource.language.cy_gb/strings.po | 134 +- .../resource.language.da_dk/strings.po | 204 +- .../resource.language.de_de/strings.po | 208 +- .../resource.language.el_gr/strings.po | 200 +- .../resource.language.en_au/strings.po | 135 +- .../resource.language.en_gb/strings.po | 134 +- .../resource.language.en_nz/strings.po | 135 +- .../resource.language.en_us/strings.po | 135 +- .../language/resource.language.eo/strings.po | 134 +- .../resource.language.es_ar/strings.po | 134 +- .../resource.language.es_es/strings.po | 210 +- .../resource.language.es_mx/strings.po | 200 +- .../resource.language.et_ee/strings.po | 134 +- .../resource.language.eu_es/strings.po | 134 +- .../resource.language.fa_af/strings.po | 134 +- .../resource.language.fa_ir/strings.po | 134 +- .../resource.language.fi_fi/strings.po | 202 +- .../resource.language.fo_fo/strings.po | 134 +- .../resource.language.fr_ca/strings.po | 134 +- .../resource.language.fr_fr/strings.po | 208 +- .../resource.language.gl_es/strings.po | 134 +- .../resource.language.he_il/strings.po | 158 +- .../resource.language.hi_in/strings.po | 134 +- .../resource.language.hr_hr/strings.po | 202 +- .../resource.language.hu_hu/strings.po | 200 +- .../resource.language.hy_am/strings.po | 134 +- .../resource.language.id_id/strings.po | 202 +- .../resource.language.is_is/strings.po | 134 +- .../resource.language.it_it/strings.po | 224 +- .../resource.language.ja_jp/strings.po | 134 +- .../resource.language.kn_in/strings.po | 134 +- .../resource.language.ko_kr/strings.po | 204 +- .../resource.language.lt_lt/strings.po | 134 +- .../resource.language.lv_lv/strings.po | 134 +- .../language/resource.language.mi/strings.po | 134 +- .../resource.language.mk_mk/strings.po | 134 +- .../resource.language.ml_in/strings.po | 134 +- .../resource.language.mn_mn/strings.po | 134 +- .../resource.language.ms_my/strings.po | 134 +- .../resource.language.mt_mt/strings.po | 134 +- .../resource.language.my_mm/strings.po | 134 +- .../resource.language.nb_no/strings.po | 158 +- .../resource.language.nl_nl/strings.po | 200 +- .../resource.language.os_os/strings.po | 134 +- .../resource.language.pl_pl/strings.po | 208 +- .../resource.language.pt_br/strings.po | 200 +- .../resource.language.pt_pt/strings.po | 200 +- .../resource.language.ro_ro/strings.po | 176 +- .../resource.language.ru_ru/strings.po | 202 +- .../resource.language.si_lk/strings.po | 134 +- .../resource.language.sk_sk/strings.po | 214 +- .../resource.language.sl_si/strings.po | 134 +- .../resource.language.sq_al/strings.po | 134 +- .../resource.language.sr_rs/strings.po | 134 +- .../resource.language.sr_rs@latin/strings.po | 134 +- .../resource.language.sv_se/strings.po | 134 +- .../language/resource.language.szl/strings.po | 134 +- .../resource.language.ta_in/strings.po | 134 +- .../resource.language.te_in/strings.po | 134 +- .../resource.language.tg_tj/strings.po | 134 +- .../resource.language.th_th/strings.po | 134 +- .../resource.language.tr_tr/strings.po | 202 +- .../resource.language.uk_ua/strings.po | 158 +- .../resource.language.uz_uz/strings.po | 134 +- .../resource.language.vi_vn/strings.po | 158 +- .../resource.language.zh_cn/strings.po | 206 +- .../resource.language.zh_tw/strings.po | 200 +- .../kodion/constants/const_settings.py | 21 +- .../kodion/impl/abstract_context.py | 3 + .../kodion/impl/abstract_settings.py | 189 +- .../kodion/impl/xbmc/xbmc_context.py | 76 +- .../kodion/impl/xbmc/xbmc_items.py | 53 +- .../kodion/impl/xbmc/xbmc_runner.py | 4 +- .../youtube_plugin/kodion/items/video_item.py | 10 +- .../youtube_plugin/kodion/utils/__init__.py | 1 - .../kodion/utils/http_server.py | 12 +- .../youtube_plugin/kodion/utils/methods.py | 49 +- .../lib/youtube_plugin/kodion/utils/player.py | 16 +- .../youtube/client/__config__.py | 4 +- .../youtube_plugin/youtube/client/youtube.py | 176 +- .../youtube/helper/resource_manager.py | 2 +- .../youtube/helper/signature/cipher.py | 47 +- .../youtube/helper/subtitles.py | 218 +- .../lib/youtube_plugin/youtube/helper/tv.py | 4 +- .../youtube_plugin/youtube/helper/utils.py | 10 +- .../lib/youtube_plugin/youtube/helper/v3.py | 2 +- .../youtube/helper/video_info.py | 2497 +++++++++++------ .../youtube_plugin/youtube/helper/yt_play.py | 14 +- .../lib/youtube_plugin/youtube/provider.py | 5 +- .../resources/lib/youtube_requests.py | 5 +- .../resources/lib/youtube_resolver.py | 2 +- plugin.video.youtube/resources/settings.xml | 375 ++- 104 files changed, 13292 insertions(+), 2624 deletions(-) diff --git a/plugin.video.youtube/addon.xml b/plugin.video.youtube/addon.xml index 9c327bbc8f..b2b9fd0316 100644 --- a/plugin.video.youtube/addon.xml +++ b/plugin.video.youtube/addon.xml @@ -1,5 +1,5 @@ - + @@ -14,7 +14,14 @@ -[fix] video duration not showing in lists +[new] quality and stream feature selection +[new] enable HLS live streams +[new] stream and language labelling +[chg] separately enable local/remote history +[chg] restore unsupported compatibility for Kodi v19 (Matrix) +[fix] fix various playback issues |contrib: various| +[fix] Limit host connections getting subscription feeds |contrib: cas--| +[fix] fix handling of connection failures [upd] Translations updated from Kodi Weblate diff --git a/plugin.video.youtube/changelog.txt b/plugin.video.youtube/changelog.txt index e71c902efc..377d259030 100644 --- a/plugin.video.youtube/changelog.txt +++ b/plugin.video.youtube/changelog.txt @@ -1,8 +1,72 @@ -6.8.18 +7.0.2.2 +[fix] Fix Matrix compatibility +[fix] Update unofficial patch + +7.0.2.1 +[fix] fix Matrix InputStream.Adaptive dependency version + +7.0.2 +[new] quality and stream feature selection +[new] enable HLS live streams +[new] stream and language labelling +[chg] separately enable local/remote history +[chg] restore unsupported compatibility for Kodi v19 (Matrix) +[fix] fix various playback issues |contrib: various| +[fix] Limit host connections getting subscription feeds |contrib: cas--| +[fix] fix handling of connection failures +[upd] Translations updated from Kodi Weblate + +7.0.1 +[fix] video duration not showing in lists +[upd] Translations updated from Kodi Weblate + +7.0.0 +[rem] removed support for versions of Kodi pre-Nexus v20 +[rem] removed support for python 2 +[rem] removed dependency on six +[upd] Translations updated from Kodi Weblate + +6.8.25 +[fix] Nexus compatibility with InfoTagVideo |contrib: jurialmunkey| +[chg] make httpd /api url case insensitive due to skin choice of uppercase settings text +[chg] use listitem property for Inputstream Adaptive headers instead of url piped on Nexus+ +[upd] Translations updated from Kodi Weblate + +6.8.24 +[fixup] resolve playback history not being updated +[add] add opus audio support +[upd] use more descript reasons for failed playback +[upd] Translations updated from Kodi Weblate + +6.8.23 +[revert] subscription groups/tags - causing breaking issues + +6.8.21 +[chg] Icons and Fanart updated |contrib: papercore-dev| +[add] Add setting General - Hide short videos (1 minute or less) +[add] Add support for /shorts/video_id format links |contrib: jmbreuer| +[add] Add Fanart to Subscriptions +[add] Access to Saved Playlists +[fix] Display of channel fanart +[fix] Misc missing fanart +[lang] translation updates from Weblate + +6.8.20 +[fix] Fix to_str |contrib: RNavega| +[fix] Fix playback buffering |contrib: RNavega| +[fix] Subtitle language names +[lang] translation updates from Weblate + +6.8.19 [fix] /uri2addon/ endpoint for playback of youtube.com urls [fix] Don't assume addon is installed in home directory |contrib: jfly| [lang] translation updates from Weblate +6.8.18 +[fix] Fix to_str |contrib: RNavega| +[fix] Fix playback buffering |contrib: RNavega| +[lang] translation updates from Weblate + 6.8.17 [fix] Fix comments on Kodi 19+ |contrib: ramateur| [fix] Fix ratebypass diff --git a/plugin.video.youtube/resources/language/resource.language.af_za/strings.po b/plugin.video.youtube/resources/language/resource.language.af_za/strings.po index 21dc74fc06..934f465db4 100644 --- a/plugin.video.youtube/resources/language/resource.language.af_za/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.af_za/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.am_et/strings.po b/plugin.video.youtube/resources/language/resource.language.am_et/strings.po index 2071e5eedf..bed11ebe0f 100644 --- a/plugin.video.youtube/resources/language/resource.language.am_et/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.am_et/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.ar_sa/strings.po b/plugin.video.youtube/resources/language/resource.language.ar_sa/strings.po index 91e4b709fc..9ef08c9e2c 100644 --- a/plugin.video.youtube/resources/language/resource.language.ar_sa/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.ar_sa/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.ast_es/strings.po b/plugin.video.youtube/resources/language/resource.language.ast_es/strings.po index 242f04837d..4f19e75087 100644 --- a/plugin.video.youtube/resources/language/resource.language.ast_es/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.ast_es/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.az_az/strings.po b/plugin.video.youtube/resources/language/resource.language.az_az/strings.po index 9a1fec6f9a..09ea39261b 100644 --- a/plugin.video.youtube/resources/language/resource.language.az_az/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.az_az/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.be_by/strings.po b/plugin.video.youtube/resources/language/resource.language.be_by/strings.po index e94105c13a..98c0859cae 100644 --- a/plugin.video.youtube/resources/language/resource.language.be_by/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.be_by/strings.po @@ -62,7 +62,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -74,15 +74,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -97,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -989,7 +993,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1049,7 +1053,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1177,7 +1181,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1185,11 +1189,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1197,11 +1201,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1235,3 +1239,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.bg_bg/strings.po b/plugin.video.youtube/resources/language/resource.language.bg_bg/strings.po index 02df27a59b..05391323af 100644 --- a/plugin.video.youtube/resources/language/resource.language.bg_bg/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.bg_bg/strings.po @@ -60,8 +60,8 @@ msgid "Always ask for the video quality" msgstr "Запитване за качеството на видеото преди възпроизвеждане" msgctxt "#30010" -msgid "Video quality" -msgstr "Качество на видеото" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -72,16 +72,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -95,6 +95,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + msgctxt "#30020" msgid "Allow 3D" msgstr "Разреши 3D" @@ -986,7 +990,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1046,7 +1050,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1174,7 +1178,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1182,11 +1186,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1194,11 +1198,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1233,6 +1237,130 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Качество на видеото" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + #~ msgctxt "#30100" #~ msgid "Favorites" #~ msgstr "Любими" diff --git a/plugin.video.youtube/resources/language/resource.language.bs_ba/strings.po b/plugin.video.youtube/resources/language/resource.language.bs_ba/strings.po index 799172d7ed..c4053acaa3 100644 --- a/plugin.video.youtube/resources/language/resource.language.bs_ba/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.bs_ba/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.ca_es/strings.po b/plugin.video.youtube/resources/language/resource.language.ca_es/strings.po index 0e97028a78..f5a5af63e6 100644 --- a/plugin.video.youtube/resources/language/resource.language.ca_es/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.ca_es/strings.po @@ -7,14 +7,15 @@ msgstr "" "Project-Id-Version: XBMC-Addons\n" "Report-Msgid-Bugs-To: alanwww1@xbmc.org\n" "POT-Creation-Date: 2015-09-21 11:01+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" +"PO-Revision-Date: 2023-06-24 16:42+0000\n" +"Last-Translator: Christian Gade \n" +"Language-Team: Catalan (Spain) \n" "Language: ca_es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.18\n" msgctxt "Addon Summary" msgid "Plugin for YouTube" @@ -61,7 +62,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +74,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -185,7 +190,7 @@ msgstr "" msgctxt "#30102" msgid "Search" -msgstr "" +msgstr "Cerca" msgctxt "#30103" msgid "Library" @@ -289,7 +294,7 @@ msgstr "" # empty strings from id 30206 to 30499 msgctxt "#30500" msgid "Channels" -msgstr "" +msgstr "Canals" msgctxt "#30501" msgid "Playlists" @@ -597,7 +602,7 @@ msgstr "" msgctxt "#30577" msgid "Settings" -msgstr "" +msgstr "Paràmetres" msgctxt "#30578" msgid "Force SSL certificate verification" @@ -988,7 +993,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1053,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1181,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1189,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1201,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1239,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.cs_cz/strings.po b/plugin.video.youtube/resources/language/resource.language.cs_cz/strings.po index 26ad7f3abf..ca819c284f 100644 --- a/plugin.video.youtube/resources/language/resource.language.cs_cz/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.cs_cz/strings.po @@ -62,8 +62,8 @@ msgid "Always ask for the video quality" msgstr "Vždy se zeptat na kvalitu" msgctxt "#30010" -msgid "Video quality" -msgstr "Kvalita videa" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -74,16 +74,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -97,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p Živě / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -989,8 +993,8 @@ msgid "Reset resume point" msgstr "Obnovit bod" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Použít historii pořehrávání" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1049,8 +1053,8 @@ msgid "Use for live streams" msgstr "Použít pro stream Živě" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "InputStream Adaptive >= 2.0.12 je vyžadován pro stream Živě" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1177,32 +1181,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "Výchozí nastavení přizpůsobení WEBM (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "Proxy je vyžadován pro MPEG-DASH [CR]> 1080p a HDR vyžaduje InputStream Adaptive >= 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Omezení do 30 sn/sek" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "Nahrát" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Adaptivní (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Adaptivní (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1236,6 +1240,158 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Kvalita videa" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Použít historii pořehrávání" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "InputStream Adaptive >= 2.0.12 je vyžadován pro stream Živě" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Omezení do 30 sn/sek" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Adaptivní (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Adaptivní (WEBM/VP9)" + # Kodion Common # empty strings from id 30039 to 30099 #~ msgctxt "#30100" diff --git a/plugin.video.youtube/resources/language/resource.language.cy_gb/strings.po b/plugin.video.youtube/resources/language/resource.language.cy_gb/strings.po index 026cf80311..809c2f92ec 100644 --- a/plugin.video.youtube/resources/language/resource.language.cy_gb/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.cy_gb/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.da_dk/strings.po b/plugin.video.youtube/resources/language/resource.language.da_dk/strings.po index aa7f70676f..2e45c218b5 100644 --- a/plugin.video.youtube/resources/language/resource.language.da_dk/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.da_dk/strings.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: XBMC-Addons\n" "Report-Msgid-Bugs-To: alanwww1@xbmc.org\n" "POT-Creation-Date: 2015-09-21 11:01+0000\n" -"PO-Revision-Date: 2022-12-09 20:12+0000\n" +"PO-Revision-Date: 2023-05-06 00:35+0000\n" "Last-Translator: Christian Gade \n" "Language-Team: Danish \n" "Language: da_dk\n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.14.2\n" +"X-Generator: Weblate 4.15.2\n" msgctxt "Addon Summary" msgid "Plugin for YouTube" @@ -62,8 +62,8 @@ msgid "Always ask for the video quality" msgstr "Spørg altid efter videokvaliteten" msgctxt "#30010" -msgid "Video quality" -msgstr "Videokvalitet" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -74,16 +74,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4K)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8K)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -97,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p direkte / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -989,8 +993,8 @@ msgid "Reset resume point" msgstr "Nulstil genoptagelsesposition" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Brug afspilningshistorik (set, sporing af genoptagelse)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1049,8 +1053,8 @@ msgid "Use for live streams" msgstr "Anvendes til livestreams" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "InputStream Adaptive >= 2.0.12 kræves til livestreams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1177,32 +1181,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "Sæt standard til WEBM-tilpasningssæt (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "Proxy er påkrævet for mpeg-dash vods (se HTTP-server)[CR]> 1080p og HDR kræver InputStream Adaptive >= 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Begræns til 30 fps" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "Uploads" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Adaptiv (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Adaptiv (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1236,6 +1240,158 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "Skjul korte videoer (1 minut eller derunder)" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "Brug alternative klientoplysninger" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "Alternativ #1" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "Alternativ #2" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Videokvalitet" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4K)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8K)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Brug afspilningshistorik (set, sporing af genoptagelse)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "InputStream Adaptive >= 2.0.12 kræves til livestreams" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Begræns til 30 fps" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Adaptiv (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Adaptiv (WEBM/VP9)" + #~ msgctxt "#30900" #~ msgid "Subscriptions groups" #~ msgstr "Abonnementsgrupper" diff --git a/plugin.video.youtube/resources/language/resource.language.de_de/strings.po b/plugin.video.youtube/resources/language/resource.language.de_de/strings.po index dddd56f8d5..e02b442065 100644 --- a/plugin.video.youtube/resources/language/resource.language.de_de/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.de_de/strings.po @@ -5,17 +5,17 @@ msgid "" msgstr "" "Project-Id-Version: XBMC-Addons\n" -"Report-Msgid-Bugs-To: alanwww1@xbmc.org\n" +"Report-Msgid-Bugs-To: translations@kodi.tv\n" "POT-Creation-Date: 2015-09-21 11:01+0000\n" -"PO-Revision-Date: 2022-12-09 20:12+0000\n" -"Last-Translator: Kai Sommerfeld \n" +"PO-Revision-Date: 2023-09-21 13:11+0000\n" +"Last-Translator: Kai Sommerfeld \n" "Language-Team: German \n" "Language: de_de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.14.2\n" +"X-Generator: Weblate 5.0.2\n" msgctxt "Addon Summary" msgid "Plugin for YouTube" @@ -62,8 +62,8 @@ msgid "Always ask for the video quality" msgstr "Immer nach der Videoqualität fragen" msgctxt "#30010" -msgid "Video quality" -msgstr "Videoqualität" +msgid "Maximum video quality" +msgstr "Maximale Videoqualität" msgctxt "#30011" msgid "480p" @@ -74,16 +74,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "1080p (FHD)" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "2160p (4K)" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "4320p (8K)" msgctxt "#30016" msgid "240p" @@ -97,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p Live / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "144p" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -989,8 +993,8 @@ msgid "Reset resume point" msgstr "Wiedergabepunkt zurücksetzen" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Wiedergabeverlauf verwenden (gesehen, ab letzter Position wiedergeben)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "Lokalen Wiedergabeverlauf verwenden (Gesehenstatus, Wiedergabeposition tracken)" msgctxt "#30676" msgid "Just now" @@ -1049,8 +1053,8 @@ msgid "Use for live streams" msgstr "Für Live-Streams verwenden" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "Für Live-Streams wird InputStream Adaptive >= 2.0.12 benötigt" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "Für adaptive Livestreams wird InputStream Adaptive >= 2.0.12 benötigt" msgctxt "#30691" msgid "Airing now" @@ -1177,32 +1181,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "Standardmäßig WEBM-Anpassungsset verwenden (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "HDR-Video aktivieren" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "Für MPEG-DASH-VODs wird ein Proxy benötigt (siehe HTTP-Server)[CR]> 1080p und HDR benötigt InputStream Adaptive >= 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Begrenzen auf 30fps" +msgid "Enable high framerate video" +msgstr "Video mit hohen Frameraten aktivieren" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "1440p (QHD)" msgctxt "#30726" msgid "Uploads" msgstr "Uploads" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Adaptiv (MP4/H264)" +msgid "Enable H.264 video" +msgstr "H.264-Video aktivieren" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Adaptiv (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "VP9-Video aktivieren" msgctxt "#30729" msgid "Remote friendly search" @@ -1236,6 +1240,158 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "Kurze Video ausblenden (1 Minute oder kürzer)" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "Alternative Clientdetails verwenden" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "Alternative #1" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "Alternative #2" + +msgctxt "#30740" +msgid "HLS" +msgstr "HLS" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "Multi-stream HLS" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "Adaptive HLS" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "MPEG-DASH" + +msgctxt "#30744" +msgid "Original" +msgstr "Original" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "Synchronisiert" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "Beschreibend" + +msgctxt "#30747" +msgid "Alternate" +msgstr "Alternativ" + +msgctxt "#30748" +msgid "Stream features" +msgstr "Stream-Eigenschaften" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "AV1-Video aktivieren" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "Vorbis-Audio aktivieren" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "Opus-Audio aktivieren" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "AAC-Audio aktivieren" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "Surround-Sound-Audio aktivieren" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "AC-3-Audio aktivieren" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "EAC-3-Audio aktivieren" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "DTS-Audio aktivieren" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "Ähnliche/doppelte Streams entfernen" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "Streamauswahl" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "Qualitätsauswahl" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "Automatik und Qualitätsauswahl" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "Wiedergabeverlauf auf Youtube aktualisieren" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "Mehrsprachig" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "Multi-Audio" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Videoqualität" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Wiedergabeverlauf verwenden (gesehen, ab letzter Position wiedergeben)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "Für Live-Streams wird InputStream Adaptive >= 2.0.12 benötigt" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Begrenzen auf 30fps" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Adaptiv (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Adaptiv (WEBM/VP9)" + #~ msgctxt "#30900" #~ msgid "Subscriptions groups" #~ msgstr "Abo-Gruppen" diff --git a/plugin.video.youtube/resources/language/resource.language.el_gr/strings.po b/plugin.video.youtube/resources/language/resource.language.el_gr/strings.po index 9500e454d7..69687e40fb 100644 --- a/plugin.video.youtube/resources/language/resource.language.el_gr/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.el_gr/strings.po @@ -62,8 +62,8 @@ msgid "Always ask for the video quality" msgstr "Πάντα ερώτηση για την ποιότητα του βίντεο" msgctxt "#30010" -msgid "Video quality" -msgstr "Ποιότητα βίντεο" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -74,16 +74,16 @@ msgid "720p (HD)" msgstr "720p (ΥΕ)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (ΥΕ)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -97,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p Ζωντανά / 720p (ΥΕ)" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -989,8 +993,8 @@ msgid "Reset resume point" msgstr "Επαναφορά σημείου συνέχισης" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Κάνε χρήση ιστορικού (προβληθέντα, συνέχιση παρακολούθησης)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1049,8 +1053,8 @@ msgid "Use for live streams" msgstr "Κάνε χρήση για ζωντανές ροές" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "Απαιτείται InputStream Adaptive >= 2.0.12 για τις ζωντανές ροές" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1177,32 +1181,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "Εξ ορισμού σε σετ προσαρμογής WEBM (4Κ)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "Απαιτείται μεσολαβητής για ροές κατ'απαίτηση mpeg-dash (βλ. Μεσολαβητής HTTP)[CR]Τα > 1080p και HDR απαιτούν το InputStream Adaptive >= 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Περιορισμός στα 30κ/δ" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (ΥΕ)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "Απεσταλμένα" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Προσαρμοζόμενη (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Προσαρμοζόμενη (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1236,6 +1240,158 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Ποιότητα βίντεο" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (ΥΕ)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Κάνε χρήση ιστορικού (προβληθέντα, συνέχιση παρακολούθησης)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "Απαιτείται InputStream Adaptive >= 2.0.12 για τις ζωντανές ροές" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Περιορισμός στα 30κ/δ" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (ΥΕ)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Προσαρμοζόμενη (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Προσαρμοζόμενη (WEBM/VP9)" + # Kodion Common # empty strings from id 30037 to 30099 #~ msgctxt "#30100" diff --git a/plugin.video.youtube/resources/language/resource.language.en_au/strings.po b/plugin.video.youtube/resources/language/resource.language.en_au/strings.po index 637ec19148..fe488c862a 100644 --- a/plugin.video.youtube/resources/language/resource.language.en_au/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.en_au/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,7 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" -# empty strings 30019 +msgctxt "#30019" +msgid "144p" +msgstr "" + msgctxt "#30020" msgid "Allow 3D" msgstr "" @@ -988,7 +991,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1051,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1179,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1187,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1199,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1237,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.en_gb/strings.po b/plugin.video.youtube/resources/language/resource.language.en_gb/strings.po index 4214e50687..6856bd1094 100644 --- a/plugin.video.youtube/resources/language/resource.language.en_gb/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.en_gb/strings.po @@ -65,7 +65,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -77,15 +77,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -100,7 +100,9 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" -# empty strings 30019 +msgctxt "#30019" +msgid "144p" +msgstr "" msgctxt "#30020" msgid "Allow 3D" @@ -996,7 +998,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1056,7 +1058,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1184,7 +1186,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1192,11 +1194,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1204,11 +1206,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1242,3 +1244,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.en_nz/strings.po b/plugin.video.youtube/resources/language/resource.language.en_nz/strings.po index 0ab589df6a..a29883cd8c 100644 --- a/plugin.video.youtube/resources/language/resource.language.en_nz/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.en_nz/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,7 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" -# empty strings 30019 +msgctxt "#30019" +msgid "144p" +msgstr "" + msgctxt "#30020" msgid "Allow 3D" msgstr "" @@ -988,7 +991,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1051,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1179,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1187,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1199,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1237,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.en_us/strings.po b/plugin.video.youtube/resources/language/resource.language.en_us/strings.po index 43053c5073..3ad4c774e0 100644 --- a/plugin.video.youtube/resources/language/resource.language.en_us/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.en_us/strings.po @@ -62,7 +62,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -74,15 +74,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -97,7 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" -# empty strings 30019 +msgctxt "#30019" +msgid "144p" +msgstr "" + msgctxt "#30020" msgid "Allow 3D" msgstr "" @@ -989,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1049,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1177,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1185,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1197,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1235,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.eo/strings.po b/plugin.video.youtube/resources/language/resource.language.eo/strings.po index d9660b9012..c31ae9a47a 100644 --- a/plugin.video.youtube/resources/language/resource.language.eo/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.eo/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.es_ar/strings.po b/plugin.video.youtube/resources/language/resource.language.es_ar/strings.po index 2509bbe94b..27d3e23abc 100644 --- a/plugin.video.youtube/resources/language/resource.language.es_ar/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.es_ar/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.es_es/strings.po b/plugin.video.youtube/resources/language/resource.language.es_es/strings.po index 39f952e157..8b829373f3 100644 --- a/plugin.video.youtube/resources/language/resource.language.es_es/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.es_es/strings.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: XBMC-Addons\n" "Report-Msgid-Bugs-To: translations@kodi.tv\n" "POT-Creation-Date: 2015-09-21 11:01+0000\n" -"PO-Revision-Date: 2023-02-17 18:08+0000\n" +"PO-Revision-Date: 2023-09-21 13:11+0000\n" "Last-Translator: José Antonio Alvarado \n" "Language-Team: Spanish (Spain) \n" "Language: es_es\n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.15.2\n" +"X-Generator: Weblate 5.0.2\n" msgctxt "Addon Summary" msgid "Plugin for YouTube" @@ -62,8 +62,8 @@ msgid "Always ask for the video quality" msgstr "Preguntar siempre por calidad de vídeo" msgctxt "#30010" -msgid "Video quality" -msgstr "Calidad de vídeo" +msgid "Maximum video quality" +msgstr "Máxima calidad de vídeo" msgctxt "#30011" msgid "480p" @@ -74,16 +74,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "1080p (FHD)" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "2160p (4K)" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "4320p (8K)" msgctxt "#30016" msgid "240p" @@ -97,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p En Directo / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "144p" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -598,7 +602,7 @@ msgstr "¡Vaya! Algo ha fallado" msgctxt "#30577" msgid "Settings" -msgstr "Configuración" +msgstr "Ajustes" msgctxt "#30578" msgid "Force SSL certificate verification" @@ -718,7 +722,7 @@ msgstr "Búsqueda Rápida (Incógnito)" msgctxt "#30607" msgid "Audio only" -msgstr "Reproducir solo audio" +msgstr "Sólo audio" msgctxt "#30608" msgid "Allow developer keys" @@ -989,8 +993,8 @@ msgid "Reset resume point" msgstr "Restablecer punto de reanudación" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Usar historial de reproducción (visto, seguimiento de reanudación)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "Usar historial de reproducción local (vistos, puntos de reanudación)" msgctxt "#30676" msgid "Just now" @@ -1049,8 +1053,8 @@ msgid "Use for live streams" msgstr "Usar para streams en directo" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "Para emisiones en directo es necesario InputStream Adaptive 2.0.12 o superior" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "Se requiere InputStream Adaptive >=2.0.12 para los emisiones adaptativas en directo" msgctxt "#30691" msgid "Airing now" @@ -1122,7 +1126,7 @@ msgstr "Sin título" msgctxt "#30708" msgid "Play audio only" -msgstr "Reproducir solo audio" +msgstr "Reproducir sólo audio" msgctxt "#30709" msgid "Failed to retrieve Watch Later playlist id. To increase the chances of retrieval add 8-10 videos to Watch Later via the web/app and retry." @@ -1177,32 +1181,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "Establecer por defecto WEBM adaptativo (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "Habilitar vídeo HDR" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "Para VODs mpeg-dash (ver Servidor HTTP)[CR]> 1080p y HDR requieren InputStream Adaptive 2.3.14 o superior" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Limitar a 30fps" +msgid "Enable high framerate video" +msgstr "Habilitar vídeo con tasas altas de fotogramas" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "1440p (QHD)" msgctxt "#30726" msgid "Uploads" msgstr "Subidas" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Adaptativo (MP4/H264)" +msgid "Enable H.264 video" +msgstr "Habilitar vídeo H.264" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Adaptativo (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "Habilitar vídeo VP9" msgctxt "#30729" msgid "Remote friendly search" @@ -1236,6 +1240,158 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "Ocultar vídeos cortos (1 minuto o menos)" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "Utilizar datos alternativos del cliente" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "Alternativa #1" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "Alternativa #2" + +msgctxt "#30740" +msgid "HLS" +msgstr "HLS" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "HLS Multi-emisión" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "HLS Adaptativo" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "MPEG-DASH" + +msgctxt "#30744" +msgid "Original" +msgstr "Original" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "Doblado" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "Descriptivo" + +msgctxt "#30747" +msgid "Alternate" +msgstr "Alternativo" + +msgctxt "#30748" +msgid "Stream features" +msgstr "Funcionalidades de emisión" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "Habilitar vídeo AV1" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "Habilitar audio Vorbis" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "Habilitar audio Opus" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "Habilitar audio AAC" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "Habilitar audio Surround" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "Habilitar audio AC-3" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "Habilitar audio EAC-3" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "Habilitar audio DTS" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "Eliminar emisiones similares/duplicadas" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "Selección de emisión" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "Selección de calidad" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "Selección de calidad automática" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "Actualizar historial de reproducción en Youtube" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "Multi-idioma" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "Multiaudio" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Calidad de vídeo" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Usar historial de reproducción (visto, seguimiento de reanudación)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "Para emisiones en directo es necesario InputStream Adaptive 2.0.12 o superior" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Limitar a 30fps" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Adaptativo (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Adaptativo (WEBM/VP9)" + #~ msgctxt "#30900" #~ msgid "Subscriptions groups" #~ msgstr "Grupos de suscripciones" diff --git a/plugin.video.youtube/resources/language/resource.language.es_mx/strings.po b/plugin.video.youtube/resources/language/resource.language.es_mx/strings.po index ecd0601c33..fdecaa638d 100644 --- a/plugin.video.youtube/resources/language/resource.language.es_mx/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.es_mx/strings.po @@ -62,8 +62,8 @@ msgid "Always ask for the video quality" msgstr "Preguntar siempre la calidad de video" msgctxt "#30010" -msgid "Video quality" -msgstr "Calidad de video" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -74,16 +74,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -97,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p En Vivo / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -989,8 +993,8 @@ msgid "Reset resume point" msgstr "Restablecer punto de reanudación de reproducción" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Usar historial de reproducción (visto, seguimiento de reanudación)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1049,8 +1053,8 @@ msgid "Use for live streams" msgstr "Usar para transmisiones en vivo" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "Para emisiones en vivo es necesario InputStream Adaptive 2.0.12 o superior" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1177,32 +1181,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "Predeterminar al conjunton de adaptación WebM (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "Se requiere un proxy para mpeg-dash VODs (ver HTTP server)[CR]> 1080p y HDR requieren InpuStreamAdaptative >= 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Limitar a 30fps" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "Subidas" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Adaptive (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1236,6 +1240,158 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Calidad de video" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Usar historial de reproducción (visto, seguimiento de reanudación)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "Para emisiones en vivo es necesario InputStream Adaptive 2.0.12 o superior" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Limitar a 30fps" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Adaptive (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Adaptive (WEBM/VP9)" + # Kodion Common # empty strings from id 30039 to 30099 #~ msgctxt "#30100" diff --git a/plugin.video.youtube/resources/language/resource.language.et_ee/strings.po b/plugin.video.youtube/resources/language/resource.language.et_ee/strings.po index a255ed88a7..39a439c6b3 100644 --- a/plugin.video.youtube/resources/language/resource.language.et_ee/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.et_ee/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.eu_es/strings.po b/plugin.video.youtube/resources/language/resource.language.eu_es/strings.po index 4f3dfb57e2..4a36884f8b 100644 --- a/plugin.video.youtube/resources/language/resource.language.eu_es/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.eu_es/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.fa_af/strings.po b/plugin.video.youtube/resources/language/resource.language.fa_af/strings.po index e9c51de6ff..0f06ef16f2 100644 --- a/plugin.video.youtube/resources/language/resource.language.fa_af/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.fa_af/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.fa_ir/strings.po b/plugin.video.youtube/resources/language/resource.language.fa_ir/strings.po index e33540cf22..3c2ae297b9 100644 --- a/plugin.video.youtube/resources/language/resource.language.fa_ir/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.fa_ir/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.fi_fi/strings.po b/plugin.video.youtube/resources/language/resource.language.fi_fi/strings.po index 5236bd05b1..e89c1edbc2 100644 --- a/plugin.video.youtube/resources/language/resource.language.fi_fi/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.fi_fi/strings.po @@ -5,9 +5,9 @@ msgid "" msgstr "" "Project-Id-Version: XBMC-Addons\n" -"Report-Msgid-Bugs-To: alanwww1@xbmc.org\n" +"Report-Msgid-Bugs-To: translations@kodi.tv\n" "POT-Creation-Date: 2015-09-21 11:01+0000\n" -"PO-Revision-Date: 2022-12-09 20:12+0000\n" +"PO-Revision-Date: 2023-09-21 13:11+0000\n" "Last-Translator: Oskari Lavinto \n" "Language-Team: Finnish \n" "Language: fi_fi\n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Weblate 4.14.2\n" +"X-Generator: Weblate 5.0.2\n" msgctxt "Addon Summary" msgid "Plugin for YouTube" @@ -60,8 +60,8 @@ msgid "Always ask for the video quality" msgstr "Kysy aina videon laatu" msgctxt "#30010" -msgid "Video quality" -msgstr "Videon laatu" +msgid "Maximum video quality" +msgstr "Videoiden enimmäislaatu" msgctxt "#30011" msgid "480p" @@ -72,15 +72,15 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "1080p (FHD)" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "2160p (4K)" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "4320p (8K)" msgctxt "#30016" @@ -95,6 +95,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p suora/720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "144p" + msgctxt "#30020" msgid "Allow 3D" msgstr "Salli 3D" @@ -984,8 +988,8 @@ msgid "Reset resume point" msgstr "Unohda katselutilanne" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Käytä toistohistoriaa (katsotut, toiston jatko)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "Käytä paikallista toistohistoriaa (katsotut, toiston jatkaminen)" msgctxt "#30676" msgid "Just now" @@ -1044,8 +1048,8 @@ msgid "Use for live streams" msgstr "Käytä livelähetyksille" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "Livelähetykset edellyttävät vähintään InputStream Adaptive -versiota 2.0.12." +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "Adaptiivinen live-toisto vaatii InputStream Adaptive -lisäosan >= 2.0.12" msgctxt "#30691" msgid "Airing now" @@ -1172,32 +1176,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "Käytä oletusarvoisesti WEBM-mukautuvuussarjaa (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "Tue HDR-videota" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "MPEG-DASH VOD -videot edellyttävät välityspalvelimen käyttöä (katso HTTP-palvelin).[CR]1080p ja sitä suuremmat tarkkudet sekä HDR tarvitsevat vähintään InputStream Adaptive -versiota 2.3.14." msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Rajoita 30 kuvaan sekunnissa (fps)" +msgid "Enable high framerate video" +msgstr "Tue korkean kuvanopeuden videota" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "1440p (QHD)" msgctxt "#30726" msgid "Uploads" msgstr "Lähetykset" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Mukautuva (MP4/H264)" +msgid "Enable H.264 video" +msgstr "Tue H.264-videota" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Mukautuva (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "Tue VP9-videota" msgctxt "#30729" msgid "Remote friendly search" @@ -1231,6 +1235,158 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "Piilota lyhyet videot (1 minuuttia tai alle)" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "Käytä vaihtoehtoisia päätetietoja" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "Vaihtoehto #1" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "Vaihtoehto #2" + +msgctxt "#30740" +msgid "HLS" +msgstr "HLS" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "Monivirtainen HLS" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "Adaptiivinen HLS" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "MPEG-DASH" + +msgctxt "#30744" +msgid "Original" +msgstr "Alkuperäinen" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "Dubattu" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "Kuvaava" + +msgctxt "#30747" +msgid "Alternate" +msgstr "Vaihtoehtoinen" + +msgctxt "#30748" +msgid "Stream features" +msgstr "Virran ominaisuudet" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "Tue AV1-videota" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "Tue Vorbis-ääntä" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "Tue Opus-ääntä" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "Tue AAC-ääntä" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "Tue tilaääntä" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "Tue AC-3-ääntä" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "Tue EAC-3-ääntä" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "Tue DTS-ääntä" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "Poista samantapaiset virrat tai niiden kaksoiskappaleet" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "Virran valinta" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "Laadun valinta" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "Automaattinen + Laadun valinta" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "Päivitä toistohistoria YouTubeen" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "Monikielinen" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "Moniääninen" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Videon laatu" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4K)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8K)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Käytä toistohistoriaa (katsotut, toiston jatko)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "Livelähetykset edellyttävät vähintään InputStream Adaptive -versiota 2.0.12." + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Rajoita 30 kuvaan sekunnissa (fps)" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Mukautuva (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Mukautuva (WEBM/VP9)" + #~ msgctxt "#30900" #~ msgid "Subscriptions groups" #~ msgstr "Tilausryhmät" diff --git a/plugin.video.youtube/resources/language/resource.language.fo_fo/strings.po b/plugin.video.youtube/resources/language/resource.language.fo_fo/strings.po index f9138bd023..33b5a603d3 100644 --- a/plugin.video.youtube/resources/language/resource.language.fo_fo/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.fo_fo/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.fr_ca/strings.po b/plugin.video.youtube/resources/language/resource.language.fr_ca/strings.po index e196408159..c41cee6faa 100644 --- a/plugin.video.youtube/resources/language/resource.language.fr_ca/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.fr_ca/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.fr_fr/strings.po b/plugin.video.youtube/resources/language/resource.language.fr_fr/strings.po index b402775ffd..982e0138b1 100644 --- a/plugin.video.youtube/resources/language/resource.language.fr_fr/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.fr_fr/strings.po @@ -5,17 +5,17 @@ msgid "" msgstr "" "Project-Id-Version: XBMC-Addons\n" -"Report-Msgid-Bugs-To: translations@kodi.tv\n" +"Report-Msgid-Bugs-To: alanwww1@xbmc.org\n" "POT-Creation-Date: 2015-09-21 11:01+0000\n" -"PO-Revision-Date: 2022-12-27 12:15+0000\n" -"Last-Translator: skypichat \n" +"PO-Revision-Date: 2023-08-24 22:11+0000\n" +"Last-Translator: SlashAndRoses \n" "Language-Team: French (France) \n" "Language: fr_fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.15\n" +"X-Generator: Weblate 4.18.2\n" msgctxt "Addon Summary" msgid "Plugin for YouTube" @@ -60,8 +60,8 @@ msgid "Always ask for the video quality" msgstr "Toujours demander la qualité de la vidéo" msgctxt "#30010" -msgid "Video quality" -msgstr "Qualité vidéo" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -72,16 +72,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4K)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8K)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -95,6 +95,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p Live / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + msgctxt "#30020" msgid "Allow 3D" msgstr "Autoriser la 3D" @@ -984,8 +988,8 @@ msgid "Reset resume point" msgstr "Réinitialiser le point de reprise de lecture" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Utiliser l'historique de lecture (vu, reprise de lecture)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1044,8 +1048,8 @@ msgid "Use for live streams" msgstr "Utiliser pour le live" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "InputStream Adaptive >= 2.0.12 est requis pour le live" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1172,32 +1176,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "Défaut mis à WEBM adaptation (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "Un proxy est requis pour les vods mpeg-dash (voir serveur HTTP)[CR]> 1080p et HDR nécessitent InputStream Adaptive >= 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Limiter à 30fps" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "Téléversements" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Adaptatif (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Adaptatif (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1231,6 +1235,158 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "Cacher les vidéos courtes (1 minute ou moins)" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "Utiliser les détails du client alternatif" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "Alternative #1" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "Alternative #2" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Qualité vidéo" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4K)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8K)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Utiliser l'historique de lecture (vu, reprise de lecture)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "InputStream Adaptive >= 2.0.12 est requis pour le live" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Limiter à 30fps" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Adaptatif (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Adaptatif (WEBM/VP9)" + #~ msgctxt "#30100" #~ msgid "Favorites" #~ msgstr "Favoris" diff --git a/plugin.video.youtube/resources/language/resource.language.gl_es/strings.po b/plugin.video.youtube/resources/language/resource.language.gl_es/strings.po index 8ab10094c4..37d113aee0 100644 --- a/plugin.video.youtube/resources/language/resource.language.gl_es/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.gl_es/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.he_il/strings.po b/plugin.video.youtube/resources/language/resource.language.he_il/strings.po index efc596cc38..cf7fb2d857 100644 --- a/plugin.video.youtube/resources/language/resource.language.he_il/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.he_il/strings.po @@ -62,8 +62,8 @@ msgid "Always ask for the video quality" msgstr "תמיד בקש את איכות הווידאו" msgctxt "#30010" -msgid "Video quality" -msgstr "איכות וידאו" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -74,16 +74,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -97,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p חי / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -989,7 +993,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1049,7 +1053,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1177,7 +1181,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1185,11 +1189,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1197,11 +1201,11 @@ msgid "Uploads" msgstr "העלאות" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1235,3 +1239,127 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "איכות וידאו" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" diff --git a/plugin.video.youtube/resources/language/resource.language.hi_in/strings.po b/plugin.video.youtube/resources/language/resource.language.hi_in/strings.po index 123f0a1597..5ac65123fc 100644 --- a/plugin.video.youtube/resources/language/resource.language.hi_in/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.hi_in/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.hr_hr/strings.po b/plugin.video.youtube/resources/language/resource.language.hr_hr/strings.po index c57fe8e39f..7d5d613969 100644 --- a/plugin.video.youtube/resources/language/resource.language.hr_hr/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.hr_hr/strings.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: XBMC-Addons\n" -"Report-Msgid-Bugs-To: translations@kodi.tv\n" +"Report-Msgid-Bugs-To: alanwww1@xbmc.org\n" "POT-Creation-Date: 2015-09-21 11:01+0000\n" "PO-Revision-Date: 2023-01-04 21:15+0000\n" "Last-Translator: gogogogi \n" @@ -62,8 +62,8 @@ msgid "Always ask for the video quality" msgstr "Uvijek upitaj za video kvalitetu" msgctxt "#30010" -msgid "Video quality" -msgstr "Video kvaliteta" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -74,16 +74,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -97,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p Uživo / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -989,8 +993,8 @@ msgid "Reset resume point" msgstr "Poništi vrijeme nastavka gledanja" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Koristi povijest reprodukcije (pogledano, nastavi praćenje)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1049,8 +1053,8 @@ msgid "Use for live streams" msgstr "Koristi za emitiranja uživo" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "InputStream Adaptive >= 2.0.12 je potreban za emitiranje uživo" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1177,32 +1181,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "Zadano za paket WEBM prilagodbe (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "Proxy je potreban za mpeg-dash video na zahtjev (vod) (pogledajte HTTP poslužitelj)[CR]> 1080p i HDR zahtijevaju InputStream Adaptive >= 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Ograniči na 30 sl/sek" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "Slanja" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Prilagodljiva (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Prilagodljiva (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1235,3 +1239,155 @@ msgstr "Uređeno" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "Sakrij kratke video snimke (1 minuta ii manje)" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Video kvaliteta" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Koristi povijest reprodukcije (pogledano, nastavi praćenje)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "InputStream Adaptive >= 2.0.12 je potreban za emitiranje uživo" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Ograniči na 30 sl/sek" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Prilagodljiva (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Prilagodljiva (WEBM/VP9)" diff --git a/plugin.video.youtube/resources/language/resource.language.hu_hu/strings.po b/plugin.video.youtube/resources/language/resource.language.hu_hu/strings.po index f566b65e74..3b23d81e39 100644 --- a/plugin.video.youtube/resources/language/resource.language.hu_hu/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.hu_hu/strings.po @@ -61,8 +61,8 @@ msgid "Always ask for the video quality" msgstr "Mindig kérdezze meg a videó minőségét" msgctxt "#30010" -msgid "Video quality" -msgstr "Videó minőség" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -73,16 +73,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p Élő / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + msgctxt "#30020" msgid "Allow 3D" msgstr "3D engedélyezés" @@ -987,8 +991,8 @@ msgid "Reset resume point" msgstr "Folytatási pont visszaállítása" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Használja a lejátszási előzményeket (megnézte, folytatja a követést)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1047,8 +1051,8 @@ msgid "Use for live streams" msgstr "Használja élő közvetítésekhez" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "InputStream Adaptive >= 2.0.12 szükséges az élő közvetítésekhez" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1175,32 +1179,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "Alapértelmezés a WEBM adaptációs készlethez (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "A Proxyra van szükség az mpeg-dash vod esetén (lásd a HTTP szervert) [CR]> 1080p, és a HDR-hez pedig az InputStream Adaptive kiegészítő szükséges >= 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Legfeljebb 30fps" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "Feltöltések" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Adaptív (Változó MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Adaptív (Változó WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1234,6 +1238,158 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Videó minőség" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Használja a lejátszási előzményeket (megnézte, folytatja a követést)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "InputStream Adaptive >= 2.0.12 szükséges az élő közvetítésekhez" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Legfeljebb 30fps" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Adaptív (Változó MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Adaptív (Változó WEBM/VP9)" + #~ msgctxt "#30100" #~ msgid "Favorites" #~ msgstr "Kedvencek" diff --git a/plugin.video.youtube/resources/language/resource.language.hy_am/strings.po b/plugin.video.youtube/resources/language/resource.language.hy_am/strings.po index b6cfb3892c..5ce4452c43 100644 --- a/plugin.video.youtube/resources/language/resource.language.hy_am/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.hy_am/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.id_id/strings.po b/plugin.video.youtube/resources/language/resource.language.id_id/strings.po index 162d1287b2..15b13057d8 100644 --- a/plugin.video.youtube/resources/language/resource.language.id_id/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.id_id/strings.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: XBMC-Addons\n" -"Report-Msgid-Bugs-To: translations@kodi.tv\n" +"Report-Msgid-Bugs-To: alanwww1@xbmc.org\n" "POT-Creation-Date: 2015-09-21 11:01+0000\n" "PO-Revision-Date: 2022-12-27 12:15+0000\n" "Last-Translator: Nao3Line Prez \n" @@ -62,8 +62,8 @@ msgid "Always ask for the video quality" msgstr "Selalu tanyakan kualitas video" msgctxt "#30010" -msgid "Video quality" -msgstr "Kualitas video" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -74,16 +74,16 @@ msgid "720p (HD)" msgstr "720p HD" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p FHD (2K)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p UHD (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p UHDTV (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -97,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "Siaran Live 1080p / Video 720p" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -989,8 +993,8 @@ msgid "Reset resume point" msgstr "Setel ulang titik resume" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Gunakan riwayat pemutaran (ditonton, lanjutkan pelacakan)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1049,8 +1053,8 @@ msgid "Use for live streams" msgstr "Gunakan untuk streaming langsung" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "InputStream Adaptive >= 2.0.12 diperlukan untuk streaming langsung" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1177,32 +1181,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "Default ke set adaptasi WEBM (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "Proksi diperlukan untuk mpeg-dash vods (lihat HTTP Server)[CR]> 1080p dan HDR memerlukan InputStream Adaptive >= 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Batasi 30fps" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p FHD+ (2K)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "Unggahan" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Adaptif (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Adaptif (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1235,3 +1239,155 @@ msgstr "Disunting" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "Sembunyikan video pendek (1 menit atau kurang)" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Kualitas video" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p FHD (2K)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p UHD (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p UHDTV (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Gunakan riwayat pemutaran (ditonton, lanjutkan pelacakan)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "InputStream Adaptive >= 2.0.12 diperlukan untuk streaming langsung" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Batasi 30fps" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p FHD+ (2K)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Adaptif (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Adaptif (WEBM/VP9)" diff --git a/plugin.video.youtube/resources/language/resource.language.is_is/strings.po b/plugin.video.youtube/resources/language/resource.language.is_is/strings.po index 0d23494e12..34f59a53b3 100644 --- a/plugin.video.youtube/resources/language/resource.language.is_is/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.is_is/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.it_it/strings.po b/plugin.video.youtube/resources/language/resource.language.it_it/strings.po index 46d58671d7..834be5844c 100644 --- a/plugin.video.youtube/resources/language/resource.language.it_it/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.it_it/strings.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: XBMC-Addons\n" "Report-Msgid-Bugs-To: translations@kodi.tv\n" "POT-Creation-Date: 2015-09-21 11:01+0000\n" -"PO-Revision-Date: 2023-01-20 10:15+0000\n" +"PO-Revision-Date: 2023-09-14 03:24+0000\n" "Last-Translator: Massimo Pissarello \n" "Language-Team: Italian \n" "Language: it_it\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.15.1\n" +"X-Generator: Weblate 5.0.1\n" msgctxt "Addon Summary" msgid "Plugin for YouTube" @@ -57,15 +57,15 @@ msgstr "Usa MPEG-DASH" msgctxt "#30008" msgid "Configure InputStream Adaptive" -msgstr "Configura InputStream adattivo" +msgstr "Configura InputStream Adaptive" msgctxt "#30009" msgid "Always ask for the video quality" msgstr "Chiedi sempre la qualità del video" msgctxt "#30010" -msgid "Video quality" -msgstr "Qualità video" +msgid "Maximum video quality" +msgstr "Massima qualità video" msgctxt "#30011" msgid "480p" @@ -76,16 +76,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "1080p (FHD)" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "2160p (4K)" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "4320p (8K)" msgctxt "#30016" msgid "240p" @@ -99,6 +99,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p Live/720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "144p" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -448,7 +452,7 @@ msgstr "Video non piaciuti" msgctxt "#30539" msgid "Live" -msgstr "Live" +msgstr "Dal vivo" msgctxt "#30540" msgid "Play with..." @@ -512,7 +516,7 @@ msgstr "Elimina database cronologia ricerche" msgctxt "#30555" msgid "Clear function cache" -msgstr "Pulisci cache funzioni" +msgstr "Svuota cache delle funzioni" msgctxt "#30556" msgid "Clear search history" @@ -608,7 +612,7 @@ msgstr "Forza la verifica del certificato SSL" msgctxt "#30579" msgid "MPEG-DASH is enabled in the YouTube settings, however InputStream Adaptive appears to be disabled. Would you like to enable InputStream Adaptive now?" -msgstr "MPEG-DASH è abilitato nelle impostazioni di YouTube, ma l'InputStream adattivo sembra disabilitato. Vuoi abilitare l'InputStream adattivo adesso?" +msgstr "MPEG-DASH è abilitato nelle impostazioni di YouTube, ma InputStream Adaptive sembra disabilitato. Vuoi abilitare InputStream Adaptive adesso?" msgctxt "#30580" msgid "Reset access manager" @@ -696,7 +700,7 @@ msgstr "Configura sottotitoli" msgctxt "#30601" msgid "%s with %s fallback" -msgstr "%s con %s fallback" +msgstr "%s con %s di riserva" msgctxt "#30602" msgid "No auto-generated" @@ -784,7 +788,7 @@ msgstr "Acquisti" msgctxt "#30623" msgid "Install InputStream Helper" -msgstr "Installa assistente InputStream" +msgstr "Installa InputStream Helper" msgctxt "#30624" msgid "Requires Kodi 17+" @@ -792,7 +796,7 @@ msgstr "Hai bisogno di Kodi 17+" msgctxt "#30625" msgid "InputStream Helper is already installed." -msgstr "L'assistente InputStream è già installato." +msgstr "InputStream Helper è già installato." msgctxt "#30626" msgid "Delete temporary files" @@ -888,11 +892,11 @@ msgstr "La chiave API non è corretta. Impostazioni - API - Chiave API" msgctxt "#30649" msgid "Client Id is incorrect. Settings - API - API Id" -msgstr "L'ID cliente non è corretto. Impostazioni - API - ID API" +msgstr "L'ID client non è corretto. Impostazioni - API - ID API" msgctxt "#30650" msgid "Client Secret is incorrect. Settings - API - API Secret" -msgstr "La password cliente non è corretta. Impostazioni - API - Password API" +msgstr "La password client non è corretta. Impostazioni - API - Password API" msgctxt "#30651" msgid "Location" @@ -991,8 +995,8 @@ msgid "Reset resume point" msgstr "Reimposta punto di ripresa" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Usa cronologia di riproduzione (guardato, riprendi)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "Usa cronologia di riproduzione locale (guardato, riprendi tracciamento)" msgctxt "#30676" msgid "Just now" @@ -1048,11 +1052,11 @@ msgstr "Usa per i video" msgctxt "#30689" msgid "Use for live streams" -msgstr "Usa per i live stream" +msgstr "Usa per i flussi live" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "InputStream adattivo >= 2.0.12 è richiesto per i live streaming" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "Per i flussi live adattivi è richiesto InputStream Adaptive >= 2.0.12" msgctxt "#30691" msgid "Airing now" @@ -1179,32 +1183,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "Impostazione predefinita per WEBM (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "Abilita video HDR" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "Il proxy è richiesto per mpeg-dash vods (vedi HTTP Server)[CR]> 1080p e HDR richiede InputStream adattivo>= 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Limita a 30 fps" +msgid "Enable high framerate video" +msgstr "Abilita video con framerate elevato" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "1440p (QHD)" msgctxt "#30726" msgid "Uploads" msgstr "Caricamenti" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Adattivo (MP4/H264)" +msgid "Enable H.264 video" +msgstr "Abilita video H.264" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Adattivo (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "Abilita video VP9" msgctxt "#30729" msgid "Remote friendly search" @@ -1238,6 +1242,158 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "Nascondi video brevi (1 minuto o meno)" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "Usa dettagli alternativi del cliente" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "Alternativo #1" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "Alternativo #2" + +msgctxt "#30740" +msgid "HLS" +msgstr "HLS" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "HLS multi-stream" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "HLS adattivo" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "MPEG-DASH" + +msgctxt "#30744" +msgid "Original" +msgstr "Originale" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "Doppiato" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "Descrittivo" + +msgctxt "#30747" +msgid "Alternate" +msgstr "Alternato" + +msgctxt "#30748" +msgid "Stream features" +msgstr "Caratteristiche flusso" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "Abilita video AV1" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "Abilita audio Vorbis" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "Abilita audio Opus" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "Abilita audio AAC" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "Abilita audio surround" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "Abilita audio AC-3" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "Abilita audio EAC-3" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "Abilita audio DTS" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "Rimuovi flussi simili/duplicati" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "Selezione flusso" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "Selezione qualità" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "Selezione automatica + qualità" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "Aggiorna cronologia di riproduzione su Youtube" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "Multi lingua" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "Multi audio" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Qualità video" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Usa cronologia di riproduzione (guardato, riprendi)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "InputStream adattivo >= 2.0.12 è richiesto per i live streaming" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Limita a 30 fps" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Adattivo (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Adattivo (WEBM/VP9)" + #~ msgctxt "#30900" #~ msgid "Subscriptions groups" #~ msgstr "Gruppi di abbonamenti" diff --git a/plugin.video.youtube/resources/language/resource.language.ja_jp/strings.po b/plugin.video.youtube/resources/language/resource.language.ja_jp/strings.po index 401f2ceda8..e7da305f4e 100644 --- a/plugin.video.youtube/resources/language/resource.language.ja_jp/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.ja_jp/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.kn_in/strings.po b/plugin.video.youtube/resources/language/resource.language.kn_in/strings.po index 27a7197a74..a2d08d5afb 100644 --- a/plugin.video.youtube/resources/language/resource.language.kn_in/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.kn_in/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.ko_kr/strings.po b/plugin.video.youtube/resources/language/resource.language.ko_kr/strings.po index 7269be37c0..9d6de68b7f 100644 --- a/plugin.video.youtube/resources/language/resource.language.ko_kr/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.ko_kr/strings.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: XBMC-Addons\n" "Report-Msgid-Bugs-To: alanwww1@xbmc.org\n" "POT-Creation-Date: 2015-09-21 11:01+0000\n" -"PO-Revision-Date: 2022-11-20 05:15+0000\n" +"PO-Revision-Date: 2023-05-06 00:35+0000\n" "Last-Translator: Minho Park \n" "Language-Team: Korean \n" "Language: ko_kr\n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.14.2\n" +"X-Generator: Weblate 4.15.2\n" msgctxt "Addon Summary" msgid "Plugin for YouTube" @@ -61,8 +61,8 @@ msgid "Always ask for the video quality" msgstr "동영상 품질 항상 확인" msgctxt "#30010" -msgid "Video quality" -msgstr "동영상 품질" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -73,16 +73,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p 라이브 / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + msgctxt "#30020" msgid "Allow 3D" msgstr "3D 허용" @@ -987,8 +991,8 @@ msgid "Reset resume point" msgstr "이어 볼 지점 다시 설정" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "재생 이력 사용 (재생 함, 이어볼 지점)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1047,8 +1051,8 @@ msgid "Use for live streams" msgstr "실시간에 사용" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "InputStream Adaptive >= 실시간에는 2.0.12 필요함" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1175,32 +1179,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "기본으로 WEBM 적응 설정 (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "mpeg-dash vods (HTTP 서버 참고)[CR]> 1080p에 프록시가 필요하고 HDR에 InputStream Adaptive >= 2.3.14 필요함" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "30fps 제한" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "업로드한 동영상" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "적응형 (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "적용형 (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1234,6 +1238,158 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "짧은 동영상 숨기기(1분 이하)" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "대체 클라이언트 세부 정보 사용" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "대체 #1" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "대체 #2" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "동영상 품질" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "재생 이력 사용 (재생 함, 이어볼 지점)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "InputStream Adaptive >= 실시간에는 2.0.12 필요함" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "30fps 제한" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "적응형 (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "적용형 (WEBM/VP9)" + #~ msgctxt "#30100" #~ msgid "Favorites" #~ msgstr "즐겨찾기" diff --git a/plugin.video.youtube/resources/language/resource.language.lt_lt/strings.po b/plugin.video.youtube/resources/language/resource.language.lt_lt/strings.po index 2b553ac300..133d8c827e 100644 --- a/plugin.video.youtube/resources/language/resource.language.lt_lt/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.lt_lt/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.lv_lv/strings.po b/plugin.video.youtube/resources/language/resource.language.lv_lv/strings.po index 4ce739b6b0..2a7a36e998 100644 --- a/plugin.video.youtube/resources/language/resource.language.lv_lv/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.lv_lv/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.mi/strings.po b/plugin.video.youtube/resources/language/resource.language.mi/strings.po index 6a3ea02ed5..f105c9f3aa 100644 --- a/plugin.video.youtube/resources/language/resource.language.mi/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.mi/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.mk_mk/strings.po b/plugin.video.youtube/resources/language/resource.language.mk_mk/strings.po index 43c050a670..8190a19107 100644 --- a/plugin.video.youtube/resources/language/resource.language.mk_mk/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.mk_mk/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.ml_in/strings.po b/plugin.video.youtube/resources/language/resource.language.ml_in/strings.po index 0b3758c9b9..7509c941d1 100644 --- a/plugin.video.youtube/resources/language/resource.language.ml_in/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.ml_in/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.mn_mn/strings.po b/plugin.video.youtube/resources/language/resource.language.mn_mn/strings.po index 29c82fb87d..08aeca96b7 100644 --- a/plugin.video.youtube/resources/language/resource.language.mn_mn/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.mn_mn/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.ms_my/strings.po b/plugin.video.youtube/resources/language/resource.language.ms_my/strings.po index be8bfd0c3e..2bbd02b470 100644 --- a/plugin.video.youtube/resources/language/resource.language.ms_my/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.ms_my/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.mt_mt/strings.po b/plugin.video.youtube/resources/language/resource.language.mt_mt/strings.po index d29ab6df7f..0780ad1a38 100644 --- a/plugin.video.youtube/resources/language/resource.language.mt_mt/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.mt_mt/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.my_mm/strings.po b/plugin.video.youtube/resources/language/resource.language.my_mm/strings.po index 224bdb6067..e1465d5257 100644 --- a/plugin.video.youtube/resources/language/resource.language.my_mm/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.my_mm/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.nb_no/strings.po b/plugin.video.youtube/resources/language/resource.language.nb_no/strings.po index 9748ba9072..c405f11146 100644 --- a/plugin.video.youtube/resources/language/resource.language.nb_no/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.nb_no/strings.po @@ -62,8 +62,8 @@ msgid "Always ask for the video quality" msgstr "Alltid spør om videokvalitet" msgctxt "#30010" -msgid "Video quality" -msgstr "Videokvalitet" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -74,16 +74,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -97,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -989,7 +993,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1049,7 +1053,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1177,7 +1181,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1185,11 +1189,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1197,11 +1201,11 @@ msgid "Uploads" msgstr "Opplastninger" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1236,6 +1240,130 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Videokvalitet" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + # Kodion Common # empty strings from id 30038 to 30099 #~ msgctxt "#30100" diff --git a/plugin.video.youtube/resources/language/resource.language.nl_nl/strings.po b/plugin.video.youtube/resources/language/resource.language.nl_nl/strings.po index 6357c96061..9fdb6ec25e 100644 --- a/plugin.video.youtube/resources/language/resource.language.nl_nl/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.nl_nl/strings.po @@ -63,8 +63,8 @@ msgid "Always ask for the video quality" msgstr "Vraag altijd naar video kwaliteit" msgctxt "#30010" -msgid "Video quality" -msgstr "Video Kwaliteit" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -75,16 +75,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -98,6 +98,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p Live / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -990,8 +994,8 @@ msgid "Reset resume point" msgstr "Afspeelpunt resetten" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Gebruik afspeelgeschiedenis (Bekeken, Hervatten)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1050,8 +1054,8 @@ msgid "Use for live streams" msgstr "Gebruik voor livestreams" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "InputStream Adaptive >=2.0.12 vereist voor livestreams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1178,32 +1182,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "Standaard naar WEBM (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "Proxy vereist voor mpeg-dasg vods (zie HTTP server)[CR]> 1080p en HDR vereisen InputStream Adaptive vanaf versie 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Limiteer tot 30fps" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "Uploads" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Adaptief (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Adaptief (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1237,6 +1241,158 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Video Kwaliteit" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Gebruik afspeelgeschiedenis (Bekeken, Hervatten)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "InputStream Adaptive >=2.0.12 vereist voor livestreams" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Limiteer tot 30fps" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Adaptief (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Adaptief (WEBM/VP9)" + # Kodion Common # empty strings from id 30037 to 30099 #~ msgctxt "#30100" diff --git a/plugin.video.youtube/resources/language/resource.language.os_os/strings.po b/plugin.video.youtube/resources/language/resource.language.os_os/strings.po index c408e1ff6e..dad2246911 100644 --- a/plugin.video.youtube/resources/language/resource.language.os_os/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.os_os/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.pl_pl/strings.po b/plugin.video.youtube/resources/language/resource.language.pl_pl/strings.po index db3917799f..9889dd2f81 100644 --- a/plugin.video.youtube/resources/language/resource.language.pl_pl/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.pl_pl/strings.po @@ -5,9 +5,9 @@ msgid "" msgstr "" "Project-Id-Version: XBMC-Addons\n" -"Report-Msgid-Bugs-To: alanwww1@xbmc.org\n" +"Report-Msgid-Bugs-To: translations@kodi.tv\n" "POT-Creation-Date: 2015-09-21 11:01+0000\n" -"PO-Revision-Date: 2022-12-09 20:12+0000\n" +"PO-Revision-Date: 2023-09-14 03:24+0000\n" "Last-Translator: Marek Adamski \n" "Language-Team: Polish \n" "Language: pl_pl\n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.14.2\n" +"X-Generator: Weblate 5.0.1\n" msgctxt "Addon Summary" msgid "Plugin for YouTube" @@ -61,8 +61,8 @@ msgid "Always ask for the video quality" msgstr "Pytaj o jakość strumienia wideo" msgctxt "#30010" -msgid "Video quality" -msgstr "Jakość wideo" +msgid "Maximum video quality" +msgstr "Maksymalna jakość wideo" msgctxt "#30011" msgid "480p" @@ -73,16 +73,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "1080p (FHD)" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "2160p (4K)" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "4320p (8K)" msgctxt "#30016" msgid "240p" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p na żywo / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "144p" + msgctxt "#30020" msgid "Allow 3D" msgstr "Dopuszczaj materiały 3D" @@ -987,8 +991,8 @@ msgid "Reset resume point" msgstr "Resetuj punkt wznowienia" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Używaj historii odtwarzania (obejrzane, wznawianie odtwarzania)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "Użyj lokalnej historii odtwarzania (obejrzane, wznów śledzenie)" msgctxt "#30676" msgid "Just now" @@ -1044,11 +1048,11 @@ msgstr "Używaj dla wideo" msgctxt "#30689" msgid "Use for live streams" -msgstr "Uzywaj dla transmisji na żywo" +msgstr "Używaj dla transmisji na żywo" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "InputStream Adaptive >= 2.0.12 jest wymagany dla transmisji na żywo" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "Do adaptacyjnych transmisji na żywo wymagana jest wersja InputStream Adaptive >= 2.0.12" msgctxt "#30691" msgid "Airing now" @@ -1175,32 +1179,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "Domyślnie do zestawu adaptacyjnego WEBM (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "Włącz wideo HDR" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "Serwer proxy jest wymagany do vod-ów mpeg-dash (patrz serwer HTTP)[CR]> 1080p, a HDR wymaga InputStream Adaptive >= 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Ograniczaj do 30 fps" +msgid "Enable high framerate video" +msgstr "Włącz wideo o dużej liczbie klatek na sekundę" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "1440p (QHD)" msgctxt "#30726" msgid "Uploads" msgstr "Przesłane" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Adaptacyjna (MP4/H264)" +msgid "Enable H.264 video" +msgstr "Włącz wideo H.264" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Adaptacyjna (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "Włącz wideo VP9" msgctxt "#30729" msgid "Remote friendly search" @@ -1234,6 +1238,158 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "Ukryj krótkie filmy (1 minuta lub mniej)" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "Użyj danych klienta alternatywnego" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "Alternatywa nr 1" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "Alternatywa nr 2" + +msgctxt "#30740" +msgid "HLS" +msgstr "HLS" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "Wielostrumieniowy HLS" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "Adaptacyjny HLS" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "MPEG-DASH" + +msgctxt "#30744" +msgid "Original" +msgstr "Oryginalny" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "Dubbingowany" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "Opisowy" + +msgctxt "#30747" +msgid "Alternate" +msgstr "Alternatywny" + +msgctxt "#30748" +msgid "Stream features" +msgstr "Funkcje strumienia" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "Włącz wideo AV1" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "Włącz dźwięk Vorbis" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "Włącz dźwięk Opus" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "Włącz dźwięk AAC" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "Włącz dźwięk przestrzenny" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "Włącz dźwięk AC-3" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "Włącz dźwięk EAC-3" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "Włącz dźwięk DTS" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "Usuń podobne/zduplikowane strumienie" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "Wybór strumienia" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "Wybór jakości" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "Automatyczny + wybór jakości" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "Zaktualizuj historię odtwarzania w YouTube" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "Wielojęzyczny" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "Wielodźwiękowy" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Jakość wideo" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Używaj historii odtwarzania (obejrzane, wznawianie odtwarzania)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "InputStream Adaptive >= 2.0.12 jest wymagany dla transmisji na żywo" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Ograniczaj do 30 fps" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Adaptacyjna (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Adaptacyjna (WEBM/VP9)" + #~ msgctxt "#30900" #~ msgid "Subscriptions groups" #~ msgstr "Grupy subskrypcji" diff --git a/plugin.video.youtube/resources/language/resource.language.pt_br/strings.po b/plugin.video.youtube/resources/language/resource.language.pt_br/strings.po index 8851f948d9..a6b843374a 100644 --- a/plugin.video.youtube/resources/language/resource.language.pt_br/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.pt_br/strings.po @@ -60,8 +60,8 @@ msgid "Always ask for the video quality" msgstr "Sempre perguntar pela qualidade do vídeo" msgctxt "#30010" -msgid "Video quality" -msgstr "Qualidade do Vídeo" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -72,16 +72,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -95,6 +95,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p ao Vivo / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + msgctxt "#30020" msgid "Allow 3D" msgstr "Permitir 3D" @@ -984,8 +988,8 @@ msgid "Reset resume point" msgstr "Resetar ponto de resumo" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Use histórico de reprodução (assistido, retomar rastreamento)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1044,8 +1048,8 @@ msgid "Use for live streams" msgstr "Use para transmissões ao vivo" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "InputStream Adaptive >= 2.0.12 é requerido para transmissões ao vivo" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1172,32 +1176,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "Padrão para o conjunto de adaptação WEBM (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "Proxy é requerido para vods mpeg-dash (ver Servidor HTTP)[CR] 1080p e HDR requerem InputStream Adaptive >= 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Limite para 30fps" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "Uploads" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Adaptivo (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Adaptivo (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1231,6 +1235,158 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Qualidade do Vídeo" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Use histórico de reprodução (assistido, retomar rastreamento)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "InputStream Adaptive >= 2.0.12 é requerido para transmissões ao vivo" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Limite para 30fps" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Adaptivo (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Adaptivo (WEBM/VP9)" + #~ msgctxt "#30100" #~ msgid "Favorites" #~ msgstr "Favoritos" diff --git a/plugin.video.youtube/resources/language/resource.language.pt_pt/strings.po b/plugin.video.youtube/resources/language/resource.language.pt_pt/strings.po index 197f74be85..0819967525 100644 --- a/plugin.video.youtube/resources/language/resource.language.pt_pt/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.pt_pt/strings.po @@ -61,8 +61,8 @@ msgid "Always ask for the video quality" msgstr "Perguntar sempre pela qualidade do vídeo" msgctxt "#30010" -msgid "Video quality" -msgstr "Qualidade do Vídeo" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -73,16 +73,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p Em direto / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + msgctxt "#30020" msgid "Allow 3D" msgstr "Permitir 3D" @@ -987,8 +991,8 @@ msgid "Reset resume point" msgstr "Redefinir ponto de resumo" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Usar histórico de reprodução (visualizado, retomar o rastreamento)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1047,8 +1051,8 @@ msgid "Use for live streams" msgstr "Usar para as streams em directo" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "InputStream Adaptive >= 2.0.12 é necessário para streams em directo" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1175,32 +1179,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Limitar a 30fps" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "Carregamentos" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Adaptativo (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Adaptativo (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1234,6 +1238,158 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Qualidade do Vídeo" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Usar histórico de reprodução (visualizado, retomar o rastreamento)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "InputStream Adaptive >= 2.0.12 é necessário para streams em directo" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Limitar a 30fps" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Adaptativo (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Adaptativo (WEBM/VP9)" + #~ msgctxt "#30100" #~ msgid "Favorites" #~ msgstr "Favoritos" diff --git a/plugin.video.youtube/resources/language/resource.language.ro_ro/strings.po b/plugin.video.youtube/resources/language/resource.language.ro_ro/strings.po index 4de97e02e1..b0963afb29 100644 --- a/plugin.video.youtube/resources/language/resource.language.ro_ro/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.ro_ro/strings.po @@ -61,8 +61,8 @@ msgid "Always ask for the video quality" msgstr "Întreabă întotdeauna pentru calitatea video" msgctxt "#30010" -msgid "Video quality" -msgstr "Calitate video" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -73,16 +73,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + msgctxt "#30020" msgid "Allow 3D" msgstr "Permite 3D" @@ -987,7 +991,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1047,7 +1051,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1175,19 +1179,19 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1195,12 +1199,12 @@ msgid "Uploads" msgstr "Încărcări" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Adaptiv (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Adaptiv (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1234,6 +1238,142 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Calitate video" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Adaptiv (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Adaptiv (WEBM/VP9)" + #~ msgctxt "#30100" #~ msgid "Favorites" #~ msgstr "Favorite" diff --git a/plugin.video.youtube/resources/language/resource.language.ru_ru/strings.po b/plugin.video.youtube/resources/language/resource.language.ru_ru/strings.po index 3ad57a882b..08378e08be 100644 --- a/plugin.video.youtube/resources/language/resource.language.ru_ru/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.ru_ru/strings.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: XBMC-Addons\n" -"Report-Msgid-Bugs-To: translations@kodi.tv\n" +"Report-Msgid-Bugs-To: alanwww1@xbmc.org\n" "POT-Creation-Date: 2015-09-21 11:01+0000\n" "PO-Revision-Date: 2022-12-27 12:15+0000\n" "Last-Translator: Andrei Stepanov \n" @@ -62,8 +62,8 @@ msgid "Always ask for the video quality" msgstr "Всегда задавать вопрос о качестве видео" msgctxt "#30010" -msgid "Video quality" -msgstr "Качество видео" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -74,16 +74,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -97,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p Прямой эфир / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -989,8 +993,8 @@ msgid "Reset resume point" msgstr "Сброс точки возобновления" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Использовать историю просмотра (просмотренное, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1049,8 +1053,8 @@ msgid "Use for live streams" msgstr "Использовать для прямого эфира" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "Для прямого эфира требуется InputStream Adaptive >= 2.0.12" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1177,32 +1181,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "По умолчанию установлено значение адаптации WEBM (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "Прокси требуется для mpeg-dash видео (см. HTTP сервер)[CR]>Для 1080p и HDR требуется InputStream Adaptive >= 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Лимит в 30fps" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "Загрузки" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Адаптивное (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Адаптивное (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1235,3 +1239,155 @@ msgstr "Изменен" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Качество видео" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Использовать историю просмотра (просмотренное, resume tracking)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "Для прямого эфира требуется InputStream Adaptive >= 2.0.12" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Лимит в 30fps" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Адаптивное (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Адаптивное (WEBM/VP9)" diff --git a/plugin.video.youtube/resources/language/resource.language.si_lk/strings.po b/plugin.video.youtube/resources/language/resource.language.si_lk/strings.po index bd43c6ca79..5f998e16d9 100644 --- a/plugin.video.youtube/resources/language/resource.language.si_lk/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.si_lk/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.sk_sk/strings.po b/plugin.video.youtube/resources/language/resource.language.sk_sk/strings.po index 1352c1f0b0..bb3873fdba 100644 --- a/plugin.video.youtube/resources/language/resource.language.sk_sk/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.sk_sk/strings.po @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: XBMC-Addons\n" "Report-Msgid-Bugs-To: alanwww1@xbmc.org\n" "POT-Creation-Date: 2015-09-21 11:01+0000\n" -"PO-Revision-Date: 2022-11-04 05:15+0000\n" -"Last-Translator: Christian Gade \n" +"PO-Revision-Date: 2023-07-24 21:11+0000\n" +"Last-Translator: Jose Riha \n" "Language-Team: Slovak \n" "Language: sk_sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.14.1\n" +"X-Generator: Weblate 4.18.2\n" msgctxt "Addon Summary" msgid "Plugin for YouTube" @@ -61,8 +61,8 @@ msgid "Always ask for the video quality" msgstr "Vždy sa spýtať na kvalitu videa" msgctxt "#30010" -msgid "Video quality" -msgstr "Kvalita videa" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -73,16 +73,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p Živé / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + msgctxt "#30020" msgid "Allow 3D" msgstr "Povoliť 3D" @@ -296,7 +300,7 @@ msgstr "Zoznamy" msgctxt "#30502" msgid "Go to %s" -msgstr "Prejdite na %s" +msgstr "Prejsť na %s" msgctxt "#30503" msgid "Show channel fanart" @@ -360,7 +364,7 @@ msgstr "Odoberať od %s" msgctxt "#30518" msgid "Go to '%s'" -msgstr "Prejdite na '%s'" +msgstr "Prejsť na '%s'" msgctxt "#30519" msgid "and enter the following code:" @@ -987,8 +991,8 @@ msgid "Reset resume point" msgstr "Resetovať pozíciu pokračovania" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Použiť históriu prehrávania (videné, pokračovanie prehrávania)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1047,8 +1051,8 @@ msgid "Use for live streams" msgstr "Použiť pre živé prenosy" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "Živé prenosy vyžadujú InputStream Adaptive aspoň vo verzii 2.0.12" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1172,39 +1176,39 @@ msgstr "Zrušenie odberu" msgctxt "#30721" msgid "Default to WEBM adaptation set (4K)" -msgstr "" +msgstr "Predvolené nastavenie prispôsobenia WEBM (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "Videá MPEG-DASH vyžadujú proxy (viď server HTTP)[CR]> 1080p a HDR videá vyžadujú InputStream Adaptive aspoň vo verzii 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "Obmedziť na 30 snímkov/s" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "Nahraté" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Adaptívne (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Adaptívne (MP4/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" -msgstr "" +msgstr "Vyhľadávanie prispôsobené pre diaľkové ovládače" msgctxt "#30730" msgid "Play (Ask for quality)" @@ -1232,8 +1236,160 @@ msgstr "Upravené" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" +msgstr "Skryť krátke videá (1 minúta alebo menej)" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "Použitie alternatívnych údajov o klientovi" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "Alternatíva č. 1" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "Alternatíva č. 2" + +msgctxt "#30740" +msgid "HLS" msgstr "" +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Kvalita videa" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Použiť históriu prehrávania (videné, pokračovanie prehrávania)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "Živé prenosy vyžadujú InputStream Adaptive aspoň vo verzii 2.0.12" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "Obmedziť na 30 snímkov/s" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Adaptívne (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Adaptívne (MP4/VP9)" + #~ msgctxt "#30100" #~ msgid "Favorites" #~ msgstr "Obľúbené" diff --git a/plugin.video.youtube/resources/language/resource.language.sl_si/strings.po b/plugin.video.youtube/resources/language/resource.language.sl_si/strings.po index b5022d7cea..d304b4d0d0 100644 --- a/plugin.video.youtube/resources/language/resource.language.sl_si/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.sl_si/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.sq_al/strings.po b/plugin.video.youtube/resources/language/resource.language.sq_al/strings.po index 093640dd05..d6b56299fe 100644 --- a/plugin.video.youtube/resources/language/resource.language.sq_al/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.sq_al/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.sr_rs/strings.po b/plugin.video.youtube/resources/language/resource.language.sr_rs/strings.po index ab7ab58ac0..cb7d9e823b 100644 --- a/plugin.video.youtube/resources/language/resource.language.sr_rs/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.sr_rs/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.sr_rs@latin/strings.po b/plugin.video.youtube/resources/language/resource.language.sr_rs@latin/strings.po index 10f86679ef..ef03432989 100644 --- a/plugin.video.youtube/resources/language/resource.language.sr_rs@latin/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.sr_rs@latin/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.sv_se/strings.po b/plugin.video.youtube/resources/language/resource.language.sv_se/strings.po index 2f05e2afa5..cd677cb2d5 100644 --- a/plugin.video.youtube/resources/language/resource.language.sv_se/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.sv_se/strings.po @@ -62,7 +62,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -74,15 +74,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -97,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -989,7 +993,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1049,7 +1053,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1177,7 +1181,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1185,11 +1189,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1197,11 +1201,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1235,3 +1239,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.szl/strings.po b/plugin.video.youtube/resources/language/resource.language.szl/strings.po index 989eade945..2403e80155 100644 --- a/plugin.video.youtube/resources/language/resource.language.szl/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.szl/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.ta_in/strings.po b/plugin.video.youtube/resources/language/resource.language.ta_in/strings.po index a0fbe3480b..ae00238d45 100644 --- a/plugin.video.youtube/resources/language/resource.language.ta_in/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.ta_in/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.te_in/strings.po b/plugin.video.youtube/resources/language/resource.language.te_in/strings.po index 5c89013765..ce035052d9 100644 --- a/plugin.video.youtube/resources/language/resource.language.te_in/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.te_in/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.tg_tj/strings.po b/plugin.video.youtube/resources/language/resource.language.tg_tj/strings.po index 1e601ceb1e..8d2f916399 100644 --- a/plugin.video.youtube/resources/language/resource.language.tg_tj/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.tg_tj/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.th_th/strings.po b/plugin.video.youtube/resources/language/resource.language.th_th/strings.po index 61e4983eac..78fb1f9c8b 100644 --- a/plugin.video.youtube/resources/language/resource.language.th_th/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.th_th/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.tr_tr/strings.po b/plugin.video.youtube/resources/language/resource.language.tr_tr/strings.po index 85153a2e0c..b22ed50a5d 100644 --- a/plugin.video.youtube/resources/language/resource.language.tr_tr/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.tr_tr/strings.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: XBMC-Addons\n" -"Report-Msgid-Bugs-To: translations@kodi.tv\n" +"Report-Msgid-Bugs-To: alanwww1@xbmc.org\n" "POT-Creation-Date: 2015-09-21 11:01+0000\n" "PO-Revision-Date: 2023-01-15 09:59+0000\n" "Last-Translator: Tmp341 \n" @@ -62,8 +62,8 @@ msgid "Always ask for the video quality" msgstr "Her zaman video kalitesi için sor" msgctxt "#30010" -msgid "Video quality" -msgstr "Video kalitesi" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -74,16 +74,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -97,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p Canlı / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -989,8 +993,8 @@ msgid "Reset resume point" msgstr "Kaldığım yeri sıfırla" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "Oynatma geçmişini kullan (izlendi, kaldığım yerin takip edilmesi)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1049,8 +1053,8 @@ msgid "Use for live streams" msgstr "Canlı yayınlar için kullan" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "Canlı yayınlar için InputStream Adaptive >= 2.0.12 gereklidir" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1177,32 +1181,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "Varsayılan olarak WEBM uyarlama seti (4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "mpeg-dash vod'lar için proxy gereklidir (bkz. HTTP Sunucusu)[CR]> 1080p ve HDR için InputStream Adaptive >= 2.3.14 gerekir" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "30fps ayarına sabitle" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "Yüklenenler" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "Uyarlamalı (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "Uyarlamalı (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1235,3 +1239,155 @@ msgstr "Düzenlendi" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "Kısa Videoları Gizle (1 dk ya da daha az)" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Video kalitesi" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "Oynatma geçmişini kullan (izlendi, kaldığım yerin takip edilmesi)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "Canlı yayınlar için InputStream Adaptive >= 2.0.12 gereklidir" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "30fps ayarına sabitle" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "Uyarlamalı (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "Uyarlamalı (WEBM/VP9)" diff --git a/plugin.video.youtube/resources/language/resource.language.uk_ua/strings.po b/plugin.video.youtube/resources/language/resource.language.uk_ua/strings.po index 609be93045..ec62f2d9a6 100644 --- a/plugin.video.youtube/resources/language/resource.language.uk_ua/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.uk_ua/strings.po @@ -60,8 +60,8 @@ msgid "Always ask for the video quality" msgstr "Завжди запитувати про якість відео" msgctxt "#30010" -msgid "Video quality" -msgstr "Якість відео" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -72,16 +72,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -95,6 +95,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + msgctxt "#30020" msgid "Allow 3D" msgstr "Дозволити 3D" @@ -986,7 +990,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1046,7 +1050,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1174,7 +1178,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1182,11 +1186,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1194,11 +1198,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1233,6 +1237,130 @@ msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Якість відео" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + #~ msgctxt "#30100" #~ msgid "Favorites" #~ msgstr "Обране" diff --git a/plugin.video.youtube/resources/language/resource.language.uz_uz/strings.po b/plugin.video.youtube/resources/language/resource.language.uz_uz/strings.po index 07255af2b4..a2e59dfd2a 100644 --- a/plugin.video.youtube/resources/language/resource.language.uz_uz/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.uz_uz/strings.po @@ -61,7 +61,7 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" +msgid "Maximum video quality" msgstr "" msgctxt "#30011" @@ -73,15 +73,15 @@ msgid "720p (HD)" msgstr "" msgctxt "#30013" -msgid "1080p (HD)" +msgid "1080p (FHD)" msgstr "" msgctxt "#30014" -msgid "2160p (4k)" +msgid "2160p (4K)" msgstr "" msgctxt "#30015" -msgid "4320p (8k)" +msgid "4320p (8K)" msgstr "" msgctxt "#30016" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -988,7 +992,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1048,7 +1052,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1176,7 +1180,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1184,11 +1188,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1196,11 +1200,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1234,3 +1238,111 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" diff --git a/plugin.video.youtube/resources/language/resource.language.vi_vn/strings.po b/plugin.video.youtube/resources/language/resource.language.vi_vn/strings.po index d17b9daae1..5ed2b1304c 100644 --- a/plugin.video.youtube/resources/language/resource.language.vi_vn/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.vi_vn/strings.po @@ -62,8 +62,8 @@ msgid "Always ask for the video quality" msgstr "" msgctxt "#30010" -msgid "Video quality" -msgstr "Chất lượng video" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -74,16 +74,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -97,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p Trực tiếp / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -989,7 +993,7 @@ msgid "Reset resume point" msgstr "" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" +msgid "Use local playback history (watched, resume tracking)" msgstr "" msgctxt "#30676" @@ -1049,7 +1053,7 @@ msgid "Use for live streams" msgstr "" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" msgstr "" msgctxt "#30691" @@ -1177,7 +1181,7 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "" msgctxt "#30722" -msgid "HDR" +msgid "Enable HDR video" msgstr "" msgctxt "#30723" @@ -1185,11 +1189,11 @@ msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR msgstr "" msgctxt "#30724" -msgid "Limit to 30fps" +msgid "Enable high framerate video" msgstr "" msgctxt "#30725" -msgid "1440p (HD)" +msgid "1440p (QHD)" msgstr "" msgctxt "#30726" @@ -1197,11 +1201,11 @@ msgid "Uploads" msgstr "" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" +msgid "Enable H.264 video" msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" +msgid "Enable VP9 video" msgstr "" msgctxt "#30729" @@ -1235,3 +1239,127 @@ msgstr "" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "Chất lượng video" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" diff --git a/plugin.video.youtube/resources/language/resource.language.zh_cn/strings.po b/plugin.video.youtube/resources/language/resource.language.zh_cn/strings.po index 9b0093ac9b..6c9f658a52 100644 --- a/plugin.video.youtube/resources/language/resource.language.zh_cn/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.zh_cn/strings.po @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: XBMC-Addons\n" "Report-Msgid-Bugs-To: alanwww1@xbmc.org\n" "POT-Creation-Date: 2015-09-21 11:01+0000\n" -"PO-Revision-Date: 2021-11-05 19:30+0000\n" -"Last-Translator: wwj \n" +"PO-Revision-Date: 2023-04-28 16:20+0000\n" +"Last-Translator: NicoYazawa <1161118059@qq.com>\n" "Language-Team: Chinese (China) \n" "Language: zh_cn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.8.1\n" +"X-Generator: Weblate 4.15.2\n" msgctxt "Addon Summary" msgid "Plugin for YouTube" @@ -61,8 +61,8 @@ msgid "Always ask for the video quality" msgstr "总是询问视频分辨率" msgctxt "#30010" -msgid "Video quality" -msgstr "视频分辨率" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -73,16 +73,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -96,6 +96,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p 直播 / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + msgctxt "#30020" msgid "Allow 3D" msgstr "允许 3D 播放" @@ -987,8 +991,8 @@ msgid "Reset resume point" msgstr "重置恢复点" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "使用播放历史(已观看,继续跟踪)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1047,8 +1051,8 @@ msgid "Use for live streams" msgstr "用于直播流" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "实时流需要 InputStream Adaptive >= 2.0.12" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1175,32 +1179,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "默认为 WEBM 适配集(4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "MPEG-DASH 视频点播(VODS)需要代理(请参阅 HTTP 服务器)[CR]> 1080p 和 HDR 需要 InputStream Adaptive >= 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "限制为 30fps" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440P (HD)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "上传" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "自适应 (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "自适应(WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1232,8 +1236,160 @@ msgstr "已编辑" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" +msgstr "隐藏短视频(1分钟以内)" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" msgstr "" +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "视频分辨率" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "使用播放历史(已观看,继续跟踪)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "实时流需要 InputStream Adaptive >= 2.0.12" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "限制为 30fps" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440P (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "自适应 (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "自适应(WEBM/VP9)" + #~ msgctxt "#30100" #~ msgid "Favorites" #~ msgstr "我的收藏" diff --git a/plugin.video.youtube/resources/language/resource.language.zh_tw/strings.po b/plugin.video.youtube/resources/language/resource.language.zh_tw/strings.po index 807f77d2a3..3cde9c7841 100644 --- a/plugin.video.youtube/resources/language/resource.language.zh_tw/strings.po +++ b/plugin.video.youtube/resources/language/resource.language.zh_tw/strings.po @@ -62,8 +62,8 @@ msgid "Always ask for the video quality" msgstr "每次詢問影片解像度" msgctxt "#30010" -msgid "Video quality" -msgstr "影片解像度" +msgid "Maximum video quality" +msgstr "" msgctxt "#30011" msgid "480p" @@ -74,16 +74,16 @@ msgid "720p (HD)" msgstr "720p (HD)" msgctxt "#30013" -msgid "1080p (HD)" -msgstr "1080p (HD)" +msgid "1080p (FHD)" +msgstr "" msgctxt "#30014" -msgid "2160p (4k)" -msgstr "2160p (4k)" +msgid "2160p (4K)" +msgstr "" msgctxt "#30015" -msgid "4320p (8k)" -msgstr "4320p (8k)" +msgid "4320p (8K)" +msgstr "" msgctxt "#30016" msgid "240p" @@ -97,6 +97,10 @@ msgctxt "#30018" msgid "1080p Live / 720p (HD)" msgstr "1080p 直播 / 720p (HD)" +msgctxt "#30019" +msgid "144p" +msgstr "" + # empty strings 30019 msgctxt "#30020" msgid "Allow 3D" @@ -989,8 +993,8 @@ msgid "Reset resume point" msgstr "重設繼續播放點" msgctxt "#30675" -msgid "Use playback history (watched, resume tracking)" -msgstr "啟用播放歷史 (已觀看, 繼續播放)" +msgid "Use local playback history (watched, resume tracking)" +msgstr "" msgctxt "#30676" msgid "Just now" @@ -1049,8 +1053,8 @@ msgid "Use for live streams" msgstr "使用在直播串流" msgctxt "#30690" -msgid "InputStream Adaptive >= 2.0.12 is required for live streams" -msgstr "直播串流需要 InputStream Adaptive 2.0.12 以上版本" +msgid "InputStream Adaptive >= 2.0.12 is required for adaptive live streams" +msgstr "" msgctxt "#30691" msgid "Airing now" @@ -1177,32 +1181,32 @@ msgid "Default to WEBM adaptation set (4K)" msgstr "初始為WEBM adaptation(4K)" msgctxt "#30722" -msgid "HDR" -msgstr "HDR" +msgid "Enable HDR video" +msgstr "" msgctxt "#30723" msgid "Proxy is required for mpeg-dash vods (see HTTP Server)[CR]> 1080p and HDR requires InputStream Adaptive >= 2.3.14" msgstr "mpeg-dash 隨選視訊需要設定代理 (請看 HTTP 伺服器)[CR]> 1080p 且 HDR 需要 InputStream Adaptive >= 2.3.14" msgctxt "#30724" -msgid "Limit to 30fps" -msgstr "限制在30fps" +msgid "Enable high framerate video" +msgstr "" msgctxt "#30725" -msgid "1440p (HD)" -msgstr "1440p (HD)" +msgid "1440p (QHD)" +msgstr "" msgctxt "#30726" msgid "Uploads" msgstr "上傳的影片" msgctxt "#30727" -msgid "Adaptive (MP4/H264)" -msgstr "動態 (MP4/H264)" +msgid "Enable H.264 video" +msgstr "" msgctxt "#30728" -msgid "Adaptive (WEBM/VP9)" -msgstr "動態 (WEBM/VP9)" +msgid "Enable VP9 video" +msgstr "" msgctxt "#30729" msgid "Remote friendly search" @@ -1235,3 +1239,155 @@ msgstr "已編輯" msgctxt "#30736" msgid "Hide short videos (1 minute or less)" msgstr "" + +msgctxt "#30737" +msgid "Use alternate client details" +msgstr "" + +msgctxt "#30738" +msgid "Alternate #1" +msgstr "" + +msgctxt "#30739" +msgid "Alternate #2" +msgstr "" + +msgctxt "#30740" +msgid "HLS" +msgstr "" + +msgctxt "#30741" +msgid "Multi-stream HLS" +msgstr "" + +msgctxt "#30742" +msgid "Adaptive HLS" +msgstr "" + +msgctxt "#30743" +msgid "MPEG-DASH" +msgstr "" + +msgctxt "#30744" +msgid "Original" +msgstr "" + +msgctxt "#30745" +msgid "Dubbed" +msgstr "" + +msgctxt "#30746" +msgid "Descriptive" +msgstr "" + +msgctxt "#30747" +msgid "Alternate" +msgstr "" + +msgctxt "#30748" +msgid "Stream features" +msgstr "" + +msgctxt "#30749" +msgid "Enable AV1 video" +msgstr "" + +msgctxt "#30750" +msgid "Enable Vorbis audio" +msgstr "" + +msgctxt "#30751" +msgid "Enable Opus audio" +msgstr "" + +msgctxt "#30752" +msgid "Enable AAC audio" +msgstr "" + +msgctxt "#30753" +msgid "Enable surround sound audio" +msgstr "" + +msgctxt "#30754" +msgid "Enable AC-3 audio" +msgstr "" + +msgctxt "#30755" +msgid "Enable EAC-3 audio" +msgstr "" + +msgctxt "#30756" +msgid "Enable DTS audio" +msgstr "" + +msgctxt "#30757" +msgid "Remove similar/duplicate streams" +msgstr "" + +msgctxt "#30758" +msgid "Stream selection" +msgstr "" + +msgctxt "#30759" +msgid "Quality selection" +msgstr "" + +msgctxt "#30760" +msgid "Automatic + Quality selection" +msgstr "" + +msgctxt "#30761" +msgid "Update playback history on Youtube" +msgstr "" + +msgctxt "#30762" +msgid "Multi-language" +msgstr "" + +msgctxt "#30763" +msgid "Multi-audio" +msgstr "" + +#~ msgctxt "#30010" +#~ msgid "Video quality" +#~ msgstr "影片解像度" + +#~ msgctxt "#30013" +#~ msgid "1080p (HD)" +#~ msgstr "1080p (HD)" + +#~ msgctxt "#30014" +#~ msgid "2160p (4k)" +#~ msgstr "2160p (4k)" + +#~ msgctxt "#30015" +#~ msgid "4320p (8k)" +#~ msgstr "4320p (8k)" + +#~ msgctxt "#30675" +#~ msgid "Use playback history (watched, resume tracking)" +#~ msgstr "啟用播放歷史 (已觀看, 繼續播放)" + +#~ msgctxt "#30690" +#~ msgid "InputStream Adaptive >= 2.0.12 is required for live streams" +#~ msgstr "直播串流需要 InputStream Adaptive 2.0.12 以上版本" + +#~ msgctxt "#30722" +#~ msgid "HDR" +#~ msgstr "HDR" + +#~ msgctxt "#30724" +#~ msgid "Limit to 30fps" +#~ msgstr "限制在30fps" + +#~ msgctxt "#30725" +#~ msgid "1440p (HD)" +#~ msgstr "1440p (HD)" + +#~ msgctxt "#30727" +#~ msgid "Adaptive (MP4/H264)" +#~ msgstr "動態 (MP4/H264)" + +#~ msgctxt "#30728" +#~ msgid "Adaptive (WEBM/VP9)" +#~ msgstr "動態 (WEBM/VP9)" diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/constants/const_settings.py b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/constants/const_settings.py index dfeeace94f..6f64ca4607 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/constants/const_settings.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/constants/const_settings.py @@ -14,11 +14,6 @@ ITEMS_PER_PAGE = 'kodion.content.max_per_page' # (int) SEARCH_SIZE = 'kodion.search.size' # (int) CACHE_SIZE = 'kodion.cache.size' # (int) -VIDEO_QUALITY = 'kodion.video.quality' # (int) -VIDEO_QUALITY_ASK = 'kodion.video.quality.ask' # (bool) -USE_DASH = 'kodion.video.quality.mpd' # (bool) -MPD_QUALITY_SELECTION = 'kodion.mpd.quality.selection' # (int) -MPD_30FPS_LIMIT = 'kodion.mpd.limit.30' # (bool) AUDIO_ONLY = 'kodion.audio_only' # (bool) AGE_GATE = 'kodion.age.gate' # (bool) SUBTITLE_LANGUAGE = 'kodion.subtitle.languages.num' # (int) @@ -28,7 +23,8 @@ LOCATION = 'youtube.location' # (str) LOCATION_RADIUS = 'youtube.location.radius' # (int) PLAY_COUNT_MIN_PERCENT = 'kodion.play_count.percent' # (int) -USE_PLAYBACK_HISTORY = 'kodion.playback.history' # (bool) +USE_LOCAL_HISTORY = 'kodion.history.local' # (bool) +USE_REMOTE_HISTORY = 'kodion.history.remote' # (bool) REMOTE_FRIENDLY_SEARCH = 'youtube.search.remote.friendly' # (bool) HIDE_SHORT_VIDEOS = 'youtube.hide_shorts' # (bool) @@ -37,12 +33,19 @@ ALLOW_DEV_KEYS = 'youtube.allow.dev.keys' # (bool) -DASH_VIDEOS = 'kodion.mpd.videos' # (bool) -DASH_INCL_HDR = 'kodion.mpd.hdr' # (bool) -DASH_LIVE_STREAMS = 'kodion.mpd.live_streams' # (bool) +VIDEO_QUALITY = 'kodion.video.quality' # (int) +VIDEO_QUALITY_ASK = 'kodion.video.quality.ask' # (bool) +USE_MPD = 'kodion.video.quality.mpd' # (bool) +LIVE_STREAMS = 'kodion.mpd.live_stream.selection' # (int) +MPD_VIDEOS = 'kodion.mpd.videos' # (bool) +MPD_QUALITY_SELECTION = 'kodion.mpd.quality.selection' # (int) +MPD_STREAM_FEATURES = 'kodion.mpd.stream.features' # (list[string]) +MPD_STREAM_SELECT = 'kodion.mpd.stream.select' # (int) HTTPD_PORT = 'kodion.mpd.proxy.port' # (number) HTTPD_LISTEN = 'kodion.http.listen' # (string) HTTPD_WHITELIST = 'kodion.http.ip.whitelist' # (string) API_CONFIG_PAGE = 'youtube.api.config.page' # (bool) + +CLIENT_SELECTION = 'youtube.client.selection' # (int) diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/abstract_context.py b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/abstract_context.py index e00d1e9a79..99d1cb7022 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/abstract_context.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/abstract_context.py @@ -54,6 +54,9 @@ def format_time(self, time_obj): def get_language(self): raise NotImplementedError() + def get_language_name(self): + raise NotImplementedError() + def get_region(self): raise NotImplementedError() diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/abstract_settings.py b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/abstract_settings.py index b79c3b0c7b..47ec7ed2e7 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/abstract_settings.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/abstract_settings.py @@ -10,7 +10,7 @@ import sys -from .. import constants +from ..constants import setting as SETTINGS from ..logger import log_debug @@ -63,7 +63,7 @@ def get_bool(self, setting_id, default_value): return value == 'true' def get_items_per_page(self): - return self.get_int(constants.setting.ITEMS_PER_PAGE, 50) + return self.get_int(SETTINGS.ITEMS_PER_PAGE, 50) def get_video_quality(self, quality_map_override=None): vq_dict = {0: 240, @@ -75,106 +75,122 @@ def get_video_quality(self, quality_map_override=None): if quality_map_override is not None: vq_dict = quality_map_override - vq = self.get_int(constants.setting.VIDEO_QUALITY, 1) + vq = self.get_int(SETTINGS.VIDEO_QUALITY, 1) return vq_dict[vq] def ask_for_video_quality(self): - return self.get_bool(constants.setting.VIDEO_QUALITY_ASK, False) + return self.get_bool(SETTINGS.VIDEO_QUALITY_ASK, False) def show_fanart(self): - return self.get_bool(constants.setting.SHOW_FANART, True) + return self.get_bool(SETTINGS.SHOW_FANART, True) def get_search_history_size(self): - return self.get_int(constants.setting.SEARCH_SIZE, 50) + return self.get_int(SETTINGS.SEARCH_SIZE, 50) def is_setup_wizard_enabled(self): - return self.get_bool(constants.setting.SETUP_WIZARD, False) + return self.get_bool(SETTINGS.SETUP_WIZARD, False) def is_support_alternative_player_enabled(self): - return self.get_bool(constants.setting.SUPPORT_ALTERNATIVE_PLAYER, False) + return self.get_bool(SETTINGS.SUPPORT_ALTERNATIVE_PLAYER, False) def alternative_player_web_urls(self): - return self.get_bool(constants.setting.ALTERNATIVE_PLAYER_WEB_URLS, False) + return self.get_bool(SETTINGS.ALTERNATIVE_PLAYER_WEB_URLS, False) - def use_dash(self): - return self.get_bool(constants.setting.USE_DASH, False) + def use_mpd(self): + return self.get_bool(SETTINGS.USE_MPD, False) def subtitle_languages(self): - return self.get_int(constants.setting.SUBTITLE_LANGUAGE, 0) + return self.get_int(SETTINGS.SUBTITLE_LANGUAGE, 0) def subtitle_download(self): - return self.get_bool(constants.setting.SUBTITLE_DOWNLOAD, False) + return self.get_bool(SETTINGS.SUBTITLE_DOWNLOAD, False) def audio_only(self): - return self.get_bool(constants.setting.AUDIO_ONLY, False) + return self.get_bool(SETTINGS.AUDIO_ONLY, False) def set_subtitle_languages(self, value): - return self.set_int(constants.setting.SUBTITLE_LANGUAGE, value) + return self.set_int(SETTINGS.SUBTITLE_LANGUAGE, value) def set_subtitle_download(self, value): - return self.set_bool(constants.setting.SUBTITLE_DOWNLOAD, value) + return self.set_bool(SETTINGS.SUBTITLE_DOWNLOAD, value) def use_thumbnail_size(self): - size = self.get_int(constants.setting.THUMB_SIZE, 0) + size = self.get_int(SETTINGS.THUMB_SIZE, 0) sizes = {0: 'medium', 1: 'high'} return sizes[size] def safe_search(self): - index = self.get_int(constants.setting.SAFE_SEARCH, 0) + index = self.get_int(SETTINGS.SAFE_SEARCH, 0) values = {0: 'moderate', 1: 'none', 2: 'strict'} return values[index] def age_gate(self): - return self.get_bool(constants.setting.AGE_GATE, True) + return self.get_bool(SETTINGS.AGE_GATE, True) def verify_ssl(self): - verify = self.get_bool(constants.setting.VERIFY_SSL, False) + verify = self.get_bool(SETTINGS.VERIFY_SSL, False) if sys.version_info <= (2, 7, 9): verify = False return verify def allow_dev_keys(self): - return self.get_bool(constants.setting.ALLOW_DEV_KEYS, False) - - def use_dash_videos(self): - if not self.use_dash(): - return False - return self.get_bool(constants.setting.DASH_VIDEOS, False) + return self.get_bool(SETTINGS.ALLOW_DEV_KEYS, False) + + def use_mpd_videos(self): + if self.use_mpd(): + return self.get_bool(SETTINGS.MPD_VIDEOS, False) + return False + + _LIVE_STREAM_TYPES = { + 0: 'mpegts', + 1: 'hls', + 2: 'ia_hls', + 3: 'ia_mpd', + } + + def get_live_stream_type(self): + if self.use_mpd(): + stream_type = self.get_int(SETTINGS.LIVE_STREAMS + '.1', 0) + else: + stream_type = self.get_int(SETTINGS.LIVE_STREAMS + '.2', 0) + return self._LIVE_STREAM_TYPES.get(stream_type) or self._LIVE_STREAM_TYPES[0] - def include_hdr(self): - if self.get_mpd_quality() == 'mp4': - return False - return self.get_bool(constants.setting.DASH_INCL_HDR, False) + def use_adaptive_live_streams(self): + if self.use_mpd(): + return self.get_int(SETTINGS.LIVE_STREAMS + '.1', 0) > 1 + return self.get_int(SETTINGS.LIVE_STREAMS + '.2', 0) > 1 - def use_dash_live_streams(self): - if not self.use_dash(): - return False - return self.get_bool(constants.setting.DASH_LIVE_STREAMS, False) + def use_mpd_live_streams(self): + if self.use_mpd(): + return self.get_int(SETTINGS.LIVE_STREAMS + '.1', 0) == 3 + return False def httpd_port(self): - return self.get_int(constants.setting.HTTPD_PORT, 50152) + return self.get_int(SETTINGS.HTTPD_PORT, 50152) - def httpd_listen(self): - ip_address = self.get_string(constants.setting.HTTPD_LISTEN, '0.0.0.0') + def httpd_listen(self, default='0.0.0.0', for_request=False): + ip_address = self.get_string(SETTINGS.HTTPD_LISTEN, default) try: ip_address = ip_address.strip() except AttributeError: pass if not ip_address: - ip_address = '0.0.0.0' + ip_address = default + if for_request and ip_address == default: + ip_address = '127.0.0.1' return ip_address def set_httpd_listen(self, value): - return self.set_string(constants.setting.HTTPD_LISTEN, value) + return self.set_string(SETTINGS.HTTPD_LISTEN, value) def httpd_whitelist(self): - return self.get_string(constants.setting.HTTPD_WHITELIST, '') + return self.get_string(SETTINGS.HTTPD_WHITELIST, '') def api_config_page(self): - return self.get_bool(constants.setting.API_CONFIG_PAGE, False) + return self.get_bool(SETTINGS.API_CONFIG_PAGE, False) def get_location(self): - location = self.get_string(constants.setting.LOCATION, '').replace(' ', '').strip() + location = self.get_string(SETTINGS.LOCATION, '').replace(' ', '').strip() coords = location.split(',') latitude = longitude = None if len(coords) == 2: @@ -193,59 +209,60 @@ def get_location(self): return '' def set_location(self, value): - self.set_string(constants.setting.LOCATION, value) + self.set_string(SETTINGS.LOCATION, value) def get_location_radius(self): - return ''.join([str(self.get_int(constants.setting.LOCATION_RADIUS, 500)), 'km']) + return ''.join([str(self.get_int(SETTINGS.LOCATION_RADIUS, 500)), 'km']) def get_play_count_min_percent(self): - return self.get_int(constants.setting.PLAY_COUNT_MIN_PERCENT, 0) - - def use_playback_history(self): - return self.get_bool(constants.setting.USE_PLAYBACK_HISTORY, False) - - @staticmethod - def __get_mpd_quality_map(): - return { - 0: 240, - 1: 360, - 2: 480, - 3: 720, - 4: 1080, - 5: 1440, - 6: 2160, - 7: 4320, - 8: 'mp4', - 9: 'webm' - } - - def get_mpd_quality(self): - quality_map = self.__get_mpd_quality_map() - quality_enum = self.get_int(constants.setting.MPD_QUALITY_SELECTION, 8) - return quality_map.get(quality_enum, 'mp4') - - def mpd_video_qualities(self): - if not self.use_dash_videos(): + return self.get_int(SETTINGS.PLAY_COUNT_MIN_PERCENT, 0) + + def use_local_history(self): + return self.get_bool(SETTINGS.USE_LOCAL_HISTORY, False) + + def use_remote_history(self): + return self.get_bool(SETTINGS.USE_REMOTE_HISTORY, False) + + # Selections based on max width and min height at common (utra-)wide aspect ratios + _QUALITY_SELECTIONS = { # Setting | Resolution + 7: {'width': 7680, 'height': 3148, 'label': '4320p{0} (8K){1}'}, # 7 | 4320p 8K + 6: {'width': 3840, 'height': 1080, 'label': '2160p{0} (4K){1}'}, # 6 | 2160p 4K + 5: {'width': 2560, 'height': 984, 'label': '1440p{0} (QHD){1}'}, # 5 | 1440p 2.5K / QHD + 4.1: {'width': 2048, 'height': 858, 'label': '1152p{0} (2K){1}'}, # N/A | 1152p 2K / QWXGA + 4: {'width': 1920, 'height': 787, 'label': '1080p{0} (FHD){1}'}, # 4 | 1080p FHD + 3: {'width': 1280, 'height': 525, 'label': '720p{0} (HD){1}'}, # 3 | 720p HD + 2: {'width': 854, 'height': 350, 'label': '480p{0}{1}'}, # 2 | 480p + 1: {'width': 640, 'height': 263, 'label': '360p{0}{1}'}, # 1 | 360p + 0: {'width': 426, 'height': 175, 'label': '240p{0}{1}'}, # 0 | 240p + -1: {'width': 256, 'height': 105, 'label': '144p{0}{1}'}, # N/A | 144p + -2: {'width': 0, 'height': 0, 'label': '{2}p{0}{1}'}, # N/A | Custom + } + + def get_mpd_video_qualities(self): + if not self.use_mpd_videos(): return [] + selected = self.get_int(SETTINGS.MPD_QUALITY_SELECTION, 4) + return [quality for key, quality in self._QUALITY_SELECTIONS.items() + if selected >= key] - quality = self.get_mpd_quality() - - if not isinstance(quality, int): - return quality + def stream_features(self): + return self.get_string(SETTINGS.MPD_STREAM_FEATURES, '').split(',') - quality_map = self.__get_mpd_quality_map() - qualities = sorted([x for x in list(quality_map.values()) - if isinstance(x, int) and x <= quality], reverse=True) + _STREAM_SELECT = { + 1: 'auto', + 2: 'list', + 3: 'auto+list', + } - return qualities - - def mpd_30fps_limit(self): - if self.include_hdr() or isinstance(self.get_mpd_quality(), str): - return False - return self.get_bool(constants.setting.MPD_30FPS_LIMIT, False) + def stream_select(self): + select_type = self.get_int(SETTINGS.MPD_STREAM_SELECT, 1) + return self._STREAM_SELECT.get(select_type) or self._STREAM_SELECT[1] def remote_friendly_search(self): - return self.get_bool(constants.setting.REMOTE_FRIENDLY_SEARCH, False) + return self.get_bool(SETTINGS.REMOTE_FRIENDLY_SEARCH, False) def hide_short_videos(self): - return self.get_bool(constants.setting.HIDE_SHORT_VIDEOS, False) + return self.get_bool(SETTINGS.HIDE_SHORT_VIDEOS, False) + + def client_selection(self): + return self.get_int(SETTINGS.CLIENT_SELECTION, 0) diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/xbmc/xbmc_context.py b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/xbmc/xbmc_context.py index bd6c44f050..03b9cee76a 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/xbmc/xbmc_context.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/xbmc/xbmc_context.py @@ -137,6 +137,11 @@ def get_language(self): return 'en-US' + def get_language_name(self, lang_id=None): + if lang_id is None: + lang_id = self.get_language() + return xbmc.convertLanguage(lang_id, xbmc.ENGLISH_NAME).split(';')[0] + def get_video_playlist(self): if not self._video_playlist: self._video_playlist = XbmcPlaylist('video', weakref.proxy(self)) @@ -282,52 +287,59 @@ def send_notification(self, method, data): self.execute('NotifyAll(plugin.video.youtube,%s,%s)' % (method, data)) def use_inputstream_adaptive(self): - addon_enabled = self.addon_enabled('inputstream.adaptive') - if self._settings.use_dash() and not addon_enabled: - if self.get_ui().on_yes_no_input(self.get_name(), self.localize(30579)): - use_dash = self.set_addon_enabled('inputstream.adaptive') + if self._settings.use_mpd_videos() or self._settings.use_adaptive_live_streams(): + if self.addon_enabled('inputstream.adaptive'): + success = True + elif self.get_ui().on_yes_no_input(self.get_name(), self.localize(30579)): + success = self.set_addon_enabled('inputstream.adaptive') else: - use_dash = False - elif self._settings.use_dash() and addon_enabled: - use_dash = True + success = False else: - use_dash = False - return use_dash + success = False + return success + + # Values of capability map can be any of the following: + # - required version number as string for comparison with actual installed InputStream.Adaptive version + # - any Falsey value to exclude capability regardless of version + # - True to include capability regardless of version + _IA_CAPABILITIES = { + 'live': '2.0.12', + 'drm': '2.2.12', + # audio codecs + 'vorbis': '2.3.14', + 'opus': '19.0.7', + 'mp4a': True, + 'ac-3': '2.1.15', + 'ec-3': '2.1.15', + 'dts': '2.1.15', + # video codecs + 'avc1': True, + 'av01': '20.3.0', + 'vp8': False, + 'vp9': '2.3.14', + } def inputstream_adaptive_capabilities(self, capability=None): # return a list inputstream.adaptive capabilities, if capability set return version required - capabilities = [] - - use_dash = self.use_inputstream_adaptive() try: inputstream_version = xbmcaddon.Addon('inputstream.adaptive').getAddonInfo('version') except RuntimeError: inputstream_version = '' - if not use_dash or not inputstream_version: - return None if capability is not None else capabilities - - capability_map = { - 'live': '2.0.12', - 'drm': '2.2.12', - 'vp9': '2.3.14', - 'vp9.2': '2.3.14', - 'vorbis': None, - 'opus': '19.0.7', - 'av1': '20.3.0', - } + if not self.use_inputstream_adaptive() or not inputstream_version: + return frozenset() if capability is None else None + ia_loose_version = utils.loose_version(inputstream_version) if capability is None: - ia_loose_version = utils.loose_version(inputstream_version) - - for key in list(capability_map.keys()): - if capability_map[key] and (ia_loose_version >= utils.loose_version(capability_map[key])): - capabilities.append(key) - + capabilities = frozenset( + capability for capability, version in self._IA_CAPABILITIES.items() + if version is True + or version and ia_loose_version >= utils.loose_version(version) + ) return capabilities - else: - return capability_map[capability] if capability_map.get(capability) else None + version = self._IA_CAPABILITIES.get(capability) + return version is True or version and ia_loose_version >= utils.loose_version(version) def inputstream_adaptive_auto_stream_selection(self): try: diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/xbmc/xbmc_items.py b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/xbmc/xbmc_items.py index 1d79a388fb..c1341a0230 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/xbmc/xbmc_items.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/xbmc/xbmc_items.py @@ -10,7 +10,22 @@ import xbmcgui -from infotagger.listitem import ListItemInfoTag +try: + from infotagger.listitem import ListItemInfoTag +except ImportError: + class ListItemInfoTag: + __slots__ = ('__li__', '__type__' ) + + def __init__(self, list_item, tag_type): + self.__li__ = list_item + self.__type__ = tag_type + + def add_stream_info(self, *args, **kwargs): + return self.__li__.addStreamInfo(*args, **kwargs) + + def set_info(self, *args, **kwargs): + return self.__li__.setInfo(self.__type__, *args, **kwargs) + from ...items import VideoItem, AudioItem, UriItem from ... import utils @@ -47,13 +62,40 @@ def to_play_item(context, play_item): not play_item.get_license_key(): play_item.set_uri('https://www.youtube.com/watch?v={video_id}'.format(video_id=play_item.video_id)) - if play_item.use_dash() and context.addon_enabled('inputstream.adaptive'): - inputstream_property = 'inputstream' - + ia_enabled = context.addon_enabled('inputstream.adaptive') + + if ia_enabled and play_item.use_mpd_video() and not play_item.live: list_item.setContentLookup(False) list_item.setMimeType('application/xml+dash') - list_item.setProperty(inputstream_property, 'inputstream.adaptive') + list_item.setProperty('inputstream', 'inputstream.adaptive') list_item.setProperty('inputstream.adaptive.manifest_type', 'mpd') + if 'auto' in settings.stream_select(): + list_item.setProperty('inputstream.adaptive.stream_selection_type', 'adaptive') + + if play_item.get_headers(): + list_item.setProperty('inputstream.adaptive.manifest_headers', play_item.get_headers()) + list_item.setProperty('inputstream.adaptive.stream_headers', play_item.get_headers()) + + if play_item.get_license_key(): + list_item.setProperty('inputstream.adaptive.license_type', 'com.widevine.alpha') + list_item.setProperty('inputstream.adaptive.license_key', play_item.get_license_key()) + + elif ia_enabled and play_item.live and settings.use_adaptive_live_streams(): + if settings.use_mpd_live_streams(): + manifest_type = 'mpd' + mime_type = 'application/xml+dash' + # MPD manifest update is currently broken + # Following line will force a full update but restart live stream from start + # list_item.setProperty('inputstream.adaptive.manifest_update_parameter', 'full') + else: + manifest_type = 'hls' + mime_type = 'application/x-mpegURL' + + list_item.setContentLookup(False) + list_item.setMimeType(mime_type) + list_item.setProperty('inputstream', 'inputstream.adaptive') + list_item.setProperty('inputstream.adaptive.manifest_type', manifest_type) + if play_item.get_headers(): list_item.setProperty('inputstream.adaptive.manifest_headers', play_item.get_headers()) list_item.setProperty('inputstream.adaptive.stream_headers', play_item.get_headers()) @@ -61,6 +103,7 @@ def to_play_item(context, play_item): if play_item.get_license_key(): list_item.setProperty('inputstream.adaptive.license_type', 'com.widevine.alpha') list_item.setProperty('inputstream.adaptive.license_key', play_item.get_license_key()) + else: uri = play_item.get_uri() if 'mime=' in uri: diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/xbmc/xbmc_runner.py b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/xbmc/xbmc_runner.py index 60e03bb421..46fda8a722 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/xbmc/xbmc_runner.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/impl/xbmc/xbmc_runner.py @@ -11,8 +11,6 @@ import xbmcgui import xbmcplugin -from infotagger.listitem import ListItemInfoTag - from ..abstract_provider_runner import AbstractProviderRunner from ...exceptions import KodionException from ...items import * @@ -95,7 +93,7 @@ def _add_directory(self, context, directory_item, item_count=0): item = xbmcgui.ListItem(label=directory_item.get_name(), offscreen=True) - info_tag = ListItemInfoTag(item, tag_type='video') + info_tag = xbmc_items.ListItemInfoTag(item, tag_type='video') # only set fanart is enabled if directory_item.get_fanart() and self.settings.show_fanart(): diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/items/video_item.py b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/items/video_item.py index 80896de9b7..7d19fd4d95 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/items/video_item.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/items/video_item.py @@ -40,7 +40,7 @@ def __init__(self, name, uri, image=u'', fanart=u''): self._studio = None self._artist = None self._play_count = None - self._uses_dash = None + self._uses_mpd = None self._mediatype = None self._last_played = None self._start_percent = None @@ -227,11 +227,11 @@ def set_date_from_datetime(self, date_time): def get_date(self): return self._date - def set_use_dash(self, value=True): - self._uses_dash = value + def set_use_mpd_video(self, value=True): + self._uses_mpd = value - def use_dash(self): - return self._uses_dash is True and ('manifest/dash' in self.get_uri() or self.get_uri().endswith('.mpd')) + def use_mpd_video(self): + return self._uses_mpd is True and ('manifest/dash' in self.get_uri() or self.get_uri().endswith('.mpd')) def set_mediatype(self, mediatype): self._mediatype = mediatype diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/__init__.py b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/__init__.py index 20e9597e5c..717fb4dc29 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/__init__.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/__init__.py @@ -9,7 +9,6 @@ """ from . import datetime_parser -from .methods import loose_version from .methods import * from .search_history import SearchHistory from .favorite_list import FavoriteList diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/http_server.py b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/http_server.py index 1ad7af674f..522e5a8300 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/http_server.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/http_server.py @@ -63,7 +63,7 @@ def connection_allowed(self): # noinspection PyPep8Naming def do_GET(self): addon = xbmcaddon.Addon('plugin.video.youtube') - dash_proxy_enabled = addon.getSetting('kodion.mpd.videos') == 'true' and addon.getSetting('kodion.video.quality.mpd') == 'true' + mpd_proxy_enabled = addon.getSetting('kodion.mpd.videos') == 'true' and addon.getSetting('kodion.video.quality.mpd') == 'true' api_config_enabled = addon.getSetting('youtube.api.config.page') == 'true' # Strip trailing slash if present @@ -78,12 +78,12 @@ def do_GET(self): self.wfile.write(client_json.encode('utf-8')) if stripped_path != '/ping': - logger.log_debug('HTTPServer: Request uri path |{proxy_path}|'.format(proxy_path=self.path)) + logger.log_debug('HTTPServer: GET Request uri path |{proxy_path}|'.format(proxy_path=self.path)) if not self.connection_allowed(): self.send_error(403) else: - if dash_proxy_enabled and self.path.endswith('.mpd'): + if mpd_proxy_enabled and self.path.endswith('.mpd'): file_path = os.path.join(self.base_path, self.path.strip('/').strip('\\')) file_chunk = True logger.log_debug('HTTPServer: Request file path |{file_path}|'.format(file_path=file_path.encode('utf-8'))) @@ -165,14 +165,14 @@ def do_GET(self): # noinspection PyPep8Naming def do_HEAD(self): - logger.log_debug('HTTPServer: Request uri path |{proxy_path}|'.format(proxy_path=self.path)) + logger.log_debug('HTTPServer: HEAD Request uri path |{proxy_path}|'.format(proxy_path=self.path)) if not self.connection_allowed(): self.send_error(403) else: addon = xbmcaddon.Addon('plugin.video.youtube') - dash_proxy_enabled = addon.getSetting('kodion.mpd.videos') == 'true' and addon.getSetting('kodion.video.quality.mpd') == 'true' - if dash_proxy_enabled and self.path.endswith('.mpd'): + mpd_proxy_enabled = addon.getSetting('kodion.mpd.videos') == 'true' and addon.getSetting('kodion.video.quality.mpd') == 'true' + if mpd_proxy_enabled and self.path.endswith('.mpd'): file_path = os.path.join(self.base_path, self.path.strip('/').strip('\\')) if not os.path.isfile(file_path): response = 'File Not Found: |{proxy_path}| -> |{file_path}|'.format(proxy_path=self.path, file_path=file_path.encode('utf-8')) diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/methods.py b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/methods.py index 358ef3b081..5a0738c639 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/methods.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/methods.py @@ -92,19 +92,20 @@ def find_best_fit(data, compare_method=None): def select_stream(context, stream_data_list, quality_map_override=None, ask_for_quality=None, audio_only=None): # sort - best stream first def _sort_stream_data(_stream_data): - return _stream_data.get('sort', 0) + return _stream_data.get('sort', (0, 0)) settings = context.get_settings() - use_dash = settings.use_dash() + use_adaptive = context.use_inputstream_adaptive() ask_for_quality = context.get_settings().ask_for_video_quality() if ask_for_quality is None else ask_for_quality video_quality = settings.get_video_quality(quality_map_override=quality_map_override) audio_only = audio_only if audio_only is not None else settings.audio_only() + adaptive_live = settings.use_adaptive_live_streams() and context.inputstream_adaptive_capabilities('live') if not ask_for_quality: stream_data_list = [item for item in stream_data_list - if ((item['container'] != 'mpd') or - ((item['container'] == 'mpd') and - (item.get('dash/video', False))))] + if (item['container'] not in {'mpd', 'hls'} or + item.get('hls/video') or + item.get('dash/video'))] if not ask_for_quality and audio_only: # check for live stream, audio only not supported context.log_debug('Select stream: Audio only') @@ -116,43 +117,31 @@ def _sort_stream_data(_stream_data): if not ask_for_quality and audio_only: audio_stream_data_list = [item for item in stream_data_list - if (item.get('dash/audio', False) and - not item.get('dash/video', False))] + if (item.get('dash/audio') and + not item.get('dash/video') and + not item.get('hls/video'))] if audio_stream_data_list: - use_dash = False + use_adaptive = False stream_data_list = audio_stream_data_list else: context.log_debug('Select stream: Audio only, no audio only streams found') - dash_live = settings.use_dash_live_streams() and 'live' in context.inputstream_adaptive_capabilities() - dash_videos = settings.use_dash_videos() - - if use_dash and any([item['container'] == 'mpd' for item in stream_data_list]): - use_dash = context.use_inputstream_adaptive() - - if not use_dash: - stream_data_list = [item for item in stream_data_list if (item['container'] != 'mpd')] - else: - if not dash_live: - stream_data_list = [item for item in stream_data_list - if ((item['container'] != 'mpd') or - ((item['container'] == 'mpd') and - (item.get('Live') is not True)))] - - if not dash_videos: - stream_data_list = [item for item in stream_data_list - if ((item['container'] != 'mpd') or - ((item['container'] == 'mpd') and - (item.get('Live') is True)))] + if not adaptive_live: + stream_data_list = [item for item in stream_data_list + if (item['container'] != 'mpd' or + not item.get('Live'))] + elif not use_adaptive: + stream_data_list = [item for item in stream_data_list + if item['container'] != 'mpd'] def _find_best_fit_video(_stream_data): if audio_only: - return video_quality - _stream_data.get('sort', [0, 0])[0] + return video_quality - _stream_data.get('sort', (0, 0))[0] else: return video_quality - _stream_data.get('video', {}).get('height', 0) - sorted_stream_data_list = sorted(stream_data_list, key=_sort_stream_data, reverse=True) + sorted_stream_data_list = sorted(stream_data_list, key=_sort_stream_data) context.log_debug('selectable streams: %d' % len(sorted_stream_data_list)) log_streams = list() diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/player.py b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/player.py index 82933bf688..c8ce052263 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/player.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/kodion/utils/player.py @@ -52,8 +52,8 @@ def abort_now(self): def run(self): playing_file = self.playback_json.get('playing_file') play_count = self.playback_json.get('play_count', 0) - use_history = self.playback_json.get('use_history', False) - playback_history = self.playback_json.get('playback_history', False) + use_remote_history = self.playback_json.get('use_remote_history', False) + use_local_history = self.playback_json.get('use_local_history', False) playback_stats = self.playback_json.get('playback_stats') refresh_only = self.playback_json.get('refresh_only', False) try: @@ -101,7 +101,7 @@ def run(self): client = self.provider.get_client(self.context) is_logged_in = self.provider.is_logged_in() - if is_logged_in and report_url and use_history: + if is_logged_in and report_url and use_remote_history: client.update_watch_history(self.video_id, report_url) self.context.log_debug('Playback start reported: |%s|' % self.video_id) @@ -194,7 +194,7 @@ def run(self): self.update_times(last_total_time, last_current_time, last_segment_start, last_percent_complete) break - if is_logged_in and report_url and use_history: + if is_logged_in and report_url and use_remote_history: if first_report or (p_waited >= report_interval): if first_report: first_report = False @@ -239,7 +239,7 @@ def run(self): p_waited += p_wait_time - if is_logged_in and report_url and use_history: + if is_logged_in and report_url and use_remote_history: client.update_watch_history(self.video_id, report_url .format(st=format(self.segment_start, '.3f'), et=format(self.current_time, '.3f'), @@ -268,7 +268,7 @@ def run(self): if self.percent_complete >= settings.get_play_count_min_percent(): play_count = '1' self.current_time = 0.0 - if is_logged_in and report_url and use_history: + if is_logged_in and report_url and use_remote_history: client.update_watch_history(self.video_id, report_url .format(st=format(self.total_time, '.3f'), et=format(self.total_time, '.3f'), @@ -276,7 +276,7 @@ def run(self): self.context.log_debug('Playback reported [%s] @ 100%% state=%s' % (self.video_id, state)) else: - if is_logged_in and report_url and use_history: + if is_logged_in and report_url and use_remote_history: client.update_watch_history(self.video_id, report_url .format(st=format(self.current_time, '.3f'), et=format(self.current_time, '.3f'), @@ -288,7 +288,7 @@ def run(self): refresh_only = True - if playback_history: + if use_local_history: self.context.get_playback_history().update(self.video_id, play_count, self.total_time, self.current_time, self.percent_complete) diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/client/__config__.py b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/client/__config__.py index ca3959ec75..7df58a97bd 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/client/__config__.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/client/__config__.py @@ -209,8 +209,8 @@ def _strip_api_keys(self, api_key, client_id, client_secret): return return_key, return_id, return_secret -notification_data = {'use_httpd': (__settings.use_dash_videos() and - __settings.use_dash()) or +notification_data = {'use_httpd': (__settings.use_mpd_videos() or + __settings.use_mpd_live_streams()) or (__settings.api_config_page()), 'httpd_port': __settings.httpd_port(), 'whitelist': __settings.httpd_whitelist(), diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/client/youtube.py b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/client/youtube.py index 568f7503a1..3657cef021 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/client/youtube.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/client/youtube.py @@ -18,6 +18,7 @@ import requests from .login_client import LoginClient +from ..youtube_exceptions import YouTubeException from ..helper.video_info import VideoInfo from ...kodion import Context from ...kodion.utils import datetime_parser @@ -96,7 +97,7 @@ def update_watch_history(self, video_id, url): def get_video_streams(self, context, video_id): video_info = VideoInfo(context, access_token=self._access_token_tv, - api_key=self._config_tv['key'], language=self._language) + language=self._language) video_streams = video_info.load_stream_infos(video_id) @@ -126,9 +127,9 @@ def get_video_streams(self, context, video_id): video_stream['audio']['bitrate']) elif 'audio' in video_stream or 'video' in video_stream: - encoding = video_stream.get('audio', dict()).get('encoding') + encoding = video_stream.get('audio', {}).get('encoding') if not encoding: - encoding = video_stream.get('video', dict()).get('encoding') + encoding = video_stream.get('video', {}).get('encoding') if encoding: title = '%s (%s; %s)' % (context.get_ui().bold(video_stream['title']), video_stream['container'], @@ -627,7 +628,7 @@ def get_related_videos(self, video_id, page_token='', max_results=0): params['pageToken'] = page_token return self.perform_v3_request(method='GET', path='search', params=params) - + def get_parent_comments(self, video_id, page_token='', max_results=0): max_results = self._max_results if max_results <= 0 else max_results @@ -639,9 +640,9 @@ def get_parent_comments(self, video_id, page_token='', max_results=0): 'maxResults': str(max_results)} if page_token: params['pageToken'] = page_token - + return self.perform_v3_request(method='GET', path='commentThreads', params=params, no_login=True) - + def get_child_comments(self, parent_id, page_token='', max_results=0): max_results = self._max_results if max_results <= 0 else max_results @@ -652,7 +653,7 @@ def get_child_comments(self, parent_id, page_token='', max_results=0): 'maxResults': str(max_results)} if page_token: params['pageToken'] = page_token - + return self.perform_v3_request(method='GET', path='comments', params=params, no_login=True) def get_channel_videos(self, channel_id, page_token=''): @@ -821,15 +822,21 @@ def _perform(_page_token, _offset, _result): 'Accept-Language': 'en-US,en;q=0.7,de;q=0.3' } + session = requests.Session() + session.headers = headers + session.verify = self._verify + adapter = requests.adapters.HTTPAdapter(pool_maxsize=5, pool_block=True) + session.mount("https://", adapter) responses = [] def fetch_xml(_url, _responses): try: - _response = requests.get(_url, {}, headers=headers, verify=self._verify, allow_redirects=True) - except: - _response = None + _response = session.get(_url, timeout=(3.05, 27)) + _response.raise_for_status() + except requests.exceptions.RequestException as error: + _context.log_debug('Response: {0}'.format(error.response and error.response.text)) _context.log_error('Failed |%s|' % traceback.print_exc()) - + return _responses.append(_response) threads = [] @@ -843,7 +850,8 @@ def fetch_xml(_url, _responses): thread.start() for thread in threads: - thread.join() + thread.join(30) + session.close() for response in responses: if response: @@ -857,14 +865,14 @@ def fetch_xml(_url, _responses): media_ns = '{http://search.yahoo.com/mrss/}' for entry in root.findall(ns + "entry"): - # empty news dictionary + # empty news dictionary entry_data = { 'id': entry.find(yt_ns + 'videoId').text, 'title': entry.find(media_ns + "group").find(media_ns + 'title').text, 'channel': entry.find(ns + "author").find(ns + "name").text, 'published': entry.find(ns + 'published').text, } - # append items list + # append items list _result['items'].append(entry_data) # sorting by publish date @@ -1037,64 +1045,68 @@ def _perform(_playlist_idx, _page_token, _offset, _result): return result - def perform_v3_request(self, method='GET', headers=None, path=None, post_data=None, params=None, - allow_redirects=True, no_login=False): - - yt_config = self._config + def _request(self, url, method='GET', + cookies=None, data=None, headers=None, json=None, params=None, + error_msg=None, raise_error=False, timeout=(3.05, 27), **_): + try: + result = requests.request(method, url, + verify=self._verify, + allow_redirects=True, + timeout=timeout, + cookies=cookies, + data=data, + headers=headers, + json=json, + params=params) + result.raise_for_status() + except requests.exceptions.RequestException as error: + response = error.response and error.response.text + _context.log_debug('Response: {0}'.format(response)) + _context.log_error('{0}\n{1}'.format( + error_msg or 'Request failed', traceback.format_exc() + )) + if raise_error: + raise YouTubeException(error_msg) from error + return None + return result - if not yt_config.get('key'): - return { - 'error': - { - 'errors': [{'reason': 'accessNotConfigured'}], - 'message': 'No API keys provided' - } - } + def perform_v3_request(self, method='GET', headers=None, path=None, + post_data=None, params=None, no_login=False): # params - if not params: - params = {} - _params = {'key': yt_config['key']} - _params.update(params) + _params = {} # headers - if not headers: - headers = {} _headers = {'Host': 'www.googleapis.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.36 Safari/537.36', 'Accept-Encoding': 'gzip, deflate'} + # a config can decide if a token is allowed - if self._access_token and yt_config.get('token-allowed', True) and not no_login: + if self._access_token and self._config.get('token-allowed', True) and not no_login: _headers['Authorization'] = 'Bearer %s' % self._access_token - _headers.update(headers) + else: + _params['key'] = self._config_tv['key'] # url _url = 'https://www.googleapis.com/youtube/v3/%s' % path.strip('/') - result = None - log_params = copy.deepcopy(params) - if 'location' in log_params: - log_params['location'] = 'xx.xxxx,xx.xxxx' + if headers: + _headers.update(headers) + if params: + _params.update(params) + log_params = copy.deepcopy(params) + if 'location' in log_params: + log_params['location'] = 'xx.xxxx,xx.xxxx' + else: + log_params = None _context.log_debug('[data] v3 request: |{0}| path: |{1}| params: |{2}| post_data: |{3}|'.format(method, path, log_params, post_data)) - if method == 'GET': - result = requests.get(_url, params=_params, headers=_headers, verify=self._verify, allow_redirects=allow_redirects) - elif method == 'POST': - _headers['content-type'] = 'application/json' - result = requests.post(_url, json=post_data, params=_params, headers=_headers, verify=self._verify, - allow_redirects=allow_redirects) - elif method == 'PUT': - _headers['content-type'] = 'application/json' - result = requests.put(_url, json=post_data, params=_params, headers=_headers, verify=self._verify, - allow_redirects=allow_redirects) - elif method == 'DELETE': - result = requests.delete(_url, params=_params, headers=_headers, verify=self._verify, - allow_redirects=allow_redirects) - - _context.log_debug('[data] v3 response: |{0}| headers: |{1}|'.format(result.status_code, result.headers)) + result = self._request(_url, method=method, headers=_headers, json=post_data, params=_params) if result is None: return {} + _context.log_debug('[data] v3 response: |{0}| headers: |{1}|'.format(result.status_code, result.headers)) + if result.headers.get('content-type', '').startswith('application/json'): try: return result.json() @@ -1103,20 +1115,15 @@ def perform_v3_request(self, method='GET', headers=None, path=None, post_data=No 'status_code': result.status_code, 'payload': result.text } - return {} - def perform_v1_tv_request(self, method='GET', headers=None, path=None, post_data=None, params=None, - allow_redirects=True): + def perform_v1_tv_request(self, method='GET', headers=None, path=None, + post_data=None, params=None, no_login=False): + # params - if not params: - params = {} - _params = {'key': self._config_tv['key']} - _params.update(params) + _params = {} # headers - if not headers: - headers = {} _headers = { 'User-Agent': ('Mozilla/5.0 (Linux; Android 7.0; SM-G892A Build/NRD90M;' ' wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0' @@ -1127,32 +1134,37 @@ def perform_v1_tv_request(self, method='GET', headers=None, path=None, post_data 'Accept-Language': 'en-US,en;q=0.5', } - if self._access_token_tv: - _headers['Authorization'] = 'Bearer %s' % self._access_token_tv - _headers.update(headers) + if self._access_token and self._config.get('token-allowed', True) and not no_login: + _headers['Authorization'] = 'Bearer %s' % self._access_token + else: + _params = {'key': self._config_tv['key']} # url _url = 'https://www.googleapis.com/youtubei/v1/%s' % path.strip('/') - result = None - - _context.log_debug('[i] v1 request: |{0}| path: |{1}| params: |{2}| post_data: |{3}|'.format(method, path, params, post_data)) - if method == 'GET': - result = requests.get(_url, params=_params, headers=_headers, verify=self._verify, allow_redirects=allow_redirects) - elif method == 'POST': - _headers['content-type'] = 'application/json' - result = requests.post(_url, json=post_data, params=_params, headers=_headers, verify=self._verify, - allow_redirects=allow_redirects) - elif method == 'PUT': - _headers['content-type'] = 'application/json' - result = requests.put(_url, json=post_data, params=_params, headers=_headers, verify=self._verify, - allow_redirects=allow_redirects) - elif method == 'DELETE': - result = requests.delete(_url, params=_params, headers=_headers, verify=self._verify, - allow_redirects=allow_redirects) + if headers: + _headers.update(headers) + if params: + _params.update(params) + log_params = copy.deepcopy(params) + if 'location' in log_params: + log_params['location'] = 'xx.xxxx,xx.xxxx' + else: + log_params = None + _context.log_debug('[data] v1 request: |{0}| path: |{1}| params: |{2}| post_data: |{3}|'.format(method, path, log_params, post_data)) + result = self._request(_url, method=method, headers=_headers, json=post_data, params=_params) if result is None: return {} + _context.log_debug('[data] v1 response: |{0}| headers: |{1}|'.format(result.status_code, result.headers)) + if result.headers.get('content-type', '').startswith('application/json'): - return result.json() + try: + return result.json() + except ValueError: + return { + 'status_code': result.status_code, + 'payload': result.text + } + return {} diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/resource_manager.py b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/resource_manager.py index 3c94bfa20a..81afc78abd 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/resource_manager.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/resource_manager.py @@ -129,7 +129,7 @@ def _update_videos(self, video_ids, live_details=False, suppress_errors=False): self._context.log_debug('Cached data for videos |%s|' % ', '.join(list(video_data.keys()))) played_items = dict() - if self._context.get_settings().use_playback_history(): + if self._context.get_settings().use_local_history(): playback_history = self._context.get_playback_history() played_items = playback_history.get_items(video_ids) diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/signature/cipher.py b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/signature/cipher.py index ac93388477..8db38e1ddb 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/signature/cipher.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/signature/cipher.py @@ -67,11 +67,7 @@ def _load_javascript(self, javascript): parameter = cipher_match.group('parameter').split(',') for i in range(len(parameter)): param = parameter[i].strip() - if i == 0: - param = '%SIG%' - else: - param = int(param) - + param = '%SIG%' if i == 0 else int(param) parameter[i] = param # get function from object @@ -108,30 +104,30 @@ def _load_javascript(self, javascript): @staticmethod def _find_signature_function_name(javascript): - # match_patterns source is youtube-dl - # https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/extractor/youtube.py#L1344 + # match_patterns source is from youtube-dl + # https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/extractor/youtube.py#L1553 # LICENSE: The Unlicense - match_patterns = [ - r'\b[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*encodeURIComponent\s*\(\s*(?P[a-zA-Z0-9$]+)\(', - r'\b[a-zA-Z0-9]+\s*&&\s*[a-zA-Z0-9]+\.set\([^,]+\s*,\s*encodeURIComponent\s*\(\s*(?P[a-zA-Z0-9$]+)\(', - r'(?:\b|[^a-zA-Z0-9$])(?P[a-zA-Z0-9$]{2})\s*=\s*function\(\s*a\s*\)\s*{\s*a\s*=\s*a\.split\(\s*""\s*\)', - r'(?P[a-zA-Z0-9$]+)\s*=\s*function\(\s*a\s*\)\s*{\s*a\s*=\s*a\.split\(\s*""\s*\)', - r'(["\'])signature\1\s*,\s*(?P[a-zA-Z0-9$]+)\(', - r'\.sig\|\|(?P[a-zA-Z0-9$]+)\(', - r'yt\.akamaized\.net/\)\s*\|\|\s*.*?\s*[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*(?:encodeURIComponent\s*\()?\s*' - r'(?P[a-zA-Z0-9$]+)\(', - r'\b[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*(?P[a-zA-Z0-9$]+)\(', - r'\b[a-zA-Z0-9]+\s*&&\s*[a-zA-Z0-9]+\.set\([^,]+\s*,\s*(?P[a-zA-Z0-9$]+)\(', - r'\bc\s*&&\s*a\.set\([^,]+\s*,\s*\([^)]*\)\s*\(\s*(?P[a-zA-Z0-9$]+)\(', - r'\bc\s*&&\s*[a-zA-Z0-9]+\.set\([^,]+\s*,\s*\([^)]*\)\s*\(\s*(?P[a-zA-Z0-9$]+)\(', - r'\bc\s*&&\s*[a-zA-Z0-9]+\.set\([^,]+\s*,\s*\([^)]*\)\s*\(\s*(?P[a-zA-Z0-9$]+)\(' - ] + match_patterns = ( + r'\b[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*encodeURIComponent\s*\(\s*(?P[a-zA-Z0-9$]+)\(', + r'\b[a-zA-Z0-9]+\s*&&\s*[a-zA-Z0-9]+\.set\([^,]+\s*,\s*encodeURIComponent\s*\(\s*(?P[a-zA-Z0-9$]+)\(', + r'\bm=(?P[a-zA-Z0-9$]{2,})\(decodeURIComponent\(h\.s\)\)', + r'\bc&&\(c=(?P[a-zA-Z0-9$]{2,})\(decodeURIComponent\(c\)\)', + r'(?:\b|[^a-zA-Z0-9$])(?P[a-zA-Z0-9$]{2,})\s*=\s*function\(\s*a\s*\)\s*{\s*a\s*=\s*a\.split\(\s*""\s*\)(?:;[a-zA-Z0-9$]{2}\.[a-zA-Z0-9$]{2}\(a,\d+\))?', + r'(?P[a-zA-Z0-9$]+)\s*=\s*function\(\s*a\s*\)\s*{\s*a\s*=\s*a\.split\(\s*""\s*\)', + # Obsolete patterns + r'("|\')signature\1\s*,\s*(?P[a-zA-Z0-9$]+)\(', + r'\.sig\|\|(?P[a-zA-Z0-9$]+)\(', + r'yt\.akamaized\.net/\)\s*\|\|\s*.*?\s*[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*(?:encodeURIComponent\s*\()?\s*(?P[a-zA-Z0-9$]+)\(', + r'\b[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*(?P[a-zA-Z0-9$]+)\(', + r'\b[a-zA-Z0-9]+\s*&&\s*[a-zA-Z0-9]+\.set\([^,]+\s*,\s*(?P[a-zA-Z0-9$]+)\(', + r'\bc\s*&&\s*[a-zA-Z0-9]+\.set\([^,]+\s*,\s*\([^)]*\)\s*\(\s*(?P[a-zA-Z0-9$]+)\(' + ) for pattern in match_patterns: match = re.search(pattern, javascript) if match: - return re.escape(match.group('name')) + return re.escape(match.group('sig')) return '' @@ -157,9 +153,8 @@ def _find_object_body(object_name, javascript): def _get_object_function(self, object_name, function_name, javascript): if object_name not in self._object_cache: self._object_cache[object_name] = {} - else: - if function_name in self._object_cache[object_name]: - return self._object_cache[object_name][function_name] + elif function_name in self._object_cache[object_name]: + return self._object_cache[object_name][function_name] _object_body = self._find_object_body(object_name, javascript) _object_body = _object_body.split('},') diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/subtitles.py b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/subtitles.py index a3591d28f7..b6e0779856 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/subtitles.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/subtitles.py @@ -7,10 +7,7 @@ """ from html import unescape -from urllib.parse import parse_qs -from urllib.parse import urlencode -from urllib.parse import urlsplit -from urllib.parse import urlunsplit +from urllib.parse import (parse_qs, urlsplit, urlunsplit, urlencode, urljoin) import xbmcvfs import requests @@ -27,40 +24,71 @@ class Subtitles(object): BASE_PATH = 'special://temp/plugin.video.youtube/' SRT_FILE = ''.join([BASE_PATH, '%s.%s.srt']) - def __init__(self, context, headers, video_id, captions): + def __init__(self, context, video_id, captions, headers=None): self.context = context self._verify = context.get_settings().verify_ssl() self.video_id = video_id - self.language = context.get_settings().get_string('youtube.language', 'en_US').replace('_', '-') - self.headers = headers.copy() + self.language = (context.get_settings() + .get_string('youtube.language', 'en_US') + .replace('_', '-')) + + if not headers and 'headers' in captions: + headers = captions['headers'] + headers.pop('Authorization', None) + headers.pop('Content-Length', None) + headers.pop('Content-Type', None) + self.headers = headers + + ui = self.context.get_ui() + self.prompt_override = ( + ui.get_home_window_property('prompt_for_subtitles') == video_id + ) + ui.clear_home_window_property('prompt_for_subtitles') - self.caption_track = {} self.renderer = captions.get('playerCaptionsTracklistRenderer', {}) self.caption_tracks = self.renderer.get('captionTracks', []) self.translation_langs = self.renderer.get('translationLanguages', []) - default_audio = self.renderer.get('defaultAudioTrackIndex') - if default_audio is not None: - audio_tracks = self.renderer.get('audioTracks', []) + try: + default_audio = self.renderer.get('defaultAudioTrackIndex') + default_audio = self.renderer.get('audioTracks')[default_audio] + except (IndexError, TypeError): + default_audio = None + + self.defaults = { + 'caption': {}, + 'lang_code': 'und', + 'is_asr': False, + } + if default_audio is None: + return + + default_caption = self.renderer.get( + 'defaultTranslationSourceTrackIndices', [None] + )[0] + + if default_caption is None: + default_caption = ( + default_audio.get('hasDefaultTrack') + and default_audio.get('defaultCaptionTrackIndex') + ) + + if default_caption is None: try: - audio_track = audio_tracks[default_audio] - except: - audio_track = None - if audio_track: - default_caption = audio_track.get('defaultCaptionTrackIndex') - if default_caption is None: - default_caption = audio_track.get('captionTrackIndices') - if (default_caption is not None) and (isinstance(default_caption, list)): - default_caption = default_caption[0] - if default_caption is not None: - try: - self.caption_track = self.caption_tracks[default_caption] - except: - pass + default_caption = default_audio.get('captionTrackIndices')[0] + except (IndexError, TypeError): + default_caption = 0 - ui = self.context.get_ui() - self.prompt_override = ui.get_home_window_property('prompt_for_subtitles') == video_id - ui.clear_home_window_property('prompt_for_subtitles') + try: + default_caption = self.caption_tracks[default_caption] or {} + except IndexError: + return + + self.defaults = { + 'caption': default_caption, + 'lang_code': default_caption.get('languageCode') or 'und', + 'is_asr': default_caption.get('kind') == 'asr', + } def srt_filename(self, sub_language): return self.SRT_FILE % (self.video_id, sub_language) @@ -90,6 +118,12 @@ def _unescape(self, text): self.context.log_debug('Subtitle unescape: failed to unescape text') return text + def get_default_lang(self): + return { + 'code': self.defaults['lang_code'], + 'is_asr': self.defaults['is_asr'], + } + def get_subtitles(self): if self.prompt_override: languages = self.LANG_PROMPT @@ -98,19 +132,19 @@ def get_subtitles(self): self.context.log_debug('Subtitle get_subtitles: for setting |%s|' % str(languages)) if languages == self.LANG_NONE: return [] - elif languages == self.LANG_CURR: + if languages == self.LANG_CURR: list_of_subs = [] list_of_subs.extend(self._get(self.language)) list_of_subs.extend(self._get(language=self.language.split('-')[0])) return list(set(list_of_subs)) - elif languages == self.LANG_CURR_NO_ASR: + if languages == self.LANG_CURR_NO_ASR: list_of_subs = [] list_of_subs.extend(self._get(self.language, no_asr=True)) list_of_subs.extend(self._get(language=self.language.split('-')[0], no_asr=True)) return list(set(list_of_subs)) - elif languages == self.LANG_PROMPT: + if languages == self.LANG_PROMPT: return self._prompt() - elif languages == self.LANG_CURR_FALLBACK: + if languages == self.LANG_CURR_FALLBACK: list_of_subs = [] list_of_subs.extend(self._get(language=self.language)) list_of_subs.extend(self._get(language=self.language.split('-')[0])) @@ -118,8 +152,8 @@ def get_subtitles(self): list_of_subs.extend(self._get('en-US')) list_of_subs.extend(self._get('en-GB')) return list(set(list_of_subs)) - else: - self.context.log_debug('Unknown language_enum: %s for subtitles' % str(languages)) + self.context.log_debug('Unknown language_enum: %s for subtitles' % str(languages)) + return [] def _get_all(self): list_of_subs = [] @@ -135,78 +169,79 @@ def _prompt(self): choice = self.context.get_ui().on_select(self.context.localize(30560), [language_name for language, language_name in languages]) if choice != -1: return self._get(language=languages[choice][0], language_name=languages[choice][1]) - else: - self.context.log_debug('Subtitle selection cancelled') - return [] - else: - self.context.log_debug('No subtitles found for prompt') + self.context.log_debug('Subtitle selection cancelled') return [] + self.context.log_debug('No subtitles found for prompt') + return [] - def _get(self, language='en', language_name=None, no_asr=False): - fname = self.srt_filename(language) + def _get(self, lang_code='en', language=None, no_asr=False): + fname = self.srt_filename(lang_code) if xbmcvfs.exists(fname): - self.context.log_debug('Subtitle exists for: %s, filename: %s' % (language, fname)) + self.context.log_debug('Subtitle exists for: %s, filename: %s' % (lang_code, fname)) return [fname] caption_track = None asr_track = None has_translation = False for track in self.caption_tracks: - if language == track.get('languageCode'): - if language_name is not None: - if language_name == self._get_language_name(track): + if lang_code == track.get('languageCode'): + if language is not None: + if language == self._get_language_name(track): caption_track = track break + elif no_asr and (track.get('kind') == 'asr'): + continue + elif track.get('kind') == 'asr': + asr_track = track else: - if no_asr and (track.get('kind') == 'asr'): - continue - elif track.get('kind') == 'asr': - asr_track = track - else: - caption_track = track + caption_track = track if (caption_track is None) and (asr_track is not None): caption_track = asr_track for lang in self.translation_langs: - if language == lang.get('languageCode'): + if lang_code == lang.get('languageCode'): has_translation = True break - if (self.caption_track.get('languageCode') != language) and (not has_translation) and (caption_track is None): - self.context.log_debug('No subtitles found for: %s' % language) + if (lang_code != self.defaults['lang_code'] and not has_translation + and caption_track is None): + self.context.log_debug('No subtitles found for: %s' % lang_code) return [] subtitle_url = None - if (caption_track is None) and has_translation: - base_url = self.caption_track.get('baseUrl') - if base_url: - subtitle_url = self.set_query_param(base_url, 'type', 'track') - subtitle_url = self.set_query_param(subtitle_url, 'tlang', language) - elif caption_track is not None: - base_url = caption_track.get('baseUrl') - if base_url: - subtitle_url = self.set_query_param(base_url, 'type', 'track') + if caption_track is not None: + base_url = self._normalize_url(caption_track.get('baseUrl')) + has_translation = False + elif has_translation: + base_url = self._normalize_url( + self.defaults['caption'].get('baseUrl') + ) + else: + base_url = None + + if base_url: + subtitle_url = self._set_query_param(base_url, + ('type', 'track'), + ('fmt', 'vtt'), + ('tlang', lang_code) if has_translation else (None, None), + ) if subtitle_url: - subtitle_url = self.set_query_param(subtitle_url, 'fmt', 'vtt') self.context.log_debug('Subtitle url: %s' % subtitle_url) if not self.context.get_settings().subtitle_download(): return [subtitle_url] - else: - result_auto = requests.get(subtitle_url, headers=self.headers, - verify=self._verify, allow_redirects=True) + result_auto = requests.get(subtitle_url, headers=self.headers, + verify=self._verify, allow_redirects=True) - if result_auto.text: - self.context.log_debug('Subtitle found for: %s' % language) - self._write_file(fname, bytearray(self._unescape(result_auto.text), encoding='utf8', errors='ignore')) - return [fname] - else: - self.context.log_debug('Failed to retrieve subtitles for: %s' % language) - return [] - else: - self.context.log_debug('No subtitles found for: %s' % language) + if result_auto.text: + self.context.log_debug('Subtitle found for: %s' % lang_code) + self._write_file(fname, bytearray(self._unescape(result_auto.text), encoding='utf8', errors='ignore')) + return [fname] + self.context.log_debug('Failed to retrieve subtitles for: %s' % lang_code) return [] + self.context.log_debug('No subtitles found for: %s' % lang_code) + return [] def _get_language_name(self, track): key = 'languageName' if 'languageName' in track else 'name' @@ -226,13 +261,40 @@ def _recode_language_name(language_name): return language_name @staticmethod - def set_query_param(url, name, value): + def _set_query_param(url, *pairs): + if not url or not pairs: + return url + + num_params = len(pairs) + if not num_params: + return url + if not isinstance(pairs[0], (list, tuple)): + if num_params >= 2: + pairs = zip(*[iter(pairs)] * 2) + else: + return url + scheme, netloc, path, query_string, fragment = urlsplit(url) query_params = parse_qs(query_string) - query_params[name] = [value] + for name, value in pairs: + if name: + query_params[name] = [value] + new_query_string = urlencode(query_params, doseq=True) if isinstance(scheme, bytes): new_query_string = new_query_string.encode('utf-8') return urlunsplit((scheme, netloc, path, new_query_string, fragment)) + + @staticmethod + def _normalize_url(url): + if not url: + url = '' + elif url.startswith(('http://', 'https://')): + pass + elif url.startswith('//'): + url = urljoin('https:', url) + elif url.startswith('/'): + url = urljoin('https://www.youtube.com', url) + return url diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/tv.py b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/tv.py index 53f570674d..c9818f924d 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/tv.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/tv.py @@ -46,7 +46,7 @@ def my_subscriptions_to_items(provider, context, json_data, do_filter=False): video_id_dict[video_id] = video_item - use_play_data = not incognito and context.get_settings().use_playback_history() + use_play_data = not incognito and context.get_settings().use_local_history() channel_item_dict = {} utils.update_video_infos(provider, context, video_id_dict, channel_items_dict=channel_item_dict, use_play_data=use_play_data) @@ -92,7 +92,7 @@ def tv_videos_to_items(provider, context, json_data): video_id_dict[video_id] = video_item - use_play_data = not incognito and context.get_settings().use_playback_history() + use_play_data = not incognito and context.get_settings().use_local_history() channel_item_dict = {} utils.update_video_infos(provider, context, video_id_dict, channel_items_dict=channel_item_dict, use_play_data=use_play_data) diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/utils.py b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/utils.py index 2fdd6108ab..734e0a12fa 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/utils.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/utils.py @@ -475,8 +475,8 @@ def update_play_info(provider, context, video_id, video_item, video_stream, use_ if 'headers' in video_stream: video_item.set_headers(video_stream['headers']) - # set uses_dash - video_item.set_use_dash(settings.use_dash()) + # set uses_mpd + video_item.set_use_mpd_video(settings.use_mpd_videos()) license_info = video_stream.get('license_info', {}) @@ -682,8 +682,10 @@ def filter_short_videos(context, items): shorts_filtered = [] for item in items: - if hasattr(item, '_duration') and (0 < item.get_duration() <= 60): - continue + if hasattr(item, '_duration'): + item_duration = 0 if item.get_duration() is None else item.get_duration() + if 0 < item_duration <= 60: + continue shorts_filtered += [item] return shorts_filtered diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/v3.py b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/v3.py index 6f2a9e7a76..b0427088fc 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/v3.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/v3.py @@ -266,7 +266,7 @@ def _process_list_response(provider, context, json_data): else: raise kodion.KodionException("Unknown kind '%s'" % kind) - use_play_data = not incognito and context.get_settings().use_playback_history() + use_play_data = not incognito and context.get_settings().use_local_history() # this will also update the channel_id_dict with the correct channel id for each video. channel_items_dict = {} diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/video_info.py b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/video_info.py index 61a2482607..8bdbc6e632 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/video_info.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/video_info.py @@ -8,24 +8,23 @@ See LICENSES/GPL-2.0-only for more information. """ -import copy import re -import json import random import traceback + +from json import dumps as json_dumps, loads as json_loads from html import unescape -from urllib.parse import parse_qsl -from urllib.parse import urlsplit -from urllib.parse import urlencode -from urllib.parse import quote -from urllib.parse import unquote +from urllib.parse import (parse_qs, urlsplit, urlunsplit, urlencode, urljoin, + quote, unquote) import requests +import xbmcvfs + from ...kodion.utils import is_httpd_live, make_dirs, DataCache from ..youtube_exceptions import YouTubeException from .subtitles import Subtitles - -import xbmcvfs +from .ratebypass import ratebypass +from .signature.cipher import Cipher class VideoInfo(object): @@ -33,7 +32,7 @@ class VideoInfo(object): # === Non-DASH === '5': {'container': 'flv', 'title': '240p', - 'sort': [240, 0], + 'sort': [-240, 0], 'video': {'height': 240, 'encoding': 'h.263'}, 'audio': {'bitrate': 64, 'encoding': 'mp3'}}, '6': {'container': 'flv', # Discontinued @@ -46,17 +45,17 @@ class VideoInfo(object): 'audio': {'encoding': 'aac'}}, '17': {'container': '3gp', 'title': '144p', - 'sort': [144, -20], + 'sort': [-144, 20], 'video': {'height': 144, 'encoding': 'mpeg-4'}, 'audio': {'bitrate': 24, 'encoding': 'aac'}}, '18': {'container': 'mp4', 'title': '360p', - 'sort': [360, 0], + 'sort': [-360, 0], 'video': {'height': 360, 'encoding': 'h.264'}, 'audio': {'bitrate': 96, 'encoding': 'aac'}}, '22': {'container': 'mp4', 'title': '720p', - 'sort': [720, 0], + 'sort': [-720, 0], 'video': {'height': 720, 'encoding': 'h.264'}, 'audio': {'bitrate': 192, 'encoding': 'aac'}}, '34': {'container': 'flv', # Discontinued @@ -69,22 +68,22 @@ class VideoInfo(object): 'audio': {'bitrate': 128, 'encoding': 'aac'}}, '36': {'container': '3gp', 'title': '240p', - 'sort': [240, -20], + 'sort': [-240, 20], 'video': {'height': 240, 'encoding': 'mpeg-4'}, 'audio': {'bitrate': 32, 'encoding': 'aac'}}, '37': {'container': 'mp4', 'title': '1080p', - 'sort': [1080, 0], + 'sort': [-1080, 0], 'video': {'height': 1080, 'encoding': 'h.264'}, 'audio': {'bitrate': 192, 'encoding': 'aac'}}, '38': {'container': 'mp4', 'title': '3072p', - 'sort': [3072, 0], + 'sort': [-3072, 0], 'video': {'height': 3072, 'encoding': 'h.264'}, 'audio': {'bitrate': 192, 'encoding': 'aac'}}, '43': {'container': 'webm', 'title': '360p', - 'sort': [360, -1], + 'sort': [-360, 1], 'video': {'height': 360, 'encoding': 'vp8'}, 'audio': {'bitrate': 128, 'encoding': 'vorbis'}}, '44': {'container': 'webm', # Discontinued @@ -101,50 +100,50 @@ class VideoInfo(object): 'audio': {'bitrate': 192, 'encoding': 'vorbis'}}, '59': {'container': 'mp4', 'title': '480p', - 'sort': [480, 0], + 'sort': [-480, 0], 'video': {'height': 480, 'encoding': 'h.264'}, 'audio': {'bitrate': 96, 'encoding': 'aac'}}, '78': {'container': 'mp4', 'title': '360p', - 'sort': [360, 0], + 'sort': [-360, 0], 'video': {'height': 360, 'encoding': 'h.264'}, 'audio': {'bitrate': 96, 'encoding': 'aac'}}, # === 3D === '82': {'container': 'mp4', '3D': True, 'title': '3D@360p', - 'sort': [360, 0], + 'sort': [-360, 0], 'video': {'height': 360, 'encoding': 'h.264'}, 'audio': {'bitrate': 96, 'encoding': 'aac'}}, '83': {'container': 'mp4', '3D': True, 'title': '3D@240p', - 'sort': [240, 0], + 'sort': [-240, 0], 'video': {'height': 240, 'encoding': 'h.264'}, 'audio': {'bitrate': 96, 'encoding': 'aac'}}, '84': {'container': 'mp4', '3D': True, 'title': '3D@720p', - 'sort': [720, 0], + 'sort': [-720, 0], 'video': {'height': 720, 'encoding': 'h.264'}, 'audio': {'bitrate': 192, 'encoding': 'aac'}}, '85': {'container': 'mp4', '3D': True, 'title': '3D@1080p', - 'sort': [1080, 0], + 'sort': [-1080, 0], 'video': {'height': 1080, 'encoding': 'h.264'}, 'audio': {'bitrate': 192, 'encoding': 'aac'}}, '100': {'container': 'webm', '3D': True, 'title': '3D@360p', - 'sort': [360, -1], + 'sort': [-360, 1], 'video': {'height': 360, 'encoding': 'vp8'}, 'audio': {'bitrate': 128, 'encoding': 'vorbis'}}, '101': {'container': 'webm', # Discontinued 'discontinued': True, '3D': True, 'title': '3D@360p', - 'sort': [360, -1], + 'sort': [-360, 1], 'video': {'height': 360, 'encoding': 'vp8'}, 'audio': {'bitrate': 192, 'encoding': 'vorbis'}}, '102': {'container': 'webm', # Discontinued @@ -156,44 +155,44 @@ class VideoInfo(object): '91': {'container': 'ts', 'Live': True, 'title': 'Live@144p', - 'sort': [144, 0], + 'sort': [-144, 0], 'video': {'height': 144, 'encoding': 'h.264'}, 'audio': {'bitrate': 48, 'encoding': 'aac'}}, '92': {'container': 'ts', 'Live': True, 'title': 'Live@240p', - 'sort': [240, 0], + 'sort': [-240, 0], 'video': {'height': 240, 'encoding': 'h.264'}, 'audio': {'bitrate': 48, 'encoding': 'aac'}}, '93': {'container': 'ts', 'Live': True, 'title': 'Live@360p', - 'sort': [360, 0], + 'sort': [-360, 0], 'video': {'height': 360, 'encoding': 'h.264'}, 'audio': {'bitrate': 128, 'encoding': 'aac'}}, '94': {'container': 'ts', 'Live': True, 'title': 'Live@480p', - 'sort': [480, 0], + 'sort': [-480, 0], 'video': {'height': 480, 'encoding': 'h.264'}, 'audio': {'bitrate': 128, 'encoding': 'aac'}}, '95': {'container': 'ts', 'Live': True, 'title': 'Live@720p', - 'sort': [720, 0], + 'sort': [-720, 0], 'video': {'height': 720, 'encoding': 'h.264'}, 'audio': {'bitrate': 256, 'encoding': 'aac'}}, '96': {'container': 'ts', 'Live': True, 'title': 'Live@1080p', - 'sort': [1080, 0], + 'sort': [-1080, 0], 'video': {'height': 1080, 'encoding': 'h.264'}, 'audio': {'bitrate': 256, 'encoding': 'aac'}}, '120': {'container': 'flv', # Discontinued 'discontinued': True, 'Live': True, 'title': 'Live@720p', - 'sort': [720, -10], + 'sort': [-720, 10], 'video': {'height': 720, 'encoding': 'h.264'}, 'audio': {'bitrate': 128, 'encoding': 'aac'}}, '127': {'container': 'ts', @@ -205,26 +204,26 @@ class VideoInfo(object): '132': {'container': 'ts', 'Live': True, 'title': 'Live@240p', - 'sort': [240, 0], + 'sort': [-240, 0], 'video': {'height': 240, 'encoding': 'h.264'}, 'audio': {'bitrate': 48, 'encoding': 'aac'}}, '151': {'container': 'ts', 'Live': True, 'unsupported': True, 'title': 'Live@72p', - 'sort': [72, 0], + 'sort': [-72, 0], 'video': {'height': 72, 'encoding': 'h.264'}, 'audio': {'bitrate': 24, 'encoding': 'aac'}}, '300': {'container': 'ts', 'Live': True, 'title': 'Live@720p', - 'sort': [720, 0], + 'sort': [-720, 0], 'video': {'height': 720, 'encoding': 'h.264'}, 'audio': {'bitrate': 128, 'encoding': 'aac'}}, '301': {'container': 'ts', 'Live': True, 'title': 'Live@1080p', - 'sort': [1080, 0], + 'sort': [-1080, 0], 'video': {'height': 1080, 'encoding': 'h.264'}, 'audio': {'bitrate': 128, 'encoding': 'aac'}}, # === DASH (video only) @@ -292,9 +291,10 @@ class VideoInfo(object): '271': {'container': 'webm', 'dash/video': True, 'video': {'height': 1440, 'encoding': 'vp9'}}, - '272': {'container': 'webm', + '272': {'container': 'webm', # was VP9 2160p30 'dash/video': True, - 'video': {'height': 2160, 'encoding': 'vp9'}}, + 'fps': 60, + 'video': {'height': 4320, 'encoding': 'vp9'}}, '278': {'container': 'webm', 'dash/video': True, 'video': {'height': 144, 'encoding': 'vp9'}}, @@ -365,16 +365,6 @@ class VideoInfo(object): 'fps': 60, 'hdr': True, 'video': {'height': 2160, 'encoding': 'vp9.2'}}, - '400': {'container': 'mp4', - 'dash/video': True, - 'fps': 60, - 'hdr': True, - 'video': {'height': 1440, 'encoding': 'av1'}}, - '401': {'container': 'mp4', - 'dash/video': True, - 'fps': 60, - 'hdr': True, - 'video': {'height': 2160, 'encoding': 'av1'}}, '394': {'container': 'mp4', 'dash/video': True, 'fps': 30, @@ -399,77 +389,171 @@ class VideoInfo(object): 'dash/video': True, 'fps': 30, 'video': {'height': 1080, 'encoding': 'av1'}}, + '400': {'container': 'mp4', + 'dash/video': True, + 'fps': 30, + 'video': {'height': 1440, 'encoding': 'av1'}}, + '401': {'container': 'mp4', + 'dash/video': True, + 'fps': 30, + 'video': {'height': 2160, 'encoding': 'av1'}}, + '402': {'container': 'mp4', + 'dash/video': True, + 'fps': 30, + 'video': {'height': 4320, 'encoding': 'av1'}}, + '571': {'container': 'mp4', + 'dash/video': True, + 'fps': 30, + 'video': {'height': 4320, 'encoding': 'av1'}}, + '694': {'container': 'mp4', + 'dash/video': True, + 'fps': 60, + 'hdr': True, + 'video': {'height': 144, 'encoding': 'av1'}}, + '695': {'container': 'mp4', + 'dash/video': True, + 'fps': 60, + 'hdr': True, + 'video': {'height': 240, 'encoding': 'av1'}}, + '696': {'container': 'mp4', + 'dash/video': True, + 'fps': 60, + 'hdr': True, + 'video': {'height': 360, 'encoding': 'av1'}}, + '697': {'container': 'mp4', + 'dash/video': True, + 'fps': 60, + 'hdr': True, + 'video': {'height': 480, 'encoding': 'av1'}}, + '698': {'container': 'mp4', + 'dash/video': True, + 'fps': 60, + 'hdr': True, + 'video': {'height': 720, 'encoding': 'av1'}}, + '699': {'container': 'mp4', + 'dash/video': True, + 'fps': 60, + 'hdr': True, + 'video': {'height': 1080, 'encoding': 'av1'}}, + '700': {'container': 'mp4', + 'dash/video': True, + 'fps': 60, + 'hdr': True, + 'video': {'height': 1440, 'encoding': 'av1'}}, + '701': {'container': 'mp4', + 'dash/video': True, + 'fps': 60, + 'hdr': True, + 'video': {'height': 2160, 'encoding': 'av1'}}, + '702': {'container': 'mp4', + 'dash/video': True, + 'fps': 60, + 'hdr': True, + 'video': {'height': 4320, 'encoding': 'av1'}}, # === Dash (audio only) '139': {'container': 'mp4', - 'sort': [48, 0], - 'title': 'aac@48', + 'sort': [0, -48 * 0.9], + 'title': 'he-aac@48', 'dash/audio': True, 'audio': {'bitrate': 48, 'encoding': 'aac'}}, '140': {'container': 'mp4', - 'sort': [129, 0], - 'title': 'aac@128', + 'sort': [0, -128 * 0.9], + 'title': 'aac-lc@128', 'dash/audio': True, 'audio': {'bitrate': 128, 'encoding': 'aac'}}, '141': {'container': 'mp4', - 'sort': [143, 0], - 'title': 'aac@256', + 'sort': [0, -256 * 0.9], + 'title': 'aac-lc@256', 'dash/audio': True, 'audio': {'bitrate': 256, 'encoding': 'aac'}}, '256': {'container': 'mp4', - 'title': 'aac/itag 256', + 'sort': [0, -192 * 0.9], + 'title': 'he-aac@192', 'dash/audio': True, - 'unsupported': True, - 'audio': {'bitrate': 0, 'encoding': 'aac'}}, + 'audio': {'bitrate': 192, 'encoding': 'aac'}}, '258': {'container': 'mp4', - 'title': 'aac/itag 258', + 'sort': [0, -384 * 0.9], + 'title': 'aac-lc@384', 'dash/audio': True, - 'unsupported': True, - 'audio': {'bitrate': 0, 'encoding': 'aac'}}, + 'audio': {'bitrate': 384, 'encoding': 'aac'}}, '325': {'container': 'mp4', - 'title': 'dtse/itag 325', + 'sort': [0, -384 * 1.3], + 'title': 'dtse@384', 'dash/audio': True, - 'unsupported': True, - 'audio': {'bitrate': 0, 'encoding': 'aac'}}, + 'audio': {'bitrate': 384, 'encoding': 'dtse'}}, + '327': {'container': 'mp4', + 'sort': [0, -256 * 0.9], + 'title': 'aac-lc@256', + 'dash/audio': True, + 'audio': {'bitrate': 256, 'encoding': 'aac'}}, '328': {'container': 'mp4', - 'title': 'ec-3/itag 328', + 'sort': [0, -384 * 1.2], + 'title': 'ec-3@384', 'dash/audio': True, - 'unsupported': True, - 'audio': {'bitrate': 0, 'encoding': 'aac'}}, + 'audio': {'bitrate': 384, 'encoding': 'ec-3'}}, '171': {'container': 'webm', - 'sort': [128, 0], + 'sort': [0, -128 * 0.75], 'title': 'vorbis@128', 'dash/audio': True, 'audio': {'bitrate': 128, 'encoding': 'vorbis'}}, '172': {'container': 'webm', - 'sort': [142, 0], + 'sort': [0, -192 * 0.75], 'title': 'vorbis@192', 'dash/audio': True, 'audio': {'bitrate': 192, 'encoding': 'vorbis'}}, '249': {'container': 'webm', - 'sort': [50, 0], + 'sort': [0, -50], 'title': 'opus@50', 'dash/audio': True, 'audio': {'bitrate': 50, 'encoding': 'opus'}}, '250': {'container': 'webm', - 'sort': [70, 0], + 'sort': [0, -70], 'title': 'opus@70', 'dash/audio': True, 'audio': {'bitrate': 70, 'encoding': 'opus'}}, '251': {'container': 'webm', - 'sort': [141, 0], + 'sort': [0, -160], 'title': 'opus@160', 'dash/audio': True, 'audio': {'bitrate': 160, 'encoding': 'opus'}}, + '338': {'container': 'webm', + 'sort': [0, -480], + 'title': 'opus@480', + 'dash/audio': True, + 'audio': {'bitrate': 480, 'encoding': 'opus'}}, + '380': {'container': 'mp4', + 'sort': [0, -384 * 1.1], + 'title': 'ac-3@384', + 'dash/audio': True, + 'audio': {'bitrate': 384, 'encoding': 'ac-3'}}, + # === Live HLS + '9995': {'container': 'hls', + 'Live': True, + 'sort': [-1080, -1], + 'title': 'Live HLS', + 'hls/audio': True, + 'hls/video': True, + 'audio': {'bitrate': 0, 'encoding': 'aac'}, + 'video': {'height': 0, 'encoding': 'h.264'}}, + # === Live HLS adaptive + '9996': {'container': 'hls', + 'Live': True, + 'sort': [-1080, -1], + 'title': 'Adaptive Live HLS', + 'hls/audio': True, + 'hls/video': True, + 'audio': {'bitrate': 0, 'encoding': 'aac'}, + 'video': {'height': 0, 'encoding': 'h.264'}}, # === DASH adaptive audio only '9997': {'container': 'mpd', - 'sort': [-1, 0], + 'sort': [1, 0], 'title': 'DASH Audio', 'dash/audio': True, 'audio': {'bitrate': 0, 'encoding': ''}}, # === Live DASH adaptive '9998': {'container': 'mpd', 'Live': True, - 'sort': [1080, 1], + 'sort': [-1080, -1], 'title': 'Live DASH', 'dash/audio': True, 'dash/video': True, @@ -477,7 +561,7 @@ class VideoInfo(object): 'video': {'height': 0, 'encoding': ''}}, # === DASH adaptive '9999': {'container': 'mpd', - 'sort': [1080, 1], + 'sort': [-1080, -1], 'title': 'DASH', 'dash/audio': True, 'dash/video': True, @@ -485,454 +569,997 @@ class VideoInfo(object): 'video': {'height': 0, 'encoding': ''}} } - # Headers from the "Galaxy S9/S9+" profile of the Firefox "Responsive Design Mode". - MOBILE_HEADERS = { - 'User-Agent': ('Mozilla/5.0 (Linux; Android 7.0; SM-G892A Build/NRD90M;' - ' wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0' - ' Chrome/67.0.3396.87 Mobile Safari/537.36'), - 'Accept': '*/*', - 'DNT': '1', - 'Accept-Encoding': 'gzip, deflate', - 'Accept-Language': 'en-US,en;q=0.5' + CLIENTS = { + # 4k no VP9 HDR + # Limited subtitle availability + 'android_testsuite': { + '_id': 30, + '_query_subtitles': True, + 'json': { + 'context': { + 'client': { + 'clientName': 'ANDROID_TESTSUITE', + 'clientVersion': '1.9', + 'androidSdkVersion': '29', + 'osName': 'Android', + 'osVersion': '10', + 'platform': 'MOBILE', + }, + }, + }, + 'headers': { + 'User-Agent': ('com.google.android.youtube/' + '{json[context][client][clientVersion]}' + ' (Linux; U; {json[context][client][osName]}' + ' {json[context][client][osVersion]};' + ' {json[context][client][gl]}) gzip'), + 'X-YouTube-Client-Name': '{_id}', + 'X-YouTube-Client-Version': '{json[context][client][clientVersion]}', + }, + 'params': { + 'key': 'AIzaSyA8eiZmM1FaDVjRy-df2KTyQ_vz_yYM39w', + }, + }, + 'android': { + '_id': 3, + 'json': { + 'params': 'CgIQBg==', + 'context': { + 'client': { + 'clientName': 'ANDROID', + 'clientVersion': '17.31.35', + 'androidSdkVersion': '30', + 'osName': 'Android', + 'osVersion': '11', + 'platform': 'MOBILE', + }, + }, + }, + 'headers': { + 'User-Agent': ('com.google.android.youtube/' + '{json[context][client][clientVersion]}' + ' (Linux; U; {json[context][client][osName]}' + ' {json[context][client][osVersion]};' + ' {json[context][client][gl]}) gzip'), + 'X-YouTube-Client-Name': '{_id}', + 'X-YouTube-Client-Version': '{json[context][client][clientVersion]}', + }, + 'params': { + 'key': 'AIzaSyA8eiZmM1FaDVjRy-df2KTyQ_vz_yYM39w', + }, + }, + # Only for videos that allow embedding + # Limited to 720p on some videos + 'android_embedded': { + '_id': 55, + 'json': { + 'context': { + 'client': { + 'clientName': 'ANDROID_EMBEDDED_PLAYER', + 'clientVersion': '17.36.4', + 'clientScreen': 'EMBED', + 'androidSdkVersion': '29', + 'osName': 'Android', + 'osVersion': '10', + 'platform': 'MOBILE', + }, + }, + 'thirdParty': { + 'embedUrl': 'https://www.youtube.com/embed/{json[videoId]}', + }, + }, + 'headers': { + 'User-Agent': ('com.google.android.youtube/' + '{json[context][client][clientVersion]}' + ' (Linux; U; {json[context][client][osName]}' + ' {json[context][client][osVersion]};' + ' {json[context][client][gl]}) gzip'), + 'X-YouTube-Client-Name': '{_id}', + 'X-YouTube-Client-Version': '{json[context][client][clientVersion]}', + }, + 'params': { + 'key': 'AIzaSyCjc_pVEDi4qsv5MtC2dMXzpIaDoRFLsxw', + }, + }, + # 4k with HDR + # Some videos block this client, may also require embedding enabled + # Limited subtitle availability + 'android_youtube_tv': { + '_id': 29, + '_query_subtitles': True, + 'json': { + 'context': { + 'client': { + 'clientName': 'ANDROID_UNPLUGGED', + 'clientVersion': '6.36', + 'androidSdkVersion': '29', + 'osName': 'Android', + 'osVersion': '10', + 'platform': 'MOBILE', + }, + }, + }, + 'headers': { + 'User-Agent': ('com.google.android.apps.youtube.unplugged/' + '{json[context][client][clientVersion]}' + ' (Linux; U; {json[context][client][osName]}' + ' {json[context][client][osVersion]};' + ' {json[context][client][gl]}) gzip'), + 'X-YouTube-Client-Name': '{_id}', + 'X-YouTube-Client-Version': '{json[context][client][clientVersion]}', + }, + 'params': { + 'key': 'AIzaSyA8eiZmM1FaDVjRy-df2KTyQ_vz_yYM39w', + }, + }, + 'ios': { + '_id': 5, + 'json': { + 'context': { + 'client': { + 'clientName': 'IOS', + 'clientVersion': '17.33.2', + 'deviceModel': 'iPhone14,3', + 'osName': 'iOS', + 'osVersion': '15_6', + 'platform': 'MOBILE', + }, + }, + }, + 'headers': { + 'User-Agent': ('com.google.ios.youtube/' + '{json[context][client][clientVersion]}' + ' ({json[context][client][deviceModel]};' + ' U; CPU {json[context][client][osName]}' + ' {json[context][client][osVersion]}' + ' like Mac OS X)'), + 'X-YouTube-Client-Name': '{_id}', + 'X-YouTube-Client-Version': '{json[context][client][clientVersion]}', + }, + 'params': { + 'key': 'AIzaSyB-63vPrdThhKuerbB2N_l7Kwwcxj6yUAc', + }, + }, + # Used to requests captions for clients that don't provide them + # Requires handling of nsig to overcome throttling (TODO) + 'smarttv': { + '_id': 75, + 'json': { + 'context': { + 'client': { + 'clientName': 'TVHTML5_SIMPLY', + 'clientVersion': '1.0', + }, + }, + }, + # Headers from a 2022 Samsung Tizen 6.5 based Smart TV + 'headers': { + 'User-Agent': ('Mozilla/5.0 (SMART-TV; LINUX; Tizen 6.5)' + ' AppleWebKit/537.36 (KHTML, like Gecko)' + ' 85.0.4183.93/6.5 TV Safari/537.36'), + }, + 'params': { + 'key': 'AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8', + }, + }, + # Used for misc api requests by default + # Requires handling of nsig to overcome throttling (TODO) + 'web': { + '_id': 1, + 'json': { + 'context': { + 'client': { + 'clientName': 'WEB', + 'clientVersion': '2.20220801.00.00', + }, + }, + }, + # Headers for a "Galaxy S20 Ultra" from Chrome dev tools device + # emulation + 'headers': { + 'User-Agent': ('Mozilla/5.0 (Linux; Android 10; SM-G981B)' + ' AppleWebKit/537.36 (KHTML, like Gecko)' + ' Chrome/80.0.3987.162 Mobile Safari/537.36'), + 'Referer': 'https://www.youtube.com/watch?v={json[videoId]}' + }, + 'params': { + 'key': 'AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8', + }, + }, + '_common': { + '_access_token': None, + 'json': { + 'contentCheckOk': True, + 'context': { + 'client': { + 'gl': None, + 'hl': None, + }, + }, + 'playbackContext': { + 'contentPlaybackContext': { + 'html5Preference': 'HTML5_PREF_WANTS', + }, + }, + 'racyCheckOk': True, + 'thirdParty': {}, + 'user': { + 'lockedSafetyMode': False + }, + 'videoId': None, + }, + 'headers': { + 'Origin': 'https://www.youtube.com', + 'Referer': 'https://www.youtube.com/watch?v={json[videoId]}', + 'Accept-Encoding': 'gzip, deflate', + 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', + 'Accept': '*/*', + 'Accept-Language': 'en-US,en;q=0.5', + 'Authorization': 'Bearer {_access_token}', + }, + 'params': { + 'key': None, + 'prettyPrint': 'false' + }, + }, } - def __init__(self, context, access_token='', api_key='', language='en-US'): + def __init__(self, context, access_token='', language='en-US'): + settings = context.get_settings() + + self.video_id = None self._context = context self._data_cache = self._context.get_data_cache() - self._verify = context.get_settings().verify_ssl() - self._language = language.replace('-', '_') - self.language = context.get_settings().get_string('youtube.language', 'en_US').replace('-', '_') - self.region = context.get_settings().get_string('youtube.region', 'US') + self._verify = settings.verify_ssl() + self._language = (settings.get_string('youtube.language', language) + .replace('-', '_')) + self._language_base = self._language[0:2] self._access_token = access_token - self._api_key = api_key - self._calculate_n = None + self._player_js = None + self._calculate_n = True + self._cipher = None + + self._selected_client = None + client_selection = settings.client_selection() + + # All client selections use the Android client as the first option to + # ensure that the age gate setting is enforced, regardless of login + # status + + # Alternate #1 + # Will play most videos with subtitles at full resolution with HDR + # Some restricted videos may only play at 720p + # Some restricted videos require additional requests for subtitles + if client_selection == 1: + self._prioritised_clients = ( + 'android', + 'android_embedded', + 'android_youtube_tv', + 'android_testsuite', + ) + # Alternate #2 + # Will play most videos at full resolution with HDR + # Most videos wont show subtitles + # Useful for testing AV1 HDR + elif client_selection == 2: + self._prioritised_clients = ( + 'android', + 'android_testsuite', + 'android_youtube_tv', + 'android_embedded', + ) + # Default + # Will play most videos with subtitles at full resolution with HDR + # Some restricted videos require additional requests for subtitles + else: + self._prioritised_clients = ( + 'android', + 'android_youtube_tv', + 'android_testsuite', + 'android_embedded', + ) + + self.CLIENTS['_common']['json']['context']['client'] = { + 'hl': self._language, + 'gl': settings.get_string('youtube.region', 'US'), + } @staticmethod - def generate_cpn(): + def _generate_cpn(): # https://github.com/rg3/youtube-dl/blob/master/youtube_dl/extractor/youtube.py#L1381 # LICENSE: The Unlicense # cpn generation algorithm is reverse engineered from base.js. # In fact it works even with dummy cpn. - cpn_alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_' - cpn = ''.join((cpn_alphabet[random.randint(0, 256) & 63] for _ in range(0, 16))) - return cpn - - def calculate_n(self, url): - if not self._calculate_n: - self._context.log_debug('`n` was not calculated for %s' % url) - return url - - parsed_query = dict(parse_qsl(urlsplit(url).query)) - - if parsed_query.get('ratebypass', 'no') != 'yes' and 'n' in parsed_query: - # Cipher n to get the updated value - initial_n = list(parsed_query['n']) - new_n = self._calculate_n.calculate_n(initial_n) - if new_n: - parsed_query['n'] = new_n - parsed_query['ratebypass'] = 'yes' - parsed_url = urlsplit(url) - url = '%s://%s%s?%s' % \ - (parsed_url.scheme, parsed_url.netloc, - parsed_url.path, urlencode(parsed_query)) - - return url + cpn_alphabet = ('abcdefghijklmnopqrstuvwxyz' + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + '0123456789-_') + # Python 2 compatible method + # cpn = ''.join(cpn_alphabet[random.randint(0, 63)] for _ in range(16)) + # return cpn + return ''.join(random.choices(cpn_alphabet, k=16)) def load_stream_infos(self, video_id): - return self._method_get_video_info(video_id) - - def get_watch_page(self, video_id): - headers = self.MOBILE_HEADERS.copy() - headers['Accept'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' - if self._access_token: - headers['Authorization'] = 'Bearer %s' % self._access_token - - url = 'https://www.youtube.com/watch?v={video_id}'.format(video_id=video_id) - cookies = {'CONSENT': 'YES+cb.20210615-14-p0.en+FX+294'} - - result = requests.get(url, headers=headers, verify=self._verify, - cookies=cookies, allow_redirects=True) - - return {'url': result.url, 'html': result.text, 'cookies': result.cookies} - - def get_embed_page(self, video_id): - headers = self.MOBILE_HEADERS.copy() - headers['Accept'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' - if self._access_token: - headers['Authorization'] = 'Bearer %s' % self._access_token + self.video_id = video_id + return self._get_video_info() + + def _build_client(self, client_name, auth_header=False): + def _merge_dicts(item1, item2): + if not isinstance(item1, dict) or not isinstance(item2, dict): + return item1 if item2 is ... else item2 + new = {} + for key in (item1.keys() | item2.keys()): + value = _merge_dicts(item1.get(key, ...), item2.get(key, ...)) + if value is ...: + continue + if isinstance(value, str) and '{' in value: + _format['{0}.{1}'.format(id(new), key)] = (new, key, value) + new[key] = value + return new or ... + _format = {} + + client = (self.CLIENTS.get(client_name) or self.CLIENTS['web']).copy() + client = _merge_dicts(self.CLIENTS['_common'], client) + + client['json']['videoId'] = self.video_id + if auth_header and self._access_token: + client['_access_token'] = self._access_token + client['params'] = None + elif 'Authorization' in client['headers']: + del client['headers']['Authorization'] + + for values, key, value in _format.values(): + if key in values: + values[key] = value.format(**client) + + return client + + def _request(self, url, method='GET', + cookies=None, data=None, headers=None, json=None, params=None, + error_msg=None, raise_error=False, timeout=(3.05, 27), **_): + try: + result = requests.request(method, url, + verify=self._verify, + allow_redirects=True, + timeout=timeout, + cookies=cookies, + data=data, + headers=headers, + json=json, + params=params) + result.raise_for_status() + except requests.exceptions.RequestException as error: + response = error.response and error.response.text + self._context.log_debug('Response: {0}'.format(response)) + self._context.log_error('{0}\n{1}'.format( + error_msg or 'Request failed', traceback.format_exc() + )) + if raise_error: + raise YouTubeException(error_msg) from error + return None + return result - url = 'https://www.youtube.com/embed/{video_id}'.format(video_id=video_id) + def _get_player_page(self, client='web', embed=False): + client = self._build_client(client) + if embed: + url = 'https://www.youtube.com/embed/{0}'.format(self.video_id) + else: + url = 'https://www.youtube.com/watch?v={0}'.format(self.video_id) cookies = {'CONSENT': 'YES+cb.20210615-14-p0.en+FX+294'} - result = requests.get(url, headers=headers, verify=self._verify, - cookies=cookies, allow_redirects=True) - - return {'url': result.url, 'html': result.text, 'cookies': result.cookies} + result = self._request( + url, cookies=cookies, headers=client['headers'], + error_msg=('Failed to get player html for video_id: {0}' + .format(self.video_id)) + ) + if result: + return result + return None @staticmethod - def get_player_client(config): + def _get_player_client(config): return config.get('INNERTUBE_CONTEXT', {}).get('client', {}) - def get_player_key(self, html): + def _get_player_key(self, html): + if not html: + return None + pattern = 'INNERTUBE_API_KEY":"' start_index = html.find(pattern) if start_index != -1: start_index += len(pattern) end_index = html.find('"', start_index) - self._context.log_debug('Player key found') - return html[start_index:end_index] - else: - return None + player_key = html[start_index:end_index] + self._context.log_debug('Player key found: {0}'.format(player_key)) + return player_key + return None @staticmethod - def get_player_config(html): - config = {} - - found = re.search( - r'window\.ytplayer\s*=\s*{}\s*;\s*ytcfg\.set\((?P.+?)\)\s*;\s*(?:ytcfg|var setMessage\s*=\s*)', html - ) - - if found: - config = json.loads(found.group('config')) - - return config + def _get_player_config(page): + if not page: + return None - @staticmethod - def get_player_response(html): - response = {} + # pattern source is from youtube-dl + # https://github.com/ytdl-org/youtube-dl/blob/master/youtube_dl/extractor/youtube.py#L313 + # LICENSE: The Unlicense + found = re.search(r'ytcfg\.set\s*\(\s*({.+?})\s*\)\s*;', page.text) - found = re.search( - r'ytInitialPlayerResponse\s*=\s*(?P{.+?})\s*;\s*(?:var\s+meta|[^"]*base.js)"', html) + if not js_url: + context = player_config.get('WEB_PLAYER_CONTEXT_CONFIGS', {}) + for configs in context.values(): + if 'jsUrl' in configs: + js_url = configs['jsUrl'] + break + + if not js_url: + return '' - if found: - javascript_url = found.group('url') + js_url = self._normalize_url(js_url) + self._data_cache.set('player_js_url', json_dumps({'url': js_url})) - javascript_url = _normalize(javascript_url) - cache_key = quote(javascript_url) - cached_js = self._data_cache.get_item(DataCache.ONE_HOUR * 4, cache_key) + cache_key = quote(js_url) + cached_js = self._data_cache.get_item( + DataCache.ONE_HOUR * 4, cache_key + ).get('js') if cached_js: return cached_js - headers = self.MOBILE_HEADERS.copy() - result = requests.get(javascript_url, headers=headers, verify=False, allow_redirects=True) - javascript = result.text + client = self._build_client('web') + result = self._request( + js_url, headers=client['headers'], + error_msg=('Failed to get player js for video_id: {0}' + .format(self.video_id)) + ) + if not result: + return '' - self._data_cache.set(javascript_url, cache_key) + javascript = result.text + self._data_cache.set(cache_key, json_dumps({'js': javascript})) return javascript @staticmethod - def make_curl_headers(headers, cookies=None): - output = '' + def _make_curl_headers(headers, cookies=None): + output = [] if cookies: - output += 'Cookie={all_cookies}'.format( - all_cookies=quote( - '; '.join('{0}={1}'.format(c.name, c.value) for c in cookies) - ) - ) - output += '&' - # Headers to be used in function 'to_play_item' of 'xbmc_items.py'. - output += '&'.join('{0}={1}'.format(key, quote(headers[key])) - for key in headers) - return output + output.append('Cookie={0}'.format(quote('; '.join( + '{0.name}={0.value}'.format(cookie) + for cookie in cookies + )))) + # Headers to be used in function 'to_play_item' of 'xbmc_items.py' + output.extend('{0}={1}'.format(key, quote(value)) + for key, value in headers.items()) + return '&'.join(output) + + @staticmethod + def _normalize_url(url): + if not url: + url = '' + elif url.startswith(('http://', 'https://')): + pass + elif url.startswith('//'): + url = urljoin('https:', url) + elif url.startswith('/'): + url = urljoin('https://www.youtube.com', url) + return url + + def _load_hls_manifest(self, url, live_type=None, meta_info=None, headers=None, playback_stats=None): + if not url: + return [] - def _load_manifest(self, url, video_id, meta_info=None, playback_stats=None): - headers = self.MOBILE_HEADERS.copy() - headers['Referer'] = 'https://www.youtube.com/watch?v=%s' % video_id - headers['Origin'] = 'https://www.youtube.com' + if not headers and self._selected_client: + headers = self._selected_client['headers'].copy() + if 'Authorization' in headers: + del headers['Authorization'] + else: + headers = self._build_client('web')['headers'] + curl_headers = self._make_curl_headers(headers, cookies=None) + + result = self._request( + url, headers=headers, + error_msg=('Failed to get manifest for video_id: {0}' + .format(self.video_id)) + ) + if not result: + return () - curl_headers = self.make_curl_headers(headers, cookies=None) + if meta_info is None: + meta_info = {'video': {}, + 'channel': {}, + 'images': {}, + 'subtitles': []} if playback_stats is None: playback_stats = {} - try: - result = requests.get(url, headers=headers, verify=self._verify, allow_redirects=True) - result.raise_for_status() - except: - # Failed to get the M3U8 playlist file. Add a log debug in this case? - return () + if live_type is None: + live_type = self._context.get_settings().get_live_stream_type() + + if 'hls' in live_type: + if live_type == 'hls': + yt_format = self.FORMAT['9995'] + else: + yt_format = self.FORMAT['9996'] + stream = {'url': url, + 'meta': meta_info, + 'headers': curl_headers, + 'playback_stats': playback_stats} + stream.update(yt_format) + stream_list = [stream] + else: + stream_list = [] - _meta_info = {'video': {}, - 'channel': {}, - 'images': {}, - 'subtitles': []} - meta_info = meta_info if meta_info else _meta_info - streams = [] # The playlist might include a #EXT-X-MEDIA entry, but it's usually for # a small default stream with itag 133 (240p) and can be ignored. # Capture the URL of a .m3u8 playlist and the itag value from that URL. - re_playlist_data = re.compile(r'#EXT-X-STREAM-INF[^#]+(?Phttp[^\s]+/itag/(?P\d+)[^\s]+)') + re_playlist_data = re.compile( + r'#EXT-X-STREAM-INF[^#]+' + r'(?Phttp[^\s]+/itag/(?P\d+)[^\s]+)' + ) for match in re_playlist_data.finditer(result.text): playlist_url = match.group('url') itag = match.group('itag') - yt_format = self.FORMAT.get(itag, None) + yt_format = self.FORMAT.get(itag) if not yt_format: - self._context.log_debug('unknown yt_format for itag "%s"' % itag) + self._context.log_debug('Unknown itag: {0}'.format(itag)) continue - video_stream = {'url': playlist_url, - 'meta': meta_info, - 'headers': curl_headers, - 'playback_stats': playback_stats - } - video_stream.update(yt_format) - streams.append(video_stream) - return streams - - def _method_get_video_info(self, video_id): - headers = self.MOBILE_HEADERS.copy() - - params = None - if self._access_token: - headers['Authorization'] = 'Bearer %s' % self._access_token + stream = {'url': playlist_url, + 'meta': meta_info, + 'headers': curl_headers, + 'playback_stats': playback_stats} + stream.update(yt_format) + stream_list.append(stream) + return stream_list + + def _create_stream_list(self, streams, meta_info=None, headers=None, playback_stats=None): + if not headers and self._selected_client: + headers = self._selected_client['headers'].copy() + if 'Authorization' in headers: + del headers['Authorization'] else: - params = { - 'key': self._api_key - } - video_info_url = 'https://youtubei.googleapis.com/youtubei/v1/player' - # payload = {'videoId': video_id, - # 'context': {'client': {'clientVersion': '1.20210909.07.00', 'gl': self.region, - # 'clientName': 'WEB_CREATOR', 'hl': self.language}}} - - # payload = {'videoId': video_id, - # 'context': {'client': {'clientVersion': '16.05', 'gl': self.region, - # 'clientName': 'ANDROID', 'clientScreen': 'EMBED', - # 'hl': self.language}}} - - payload = {'videoId': video_id, - 'context': {'client': {'clientVersion': '16.49', 'gl': self.region, - 'clientName': 'ANDROID', 'hl': self.language}}, - 'thirdParty': {'embedUrl': 'https://google.com'} - } + headers = self._build_client('web')['headers'] + curl_headers = self._make_curl_headers(headers, cookies=None) + + if meta_info is None: + meta_info = {'video': {}, + 'channel': {}, + 'images': {}, + 'subtitles': []} + if playback_stats is None: + playback_stats = {} - player_response = {} - for attempt in range(2): + stream_list = [] + for stream_map in streams: + url = stream_map.get('url') + conn = stream_map.get('conn') + + if not url and conn: + url = '%s?%s' % (conn, unquote(stream_map['stream'])) + elif not url and self._cipher and 'signatureCipher' in stream_map: + url = self._process_signature_cipher(stream_map) + + if not url: + continue + url = self._process_url_params(url) + + itag = str(stream_map['itag']) + stream_map['itag'] = itag + yt_format = self.FORMAT.get(itag) + if not yt_format: + self._context.log_debug('Unknown itag: {0}'.format(itag)) + continue + if (yt_format.get('discontinued') or yt_format.get('unsupported') + or (yt_format.get('dash/video') + and not yt_format.get('dash/audio'))): + continue + + stream = {'url': url, + 'meta': meta_info, + 'headers': curl_headers, + 'playback_stats': playback_stats} + stream.update(yt_format) + + if 'audioTrack' in stream_map: + audio_track = stream_map['audioTrack'] + display_name = audio_track['displayName'] + stream['title'] = '{0} {1}'.format( + stream['title'], display_name + ) + stream['sort'] = stream['sort'] + [ + not audio_track['id'].startswith(self._language_base), + 'original' not in display_name, + display_name + ] + + stream_list.append(stream) + return stream_list + + def _process_signature_cipher(self, stream_map): + signature_cipher = parse_qs(stream_map['signatureCipher']) + url = signature_cipher.get('url', [None])[0] + encrypted_signature = signature_cipher.get('s', [None])[0] + query_var = signature_cipher.get('sp', ['signature'])[0] + + if not url or not encrypted_signature: + return None + + signature = self._data_cache.get_item( + DataCache.ONE_HOUR * 4, encrypted_signature + ).get('sig') + if not signature: try: - r = requests.post(video_info_url, params=params, json=payload, - headers=headers, verify=self._verify, cookies=None, - allow_redirects=True) - r.raise_for_status() - player_response = r.json() - if player_response.get('playabilityStatus', {}).get('status', 'OK') in \ - ('AGE_CHECK_REQUIRED', 'UNPLAYABLE', 'CONTENT_CHECK_REQUIRED') and attempt == 0: - payload['context']['client']['clientName'] = 'ANDROID_EMBEDDED_PLAYER' - payload['context']['client']['clientVersion'] = '16.20' - continue - except: - error_message = 'Failed to get player response for video_id "%s"' % video_id - self._context.log_error(error_message + '\n' + traceback.format_exc()) - raise YouTubeException(error_message) + signature = self._cipher.get_signature(encrypted_signature) + except Exception as error: + self._context.log_debug('{0}: {1}\n{2}'.format( + error, encrypted_signature, traceback.format_exc() + )) + self._context.log_error( + 'Failed to extract URL from signatureCipher' + ) + return None + self._data_cache.set( + encrypted_signature, json_dumps({'sig': signature}) + ) - # Make a set of URL-quoted headers to be sent to Kodi when requesting - # the stream during playback. The YT player doesn't seem to use any - # cookies when doing that, so for now cookies are ignored. - # curl_headers = self.make_curl_headers(headers, cookies) - curl_headers = self.make_curl_headers(headers, cookies=None) - - playability_status = player_response.get('playabilityStatus', {}) - - video_details = player_response.get('videoDetails', {}) - is_live_content = video_details.get('isLiveContent') is True - streaming_data = player_response.get('streamingData', {}) - - live_url = streaming_data.get('hlsManifestUrl', '') or \ - player_response.get('streamingData', {}).get('hlsManifestUrl', '') - is_live = is_live_content and live_url - - meta_info = {'video': {}, - 'channel': {}, - 'images': {}, - 'subtitles': []} - - meta_info['video']['id'] = video_details.get('videoId', video_id) - - meta_info['video']['title'] = video_details.get('title', '') - meta_info['channel']['author'] = video_details.get('author', '') - - meta_info['video']['title'] = meta_info['video']['title'].encode('raw_unicode_escape') - meta_info['channel']['author'] = meta_info['channel']['author'].encode('raw_unicode_escape') - - meta_info['video']['title'] = meta_info['video']['title'].decode('raw_unicode_escape') - meta_info['channel']['author'] = meta_info['channel']['author'].decode('raw_unicode_escape') - - meta_info['video']['title'] = unescape(meta_info['video']['title']) - meta_info['channel']['author'] = unescape(meta_info['channel']['author']) - - meta_info['channel']['id'] = video_details.get('channelId', '') - image_data_list = [ - {'from': 'iurlhq', 'to': 'high', 'image': 'hqdefault.jpg'}, - {'from': 'iurlmq', 'to': 'medium', 'image': 'mqdefault.jpg'}, - {'from': 'iurlsd', 'to': 'standard', 'image': 'sddefault.jpg'}, - {'from': 'thumbnail_url', 'to': 'default', 'image': 'default.jpg'}] - for image_data in image_data_list: - image_url = 'https://i.ytimg.com/vi/{video_id}/{image}'.format(video_id=video_id, image=image_data['image']) - if image_url: - if is_live: - image_url = image_url.replace('.jpg', '_live.jpg') - meta_info['images'][image_data['to']] = image_url - - microformat = player_response.get('microformat', {}).get('playerMicroformatRenderer', {}) - meta_info['video']['status'] = { - 'unlisted': microformat.get('isUnlisted', False), - 'private': video_details.get('isPrivate', False), - 'crawlable': video_details.get('isCrawlable', False), - 'family_safe': microformat.get('isFamilySafe', False), - 'live': is_live, - } + if signature: + url = '{0}&{1}={2}'.format(url, query_var, signature) + return url + return None - if playability_status.get('status', 'ok').lower() != 'ok': - if not ((playability_status.get('desktopLegacyAgeGateReason', 0) == 1) and not self._context.get_settings().age_gate()): - reason = None - if playability_status.get('status') == 'LIVE_STREAM_OFFLINE': - if playability_status.get('reason'): - reason = playability_status.get('reason') - else: - live_streamability = playability_status.get('liveStreamability', {}) - live_streamability_renderer = live_streamability.get('liveStreamabilityRenderer', {}) - offline_slate = live_streamability_renderer.get('offlineSlate', {}) - live_stream_offline_slate_renderer = offline_slate.get('liveStreamOfflineSlateRenderer', {}) - renderer_main_text = live_stream_offline_slate_renderer.get('mainText', {}) - main_text_runs = renderer_main_text.get('runs', [{}]) - reason_text = [] - for text in main_text_runs: - reason_text.append(text.get('text', '')) - if reason_text: - reason = ''.join(reason_text) - else: - reason = playability_status.get('reason') - - if 'errorScreen' in playability_status and 'playerErrorMessageRenderer' in playability_status['errorScreen']: - status_renderer = playability_status['errorScreen']['playerErrorMessageRenderer'] - status_reason = status_renderer.get('reason', {}) - main_text_runs = status_reason.get('runs', [{}]) - reason_text = [] - descript_reason = '' - for text in main_text_runs: - reason_text.append(text.get('text', '')) - if reason_text: - descript_reason = ''.join(reason_text) - if descript_reason: - reason = descript_reason - else: - general_reason = status_renderer.get('reason', {}).get('simpleText') - if general_reason: - reason = general_reason + def _process_url_params(self, url): + if not url: + return url - if not reason: - reason = 'UNKNOWN' + parts = urlsplit(url) + query = parse_qs(parts.query) + new_query = {} + update_url = False - raise YouTubeException(reason) + if (self._calculate_n and 'n' in query + and query.get('ratebypass', [None])[0] != 'yes'): + self._player_js = self._player_js or self._get_player_js() + if self._calculate_n is True: + self._context.log_debug('nsig detected') + self._calculate_n = ratebypass.CalculateN(self._player_js) - captions = player_response.get('captions', {}) - meta_info['subtitles'] = Subtitles(self._context, self.MOBILE_HEADERS, - video_id, captions).get_subtitles() + # Cipher n to get the updated value + new_n = self._calculate_n.calculate_n(query['n']) + if new_n: + new_query['n'] = new_n + new_query['ratebypass'] = 'yes' + else: + self._context.log_error('nsig handling failed') + self._calculate_n = False - playback_stats = { - 'playback_url': '', - 'watchtime_url': '' - } + if 'range' not in query: + content_length = query.get('clen', [''])[0] + new_query['range'] = '0-{0}'.format(content_length) - playback_tracking = player_response.get('playbackTracking', {}) - playback_url = playback_tracking.get('videostatsPlaybackUrl', {}).get('baseUrl', '') - watchtime_url = playback_tracking.get('videostatsWatchtimeUrl', {}).get('baseUrl', '') - - if playback_url and playback_url.startswith('http'): - playback_stats['playback_url'] = ''.join([ - playback_url, - '&ver=2&fs=0&volume=100&muted=0', - '&cpn={cpn}'.format(cpn=self.generate_cpn()) - ]) - - if watchtime_url and watchtime_url.startswith('http'): - playback_stats['watchtime_url'] = ''.join([ - watchtime_url, - '&ver=2&fs=0&volume=100&muted=0', - '&cpn={cpn}'.format(cpn=self.generate_cpn()), - '&st={st}&et={et}&state={state}' - ]) + if new_query: + query.update(new_query) + elif not update_url: + return url - stream_list = [] + return urlunsplit((parts.scheme, + parts.netloc, + parts.path, + urlencode(query, doseq=True), + parts.fragment)) + + @staticmethod + def _get_error_details(playability_status, details=None): + if not playability_status: + return None + if not details: + details = ( + 'errorScreen', + ('playerErrorMessageRenderer', 'confirmDialogRenderer'), + ('reason', 'title') + ) - if live_url: - stream_list.extend(self._load_manifest(live_url, video_id, - meta_info=meta_info, - playback_stats=playback_stats)) + result = playability_status + for keys in details: + is_dict = isinstance(result, dict) + if not is_dict and not isinstance(result, list): + return None + + if not isinstance(keys, (list, tuple)): + keys = [keys] + for key in keys: + if is_dict: + if key not in result: + continue + elif not isinstance(key, int) or len(result) <= key: + continue + result = result[key] + break + else: + return None + + if 'runs' not in result: + return result + + detail_texts = [ + text['text'] + for text in result['runs'] + if text and 'text' in text and text['text'] + ] + if detail_texts: + return ''.join(detail_texts) + if 'simpleText' in result: + return result['simpleText'] + return None + + def _get_video_info(self): + auth_header = bool(self._access_token) + video_info_url = 'https://www.youtube.com/youtubei/v1/player' + + _settings = self._context.get_settings() + playability_status = status = reason = None + for _ in range(2): + for client_name in self._prioritised_clients: + client = self._build_client(client_name, auth_header) + + result = self._request( + video_info_url, 'POST', **client, + error_msg=( + 'Player response failed for video_id: {0},' + ' using {1} client ({2})' + .format(self.video_id, + client_name, + 'logged in' if auth_header else 'logged out') + ), + raise_error=True + ) - httpd_is_live = (self._context.get_settings().use_dash_videos() and - is_httpd_live(port=self._context.get_settings().httpd_port())) + response = result.json() + playability_status = response.get('playabilityStatus', {}) + status = playability_status.get('status', '').upper() + reason = playability_status.get('reason', '') + + if status in {'', 'AGE_CHECK_REQUIRED', 'UNPLAYABLE', + 'CONTENT_CHECK_REQUIRED', 'LOGIN_REQUIRED', + 'AGE_VERIFICATION_REQUIRED', 'ERROR'}: + if (playability_status.get('desktopLegacyAgeGateReason') + and _settings.age_gate()): + break + # Geo-blocked video with error reasons like: + # "This video contains content from XXX, who has blocked it in your country on copyright grounds" + # "The uploader has not made this video available in your country" + if status == 'UNPLAYABLE' and 'country' in reason: + break + if status != 'ERROR': + continue + # This is used to check for error like: + # "The following content is not available on this app." + # Text will vary depending on Accept-Language and client hl + # Youtube support url is checked instead + url = self._get_error_details( + playability_status, + details=( + 'errorScreen', + 'playerErrorMessageRenderer', + 'learnMore', + 'runs', 0, + 'navigationEndpoint', + 'urlEndpoint', + 'url' + ) + ) + if url and url.startswith('//support.google.com/youtube/answer/12318250'): + continue + break + # Only attempt to remove Authorization header if clients iterable + # was exhausted i.e. request attempted using all clients + else: + if auth_header: + auth_header = False + continue + # Otherwise skip retrying clients without Authorization header + break - s_info = dict() + if status != 'OK': + if status == 'LIVE_STREAM_OFFLINE': + if not reason: + reason = self._get_error_details( + playability_status, + details=( + 'liveStreamability', + 'liveStreamabilityRenderer', + 'offlineSlate', + 'liveStreamOfflineSlateRenderer', + 'mainText' + ) + ) + elif not reason: + reason = self._get_error_details(playability_status) + raise YouTubeException(reason or 'UNKNOWN') + + self._context.log_debug( + 'Retrieved video info for video_id: {0}, using {1} client ({2})' + .format(self.video_id, + client['json']['context']['client']['clientName'], + 'logged in' if auth_header else 'logged out') + ) + self._selected_client = client.copy() - adaptive_fmts = streaming_data.get('adaptiveFormats', []) - std_fmts = streaming_data.get('formats', []) - mpd_url = streaming_data.get('dashManifestUrl') or \ - player_response.get('streamingData', {}).get('dashManifestUrl', '') + if 'Authorization' in client['headers']: + del client['headers']['Authorization'] + # Make a set of URL-quoted headers to be sent to Kodi when requesting + # the stream during playback. The YT player doesn't seem to use any + # cookies when doing that, so for now cookies are ignored. + # curl_headers = self._make_curl_headers(headers, cookies) + curl_headers = self._make_curl_headers(client['headers'], cookies=None) + + video_details = response.get('videoDetails', {}) + microformat = (response.get('microformat', {}) + .get('playerMicroformatRenderer', {})) + streaming_data = response.get('streamingData', {}) + is_live = '_live' if video_details.get('isLiveContent') else '' + + captions = response.get('captions') + if captions: + captions['headers'] = client['headers'] + elif client.get('_query_subtitles'): + result = self._request( + video_info_url, 'POST', **self._build_client('smarttv', True), + error_msg=('Caption request failed to get player response for' + 'video_id: {0}'.format(self.video_id)), + ) + + response = result.json() + captions = response.get('captions') + if captions: + captions['headers'] = result.request.headers + if captions: + captions = Subtitles( + self._context, self.video_id, captions + ) + default_lang = captions.get_default_lang() + captions = captions.get_subtitles() + else: + default_lang = {'code': 'und', 'is_asr': False} + + meta_info = { + 'video': { + 'id': video_details.get('videoId', self.video_id), + 'title': unescape(video_details.get('title', '') + .encode('raw_unicode_escape') + .decode('raw_unicode_escape')), + 'status': { + 'unlisted': microformat.get('isUnlisted', False), + 'private': video_details.get('isPrivate', False), + 'crawlable': video_details.get('isCrawlable', False), + 'family_safe': microformat.get('isFamilySafe', False), + 'live': bool(is_live), + }, + }, + 'channel': { + 'id': video_details.get('channelId', ''), + 'author': unescape(video_details.get('author', '') + .encode('raw_unicode_escape') + .decode('raw_unicode_escape')), + }, + 'images': { + 'high': ('https://i.ytimg.com/vi/{0}/hqdefault{1}.jpg' + .format(self.video_id, is_live)), + 'medium': ('https://i.ytimg.com/vi/{0}/mqdefault{1}.jpg' + .format(self.video_id, is_live)), + 'standard': ('https://i.ytimg.com/vi/{0}/sddefault{1}.jpg' + .format(self.video_id, is_live)), + 'default': ('https://i.ytimg.com/vi/{0}/default{1}.jpg' + .format(self.video_id, is_live)), + }, + 'subtitles': captions or [], + } + + if _settings.use_remote_history(): + playback_stats = { + 'playback_url': ( + 'videostatsPlaybackUrl', + '{0}&ver=2&fs=0&volume=100&muted=0&cpn={1}', + ), + 'watchtime_url': ( + 'videostatsWatchtimeUrl', + ('{0}&ver=2&fs=0&volume=100&muted=0&cpn={1}' + '&st={{st}}&et={{et}}&state={{state}}'), + ) + } + playback_tracking = response.get('playbackTracking', {}) + cpn = self._generate_cpn() + + for key, (url, url_template) in playback_stats.items(): + url = playback_tracking.get(url, {}).get('baseUrl') + if not url or not url.startswith('http'): + playback_stats[key] = '' + playback_stats[key] = url_template.format(url, cpn) + else: + playback_stats = { + 'playback_url': '', + 'watchtime_url': '', + } + + httpd_is_live = (_settings.use_mpd() and + is_httpd_live(port=_settings.httpd_port())) - license_info = {'url': None, 'proxy': None, 'token': None} pa_li_info = streaming_data.get('licenseInfos', []) - if pa_li_info and (pa_li_info != ['']) and not httpd_is_live: + if any(pa_li_info) and not httpd_is_live: raise YouTubeException('Proxy is not running') for li_info in pa_li_info: - if li_info.get('drmFamily') == 'WIDEVINE': - license_info['url'] = li_info.get('url', None) - if license_info['url']: - self._context.log_debug('Found widevine license url: |%s|' % license_info['url']) - li_ipaddress = self._context.get_settings().httpd_listen() - if li_ipaddress == '0.0.0.0': - li_ipaddress = '127.0.0.1' - proxy_addr = \ - ['http://{ipaddress}:{port}/widevine'.format( - ipaddress=li_ipaddress, - port=self._context.get_settings().httpd_port() - ), '||R{SSM}|'] - license_info['proxy'] = ''.join(proxy_addr) - license_info['token'] = self._access_token - break + if li_info.get('drmFamily') != 'WIDEVINE': + continue + url = li_info.get('url') + if not url: + continue + self._context.log_debug('Found widevine license url: {0}' + .format(url)) + license_info = { + 'url': url, + 'proxy': 'http://{0}:{1}/widevine||R{{SSM}}|'.format( + _settings.httpd_listen(for_request=True), + _settings.httpd_port() + ), + 'token': self._access_token, + } + break + else: + license_info = { + 'url': None, + 'proxy': None, + 'token': None + } - if not is_live and httpd_is_live and adaptive_fmts: - mpd_url, s_info = self.generate_mpd(video_id, - adaptive_fmts, - video_details.get('lengthSeconds', '0'), - license_info.get('url')) + stream_list = [] + adaptive_fmts = streaming_data.get('adaptiveFormats', []) + all_fmts = streaming_data.get('formats', []) + adaptive_fmts + + if any(True for fmt in all_fmts + if fmt and 'url' not in fmt and 'signatureCipher' in fmt): + self._context.log_debug('signatureCipher detected') + self._player_js = self._get_player_js() + self._cipher = Cipher(self._context, javascript=self._player_js) + + manifest_url = None + if is_live: + live_type = _settings.get_live_stream_type() + if live_type == 'ia_mpd': + manifest_url = streaming_data.get('dashManifestUrl', '') + else: + stream_list.extend(self._load_hls_manifest( + streaming_data.get('hlsManifestUrl'), + live_type, meta_info, client['headers'], playback_stats + )) + elif httpd_is_live and adaptive_fmts: + video_data, audio_data = self._process_stream_data( + adaptive_fmts, default_lang['code'] + ) + manifest_url, main_stream = self._generate_mpd_manifest( + video_data, audio_data, license_info.get('url') + ) - if mpd_url: + if manifest_url: video_stream = { - 'url': mpd_url, + 'url': manifest_url, 'meta': meta_info, 'headers': curl_headers, 'license_info': license_info, @@ -940,496 +1567,570 @@ def _method_get_video_info(self, video_id): } if is_live: - video_stream['url'] = '&'.join([video_stream['url'], 'start_seq=$START_NUMBER$']) - video_stream.update(self.FORMAT.get('9998')) + # MPD structure has segments with additional attributes + # and url has changed from using a query string to using url params + # This breaks the InputStream.Adaptive partial manifest update + video_stream['url'] = ('{0}?start_seq=$START_NUMBER$' + .format(video_stream['url'])) + details = self.FORMAT.get('9998') else: - if not s_info: - video_stream.update(self.FORMAT.get('9999')) - else: - has_video = (s_info['video']['codec'] != '') and (int(s_info['video']['bandwidth']) > 0) - if has_video: - video_stream.update(self.FORMAT.get('9999')) - video_stream['video']['height'] = s_info['video']['height'] - video_stream['video']['encoding'] = s_info['video']['codec'] - else: - video_stream.update(self.FORMAT.get('9997')) - video_stream['audio']['encoding'] = s_info['audio']['codec'] - if s_info['video']['quality_label']: - video_stream['title'] = s_info['video']['quality_label'] - else: - if has_video: - video_stream['title'] = '%sp%s' % (s_info['video']['height'], s_info['video']['fps']) - else: - video_stream['title'] = '%s@%s' % (s_info['audio']['codec'], str(s_info['audio'].get('bitrate', 0))) - if int(s_info['audio'].get('bitrate', 0)) > 0: - video_stream['audio']['bitrate'] = int(s_info['audio'].get('bitrate', 0)) + details = self.FORMAT.get('9999').copy() + + video_info = main_stream['video'] + details['title'] = [video_info['label']] + details['video']['encoding'] = video_info['codec'] + details['video']['height'] = video_info['height'] + + audio_info = main_stream['audio'] + if audio_info: + details['audio']['encoding'] = audio_info['codec'] + details['audio']['bitrate'] = audio_info['bitrate'] // 1000 + if audio_info['langCode'] not in {'', 'und'}: + details['title'].extend((' ', audio_info['langName'])) + if default_lang['is_asr']: + details['title'].append(' [ASR]') + if main_stream['multi_lang']: + details['title'].extend(( + ' [', self._context.localize(30762), ']' + )) + if main_stream['multi_audio']: + details['title'].extend(( + ' [', self._context.localize(30763), ']' + )) + + details['title'] = ''.join(details['title']) + + video_stream.update(details) stream_list.append(video_stream) - def parse_to_stream_list(streams): - for item in streams: - stream_map = item + # extract streams from map + if all_fmts: + stream_list.extend(self._create_stream_list( + all_fmts, meta_info, client['headers'], playback_stats + )) - url = stream_map.get('url', None) - conn = stream_map.get('conn', None) + # last fallback + if not stream_list: + raise YouTubeException('No streams found') - stream_map['itag'] = str(stream_map['itag']) + return stream_list - if url: - itag = stream_map['itag'] - yt_format = self.FORMAT.get(itag, None) - if not yt_format: - self._context.log_debug('unknown yt_format for itag "%s"' % itag) - continue + def _process_stream_data(self, stream_data, default_lang_code='und'): + _settings = self._context.get_settings() + qualities = _settings.get_mpd_video_qualities() + ia_capabilities = self._context.inputstream_adaptive_capabilities() + stream_features = _settings.stream_features() + allow_hdr = 'hdr' in stream_features + allow_hfr = 'hfr' in stream_features + allow_ssa = 'ssa' in stream_features + stream_select = _settings.stream_select() + + fps_scale_map = { + 0: '{0}000/1000', # --.00 fps + 24: '24000/1001', # 23.97 fps + 30: '30000/1001', # 29.97 fps + 60: '60000/1001', # 59.97 fps + } - if yt_format.get('discontinued', False) or yt_format.get('unsupported', False) or \ - (yt_format.get('dash/video', False) and not yt_format.get('dash/audio', False)): - continue + quality_factor_map = { + # video - order based on comparative compression ratio + 'av01': 1, + 'vp9': 0.75, + 'vp8': 0.55, + 'avc1': 0.5, + # audio - order based on preference + 'vorbis': 0.75, + 'mp4a': 0.9, + 'opus': 1, + 'ac-3': 1.1, + 'ec-3': 1.2, + 'dts': 1.3, + } - stream = {'url': url, - 'meta': meta_info, - 'headers': curl_headers, - 'playback_stats': playback_stats} - stream.update(yt_format) - stream_list.append(stream) - elif conn: - url = '%s?%s' % (conn, unquote(stream_map['stream'])) - itag = stream_map['itag'] - yt_format = self.FORMAT.get(itag, None) - if not yt_format: - self._context.log_debug('unknown yt_format for itag "%s"' % itag) - continue + audio_data = {} + video_data = {} + preferred_audio = { + 'id': '', + 'language_code': None, + 'role_type': 0, + } + for stream in stream_data: + mime_type = stream.get('mimeType') + if not mime_type: + continue - stream = {'url': url, - 'meta': meta_info, - 'headers': curl_headers, - 'playback_stats': playback_stats} - stream.update(yt_format) - if stream: - stream_list.append(stream) + itag = stream.get('itag') + if not itag: + continue - # extract streams from map - if std_fmts: - parse_to_stream_list(std_fmts) + index_range = stream.get('indexRange') + if not index_range: + continue - if adaptive_fmts: - parse_to_stream_list(adaptive_fmts) + init_range = stream.get('initRange') + if not init_range: + continue - # last fallback - if not stream_list: - raise YouTubeException('No streams found') + url = stream.get('url') + if not url and self._cipher and 'signatureCipher' in stream: + url = self._process_signature_cipher(stream) + if not url: + continue - return stream_list + mime_type, codecs = unquote(mime_type).split('; ') + codec = re.match(r'codecs="([a-z0-9]+([.\-][0-9](?="))?)', codecs) + if codec: + codec = codec.group(1) + if codec.startswith('vp9'): + codec = 'vp9' + elif codec.startswith('dts'): + codec = 'dts' + if codec not in stream_features or codec not in ia_capabilities: + continue + media_type, container = mime_type.split('/') + bitrate = stream.get('bitrate', 0) - def generate_mpd(self, video_id, adaptive_fmts, duration, license_url): - discarded_streams = list() - - def get_discarded_audio(fmt, mime_type, itag, stream, reason='unsupported'): - _discarded_stream = dict() - _discarded_stream['audio'] = dict() - _discarded_stream['audio']['itag'] = str(itag) - _discarded_stream['audio']['mime'] = str(mime_type) - _discarded_stream['audio']['codec'] = str(stream['codecs']) - if fmt: - audio_bitrate = int(fmt.get('audio', {}).get('bitrate', 0)) - if audio_bitrate > 0: - _discarded_stream['audio']['bitrate'] = audio_bitrate - codec_match = re.search('codecs="(?P[^"]+)"', _discarded_stream['audio']['codec']) - if codec_match: - _discarded_stream['audio']['codec'] = codec_match.group('codec') - _discarded_stream['audio']['bandwidth'] = int(stream['bandwidth']) - _discarded_stream['reason'] = reason - return _discarded_stream - - def get_discarded_video(mime_type, itag, stream, reason='unsupported'): - _discarded_stream = dict() - _discarded_stream['video'] = dict() - _discarded_stream['video']['itag'] = str(itag) - _discarded_stream['video']['width'] = str(stream['width']) - _discarded_stream['video']['height'] = str(stream['height']) - if stream.get('quality_label'): - _discarded_stream['video']['quality_label'] = str(stream['quality_label']) - _discarded_stream['video']['fps'] = str(stream['frameRate']) - _discarded_stream['video']['codec'] = str(stream['codecs']) - _discarded_stream['video']['mime'] = str(mime_type) - codec_match = re.search('codecs="(?P[^"]+)"', _discarded_stream['video']['codec']) - if codec_match: - _discarded_stream['video']['codec'] = codec_match.group('codec') - _discarded_stream['video']['bandwidth'] = int(stream['bandwidth']) - _discarded_stream['reason'] = reason - return _discarded_stream - - def filter_qualities(stream_data, container, sorted_qualities, fps_limit): - - data_copy = copy.deepcopy(stream_data) - - if container == 'mp4': - discard_mime = 'video/webm' - mime_type = 'video/mp4' - elif container == 'webm': - discard_mime = 'video/mp4' - mime_type = 'video/webm' - else: - return data_copy - - if fps_limit and mime_type in stream_data: - # if 30 fps limit enabled, discard streams that are greater than 30fps - if any(k for k in list(data_copy[mime_type].keys()) - if data_copy[mime_type][k]['fps'] <= 30): - for k in list(data_copy[mime_type].keys()): - if data_copy[mime_type][k]['fps'] > 30: - discarded_streams.append(get_discarded_video(mime_type, k, - data_copy[mime_type][k], - 'frame rate')) - del data_copy[mime_type][k] - - if discard_mime in data_copy: - # discard streams with unwanted mime type - for itag in list(data_copy[discard_mime].keys()): - discarded_streams.append(get_discarded_video(discard_mime, itag, - data_copy[discard_mime][itag], - 'mime type')) - del data_copy[discard_mime][itag] - del data_copy[discard_mime] - - itag_matches = [] - itag_match = None - - for idx, q in enumerate(sorted_qualities): - # find all streams with matching height - if any(itag for itag in list(data_copy[mime_type].keys()) - if int(data_copy[mime_type][itag].get('height', 0)) == q): - i_matches = [itag for itag in list(data_copy[mime_type].keys()) - if int(data_copy[mime_type][itag].get('height', 0)) == q] - itag_matches.extend(i_matches) - break + if media_type == 'audio': + data = audio_data + channels = stream.get('audioChannels', 2) + if channels > 2 and not allow_ssa: + continue - if not itag_matches: - # find best match for quality if there were no exact height candidates - for idx, q in enumerate(sorted_qualities): - if idx != len(sorted_qualities) - 1: - if any(itag for itag in list(data_copy[mime_type].keys()) - if ((int(data_copy[mime_type][itag].get('height', 0)) < q) and - (int(data_copy[mime_type][itag].get('height', 0)) >= sorted_qualities[idx + 1]))): - i_match = next(itag for itag in list(data_copy[mime_type].keys()) - if ((int(data_copy[mime_type][itag].get('height', 0)) < q) and - (int(data_copy[mime_type][itag].get('height', 0)) >= - sorted_qualities[idx + 1]))) - itag_matches.append(i_match) - break - - for itag in list(data_copy[mime_type].keys()): - # find highest fps and bandwidth itag out of all candidates - if itag in itag_matches: - if (not itag_match or itag_match.get('fps') < data_copy[mime_type][itag].get('fps') or - (itag_match.get('fps') == data_copy[mime_type][itag].get('fps') and - itag_match.get('bandwidth') < data_copy[mime_type][itag].get('bandwidth'))): - itag_match = data_copy[mime_type][itag] - - if itag_match: - for itag in list(data_copy[mime_type].keys()): - # discard all streams except the best match - if itag != itag_match.get('id'): - discarded_streams.append(get_discarded_video(mime_type, itag, - data_copy[mime_type][itag], - 'quality')) - del data_copy[mime_type][itag] - - return data_copy + if 'audioTrack' in stream: + audio_track = stream['audioTrack'] - basepath = 'special://temp/plugin.video.youtube/' - if not make_dirs(basepath): - self._context.log_debug('Failed to create directories: %s' % basepath) - return None + language = audio_track.get('id', default_lang_code) + if '.' in language: + language_code, role_type = language.split('.') + role_type = int(role_type) + else: + language_code = language + role_type = 4 + + if role_type == 4 or audio_track.get('audioIsDefault'): + role = 'main' + label = self._context.localize(30744) + elif role_type == 3: + role = 'dub' + label = self._context.localize(30745) + elif role_type == 2: + role = 'description' + label = self._context.localize(30746) + # Unsure of what other audio types are actually available + # Role set to "alternate" as default fallback + else: + role = 'alternate' + label = self._context.localize(30747) + + mime_group = '{0}_{1}.{2}'.format( + mime_type, language_code, role_type + ) + if (language_code == self._language_base and ( + not preferred_audio['id'] + or role == 'main' + or role_type > preferred_audio['role_type'] + )): + preferred_audio = { + 'id': '_{0}.{1}'.format(language_code, role_type), + 'language_code': language_code, + 'role_type': role_type, + } + else: + language_code = default_lang_code + role = 'main' + role_type = 4 + label = self._context.localize(30744) + mime_group = mime_type + + sample_rate = int(stream.get('audioSampleRate', '0'), 10) + height = width = fps = frame_rate = hdr = None + language = self._context.get_language_name(language_code) + label = '{0} ({1} kbps)'.format(label, bitrate // 1000) + if channels > 2 or 'auto' not in stream_select: + quality_group = '{0}_{1}_{2}.{3}'.format( + container, codec, language_code, role_type + ) + else: + quality_group = mime_group - has_video_stream = False - ia_capabilities = self._context.inputstream_adaptive_capabilities() + else: + data = video_data + # Could use "zxx" language code for + # "Non-Linguistic, Not Applicable" but that is too verbose + language_code = '' - ipaddress = self._context.get_settings().httpd_listen() - if ipaddress == '0.0.0.0': - ipaddress = '127.0.0.1' + fps = stream.get('fps', 0) + if fps > 30 and not allow_hfr: + continue - stream_info = {'video': {'height': '0', 'fps': '0', 'codec': '', 'mime': '', 'quality_label': '', 'bandwidth': 0}, - 'audio': {'bitrate': '0', 'codec': '', 'mime': '', 'bandwidth': 0}} + hdr = 'HDR' in stream.get('qualityLabel', '') + if hdr and not allow_hdr: + continue - data = dict() - for item in adaptive_fmts: - stream_map = item - stream_map['itag'] = str(stream_map.get('itag')) + height = stream.get('height') + width = stream.get('width') + if height > width: + compare_width = height + compare_height = width + else: + compare_width = width + compare_height = height + + bounded_quality = {} + for quality in qualities: + if compare_width > quality['width']: + if bounded_quality: + if compare_height >= bounded_quality['height']: + quality = bounded_quality + elif compare_height < quality['height']: + quality = qualities[-1] + break + bounded_quality = quality + if not bounded_quality: + continue - t = stream_map.get('mimeType') - t = unquote(t) - t = t.split(';') - mime = key = t[0] - i = stream_map.get('itag') - if 'audioTrack' in stream_map: - key = '_'.join([mime, stream_map.get('audioTrack').get('id')[0:2]]) - - if key not in data: - data[key] = {} - data[key][i] = {} - - data[key][i]['codecs'] = t[1][1:] - data[key][i]['id'] = i - - data[key][i]['width'] = stream_map.get('width') - data[key][i]['height'] = stream_map.get('height') - - data[key][i]['quality_label'] = str(stream_map.get('qualityLabel')) - - data[key][i]['bandwidth'] = stream_map.get('bitrate', 0) - - # map frame rates to a more common representation to lessen the chance of double refresh changes - # sometimes 30 fps is 30 fps, more commonly it is 29.97 fps (same for all mapped frame rates) - frame_rate = None - fps_scale_map = {24: 1001, 30: 1001, 60: 1001} - if 'fps' in stream_map: - fps = int(stream_map.get('fps')) - data[key][i]['fps'] = fps - scale = fps_scale_map.get(fps, 1000) - frame_rate = '%d/%d' % (fps * 1000, scale) - - data[key][i]['frameRate'] = frame_rate - - url = unquote(stream_map.get('url')) - url = url.replace("&", "&").replace('"', """).replace("<", "<").replace(">", ">") - - data[key][i]['baseUrl'] = url - - data[key][i]['indexRange'] = '0-0' - data[key][i]['initRange'] = '0-0' - if 'indexRange' in stream_map and 'initRange' in stream_map: - data[key][i]['indexRange'] = '-'.join([stream_map.get('indexRange').get('start'), - stream_map.get('indexRange').get('end')]) - data[key][i]['init'] = '-'.join([stream_map.get('initRange').get('start'), - stream_map.get('initRange').get('end')]) - if ('indexRange' not in stream_map or 'initRange' not in stream_map or - data[key][i].get('indexRange') == '0-0' and data[key][i].get('initRange') == '0-0'): - if key.startswith('video'): - discarded_streams.append(get_discarded_video(mime, i, data[key][i], 'no init or index')) + # map frame rates to a more common representation to lessen the + # chance of double refresh changes + if fps: + frame_rate = (fps_scale_map.get(fps) + or fps_scale_map[0].format(fps)) else: - stream_format = self.FORMAT.get(i, {}) - discarded_streams.append(get_discarded_audio(stream_format, mime, i, data[key][i], 'no init or index')) - del data[key][i] + frame_rate = None + + mime_group = mime_type + channels = language = role = role_type = sample_rate = None + label = quality['label'].format(fps if fps > 30 else '', + ' HDR' if hdr else '', + compare_height) + quality_group = '{0}_{1}'.format(container, label) + + if mime_group not in data: + data[mime_group] = {} + if quality_group not in data: + data[quality_group] = {} + + url = unquote(url) + url = self._process_url_params(url) + url = (url.replace("&", "&") + .replace('"', """) + .replace("<", "<") + .replace(">", ">")) + + data[mime_group][itag] = data[quality_group][itag] = { + 'mimeType': mime_type, + 'baseUrl': url, + 'mediaType': media_type, + 'container': container, + 'codecs': codecs, + 'codec': codec, + 'id': itag, + 'width': width, + 'height': height, + 'label': label, + 'bitrate': bitrate, + 'biasedBitrate': bitrate * quality_factor_map.get(codec, 1), + # integer round up + 'duration': -(-int(stream.get('approxDurationMs', 0)) // 1000), + 'fps': fps, + 'frameRate': frame_rate, + 'hdr': hdr, + 'indexRange': '{start}-{end}'.format(**index_range), + 'initRange': '{start}-{end}'.format(**init_range), + 'langCode': language_code, + 'langName': language, + 'role': role, + 'roleType': role_type, + 'sampleRate': sample_rate, + 'channels': channels, + } - if not data.get('video/mp4') and not data.get('video/webm'): + if not video_data: self._context.log_debug('Generate MPD: No video mime-types found') return None, None - mpd_quality = self._context.get_settings().get_mpd_quality() - hdr = self._context.get_settings().include_hdr() and 'vp9.2' in ia_capabilities - limit_30fps = self._context.get_settings().mpd_30fps_limit() - - supported_mime_types = [] - default_mime_type = 'mp4' - if data.get('video/mp4'): - supported_mime_types.append('video/mp4') - if any(m for m in data if m.startswith('audio/mp4')): - supported_mime_types.append('audio/mp4') - - if (('vp9' in ia_capabilities or 'vp9.2' in ia_capabilities) and - any(m for m in data if m == 'video/webm') and - data.get('video/webm')): - supported_mime_types.append('video/webm') - - if (('vorbis' in ia_capabilities or 'opus' in ia_capabilities) and - any(m for m in data if m.startswith('audio/webm'))): - supported_mime_types.append('audio/webm') - - if ('video/webm' in supported_mime_types and - ((isinstance(mpd_quality, str) and mpd_quality == 'webm') or - (isinstance(mpd_quality, int) and mpd_quality > 1080) or - hdr)): - default_mime_type = 'webm' - - limit_qualities = self._context.get_settings().mpd_video_qualities() - apply_filters = isinstance(mpd_quality, int) and isinstance(limit_qualities, list) - - self._context.log_debug('Generating MPD: Apply filters |{apply_filters}| ' - 'Quality selection |{quality}| Limit 30FPS |{limit_fps}| HDR |{hdr}|' - .format(apply_filters=str(apply_filters), - quality=(limit_qualities if isinstance(limit_qualities, str) - else str(next(iter(limit_qualities), None))), - limit_fps=str(limit_30fps), - hdr=str(hdr))) - - if 'video/webm' in supported_mime_types: - webm_streams = {} - if hdr and any(k for k in list(data['video/webm'].keys()) if '"vp9.2"' in data['video/webm'][k]['codecs']): - # when hdr enabled and available replace vp9 streams with vp9.2 (hdr) - for key in list(data['video/webm'].keys()): - if '"vp9.2"' in data['video/webm'][key]['codecs']: - webm_streams[key] = data['video/webm'][key] - - discard_webm = [data['video/webm'][i] for i in (set(data['video/webm']) - set(webm_streams)) - if i in data['video/webm']] - - for d in discard_webm: - discarded_streams.append(get_discarded_video('video/webm', - d['id'], - data['video/webm'][d['id']], - 'replaced by hdr')) - elif not hdr: - # when hdr disabled and remove vp9.2 (hdr) streams - for key in list(data['video/webm'].keys()): - if '"vp9"' in data['video/webm'][key]['codecs']: - webm_streams[key] = data['video/webm'][key] - - discard_webm = [data['video/webm'][i] for i in (set(data['video/webm']) - set(webm_streams)) - if i in data['video/webm']] - - for d in discard_webm: - discarded_streams.append(get_discarded_video('video/webm', - d['id'], - data['video/webm'][d['id']], - 'hdr disabled')) - - if webm_streams: - data['video/webm'] = webm_streams - - if apply_filters: - data = filter_qualities(data, default_mime_type, limit_qualities, limit_30fps) - - out_list = ['\n' - '\n', - '\t\n'] - - n = 0 - - for key in data: - if "_" in key: - key_parts = key.split("_") - mime = key_parts[0] - lang = key_parts[1] + def _stream_sort(stream): + if not stream: + return (1, ) + + return ( + - stream['height'], + - stream['fps'], + - stream['hdr'], + - stream['biasedBitrate'], + ) if stream['mediaType'] == 'video' else ( + - stream['channels'], + - stream['biasedBitrate'], + ) + + def _group_sort(item): + group, streams = item + main_stream = streams[0] + + key = ( + group != main_stream['mimeType'], + ) if main_stream['mediaType'] == 'video' else ( + not group.startswith(main_stream['mimeType']), + preferred_audio['id'] not in group, + main_stream['langName'], + - main_stream['roleType'], + ) + return key + _stream_sort(main_stream) + + video_data = sorted(( + (group, sorted(streams.values(), key=_stream_sort)) + for group, streams in video_data.items() + ), key=_group_sort) + + audio_data = sorted(( + (group, sorted(streams.values(), key=_stream_sort)) + for group, streams in audio_data.items() + ), key=_group_sort) + + return video_data, audio_data + + def _generate_mpd_manifest(self, video_data, audio_data, license_url): + if not video_data or not audio_data: + return None, None + + basepath = 'special://temp/plugin.video.youtube/' + if not make_dirs(basepath): + self._context.log_debug('Failed to create temp directory: {0}' + .format(basepath)) + return None, None + + def _filter_group(previous_group, previous_stream, item): + skip_group = True + if not item: + return skip_group + if not previous_group or not previous_stream: + return not skip_group + + new_group = item[0] + new_stream = item[1][0] + + media_type = new_stream['mediaType'] + if media_type != previous_stream['mediaType']: + return not skip_group + + if previous_group.startswith(previous_stream['mimeType']): + if new_group.startswith(new_stream['container']): + return not skip_group + + skip_group = ( + new_stream['height'] <= previous_stream['height'] + ) if media_type == 'video' else ( + new_stream['channels'] <= previous_stream['channels'] + ) else: - mime = key - lang = None - if mime in supported_mime_types: - default = False - if mime.endswith(default_mime_type): - default = True + if new_group.startswith(new_stream['mimeType']): + return not skip_group - out_list.append(''.join(['\t\t\n'])) - if license_url is not None: - license_url = license_url.replace("&", "&").replace('"', """).replace("<", "<").replace(">", ">") - out_list.append(''.join(['\t\t\t\n', '\t\t\t\t', license_url, '\n', '\t\t\t\n'])) - out_list.append('\t\t\t\n') - for i in data[key]: - stream_format = self.FORMAT.get(i, {}) - if 'audio' in mime: - audio_codec = str(data[key][i]['codecs']) - match = re.search('codecs="(?P[^"]+)"', audio_codec) - if match: - audio_codec = match.group('codec') - - if 'opus' == audio_codec.lower() and 'opus' not in ia_capabilities: - discarded_streams.append(get_discarded_audio(stream_format, mime, i, data[key][i])) - continue - elif 'vorbis' == audio_codec.lower() and 'vorbis' not in ia_capabilities: - discarded_streams.append(get_discarded_audio(stream_format, mime, i, data[key][i])) - continue - - if int(data[key][i]['bandwidth']) > int(stream_info['audio']['bandwidth']): - stream_info['audio']['mime'] = str(mime) - if stream_format: - bitrate = int(stream_format.get('audio', {}).get('bitrate', 0)) - if bitrate > 0: - stream_info['audio']['bitrate'] = bitrate - stream_info['audio']['codec'] = stream_format.get('audio', {}).get('encoding') - if not stream_info['audio'].get('codec'): - stream_info['audio']['codec'] = audio_codec - stream_info['audio']['bandwidth'] = int(data[key][i]['bandwidth']) - - out_list.append(''.join(['\t\t\t\n'])) - out_list.append('\t\t\t\t\n') - else: + skip_group = ( + new_stream['height'] == previous_stream['height'] + ) if media_type == 'video' else ( + 2 == new_stream['channels'] == previous_stream['channels'] + ) - video_codec = str(data[key][i]['codecs']) - match = re.search('codecs="(?P[^"]+)"', video_codec) - if match: - video_codec = match.group('codec') - - if 'vp9.2' == video_codec.lower() and ('vp9.2' not in ia_capabilities or - not self._context.get_settings().include_hdr()): - if not self._context.get_settings().include_hdr() and 'vp9.2' in ia_capabilities: - discarded_streams.append(get_discarded_video(mime, i, data[key][i], 'hdr not selected')) - else: - discarded_streams.append(get_discarded_video(mime, i, data[key][i])) - continue - elif 'vp9' == video_codec.lower() and 'vp9' not in ia_capabilities: - discarded_streams.append(get_discarded_video(mime, i, data[key][i])) - continue - elif video_codec.lower().startswith(('av01', 'av1')) and 'av1' not in ia_capabilities: - discarded_streams.append(get_discarded_video(mime, i, data[key][i])) - continue - - has_video_stream = True - if default: - if int(data[key][i]['bandwidth']) > int(stream_info['video']['bandwidth']): - stream_info['video']['height'] = str(data[key][i]['height']) - stream_info['video']['fps'] = str(data[key][i]['frameRate']) - stream_info['video']['mime'] = str(mime) - stream_info['video']['codec'] = video_codec - stream_info['video']['bandwidth'] = int(data[key][i]['bandwidth']) - if data[key][i].get('quality_label'): - stream_info['video']['quality_label'] = str(data[key][i]['quality_label']) - if stream_format: - stream_info['video']['codec'] = stream_format.get('video', {}).get('encoding') - if not stream_info['video'].get('codec'): - stream_info['video']['codec'] = video_codec - - video_codec = data[key][i]['codecs'] - out_list.append(''.join(['\t\t\t\n'])) - - out_list.append(''.join(['\t\t\t\t', data[key][i]['baseUrl'], '\n'])) - out_list.append(''.join(['\t\t\t\t\n', '\t\t\t\t\t\t\n', '\t\t\t\t\n'])) - out_list.append('\t\t\t\n') - out_list.append('\t\t\n') - n = n + 1 + skip_group = ( + skip_group + and new_stream['fps'] == previous_stream['fps'] + and new_stream['hdr'] == previous_stream['hdr'] + ) if media_type == 'video' else ( + skip_group + and new_stream['langCode'] == previous_stream['langCode'] + and new_stream['role'] == previous_stream['role'] + ) + return skip_group + + _settings = self._context.get_settings() + stream_features = _settings.stream_features() + do_filter = 'filter' in stream_features + stream_select = _settings.stream_select() + + main_stream = { + 'video': video_data[0][1][0], + 'audio': audio_data[0][1][0], + 'multi_audio': False, + 'multi_lang': False, + } + + out_list = [ + '\n' + '\n' + '\t\n' + ] + + set_id = 0 + group = stream = None + languages = set() + roles = set() + for item in (video_data + audio_data): + default = original = impaired = False + + if do_filter and _filter_group(group, stream, item): + continue + group, streams = item + stream = streams[0] + container = stream['container'] + media_type = stream['mediaType'] + mime_type = stream['mimeType'] + language = stream['langCode'] + role = stream['role'] or '' + + if group.startswith(mime_type) and 'auto' in stream_select: + label = '{0} [{1}]'.format( + stream['langName'] or self._context.localize(30583), + stream['label'] + ) + if stream == main_stream[media_type]: + default = True + role = 'main' + elif group.startswith(container) and 'list' in stream_select: + if 'auto' in stream_select or media_type == 'video': + label = stream['label'] + else: + label = '{0} {1}'.format( + stream['langName'], + stream['label'] + ) + if stream == main_stream[media_type]: + default = True + role = 'main' else: - for i in data[key]: - stream_format = self.FORMAT.get(i, {}) - if 'audio' in mime: - discarded_stream = get_discarded_audio(stream_format, mime, i, data[key][i]) - else: - discarded_stream = get_discarded_video(mime, i, data[key][i]) - discarded_streams.append(discarded_stream) + continue - out_list.append('\t\n\n') + if role == 'main': + if not default: + role = 'alternate' + original = True + elif role == 'description': + impaired = True + + languages.add(language) + roles.add(role) + + out_list.extend(( + '\t\t\n' + # AdaptationSet Label element not currently used by ISA + '\t\t\t\n' + '\t\t\t\n' + )) + + if license_url: + license_url = (license_url.replace("&", "&") + .replace('"', """).replace("<", "<") + .replace(">", ">")) + out_list.extend(( + '\t\t\t\n' + '\t\t\t\t', + license_url, + '\n' + '\t\t\t\n' + )) + + num_streams = len(streams) + if media_type == 'audio': + out_list.extend((( + '\t\t\t\n' + '\t\t\t\t\n' + # Representation Label element is not used by ISA + '\t\t\t\t\n' + '\t\t\t\t{baseUrl}\n' + '\t\t\t\t\n' + '\t\t\t\t\t\n' + '\t\t\t\t\n' + '\t\t\t\n' + ).format( + quality=(idx + 1), priority=(num_streams - idx), **stream + ) for idx, stream in enumerate(streams))) + elif media_type == 'video': + out_list.extend((( + '\t\t\t\n' + # Representation Label element is not used by ISA + '\t\t\t\t\n' + '\t\t\t\t{baseUrl}\n' + '\t\t\t\t\n' + '\t\t\t\t\t\n' + '\t\t\t\t\n' + '\t\t\t\n' + ).format( + quality=(idx + 1), priority=(num_streams - idx), **stream + ) for idx, stream in enumerate(streams))) + + out_list.append('\t\t\n') + set_id += 1 + + out_list.append('\t\n' + '\n') out = ''.join(out_list) - self._context.log_debug('Generated MPD highest supported quality found: |%s|' % str(stream_info)) - if discarded_streams: - discarded_streams = sorted(discarded_streams, key=lambda k: k.get('audio', k.get('video', {}))['bandwidth'], reverse=True) - self._context.log_debug('Generated MPD discarded streams: \n%s' % '\n'.join(str(stream) for stream in discarded_streams)) + if len(languages.difference({'', 'und'})) > 1: + main_stream['multi_lang'] = True + if roles.difference({'', 'main', 'dub'}): + main_stream['multi_audio'] = True - if not has_video_stream: - self._context.log_debug('Generated MPD no supported video streams found') - - filepath = '{base_path}{video_id}.mpd'.format(base_path=basepath, video_id=video_id) - try: - f = xbmcvfs.File(filepath, 'w') - _ = f.write(str(out)) - f.close() - return 'http://{ipaddress}:{port}/{video_id}.mpd'.format( - ipaddress=ipaddress, - port=self._context.get_settings().httpd_port(), - video_id=video_id - ), stream_info - except: + filepath = '{0}{1}.mpd'.format(basepath, self.video_id) + success = None + with xbmcvfs.File(filepath, 'w') as mpd_file: + success = mpd_file.write(str(out)) + if not success: return None, None + return 'http://{0}:{1}/{2}.mpd'.format( + _settings.httpd_listen(for_request=True), + _settings.httpd_port(), + self.video_id + ), main_stream diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/yt_play.py b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/yt_play.py index 872bd4e3ec..9de573632d 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/yt_play.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/helper/yt_play.py @@ -82,17 +82,19 @@ def play_video(provider, context): incognito = str(context.get_param('incognito', False)).lower() == 'true' use_history = not is_live and not screensaver and not incognito - playback_history = use_history and settings.use_playback_history() + use_remote_history = use_history and settings.use_remote_history() + use_play_data = use_history and settings.use_local_history() + video_item = utils.update_play_info(provider, context, video_id, video_item, video_stream, - use_play_data=playback_history) + use_play_data=use_play_data) seek_time = None play_count = 0 playback_stats = video_stream.get('playback_stats') - if use_history: - if video_item.get_start_time() and video_item.use_dash(): + if use_remote_history: + if video_item.get_start_time() and video_item.use_mpd_video(): seek_time = video_item.get_start_time() play_count = video_item.get_play_count() if video_item.get_play_count() is not None else '0' @@ -112,8 +114,8 @@ def play_video(provider, context): "video_status": metadata.get('video', {}).get('status', {}), "playing_file": video_item.get_uri(), "play_count": play_count, - "use_history": use_history, - "playback_history": playback_history, + "use_remote_history": use_remote_history, + "use_local_history": use_play_data, "playback_stats": playback_stats, "seek_time": seek_time, "refresh_only": screensaver diff --git a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/provider.py b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/provider.py index fea2957999..bdab66582b 100644 --- a/plugin.video.youtube/resources/lib/youtube_plugin/youtube/provider.py +++ b/plugin.video.youtube/resources/lib/youtube_plugin/youtube/provider.py @@ -108,7 +108,7 @@ class Provider(kodion.AbstractProvider): 'youtube.succeeded': 30575, 'youtube.failed': 30576, 'youtube.settings': 30577, - 'youtube.dash.enable.confirm': 30579, + 'youtube.mpd.enable.confirm': 30579, 'youtube.reset.access.manager.confirm': 30581, 'youtube.my_subscriptions_filtered': 30584, 'youtube.add.my_subscriptions.filter': 30587, @@ -1077,8 +1077,7 @@ def configure_addon(self, context, re_match): context.addon().openSettings() context.get_ui().refresh_container() elif switch == 'mpd': - use_dash = context.use_inputstream_adaptive() - if use_dash: + if context.use_inputstream_adaptive(): xbmcaddon.Addon(id='inputstream.adaptive').openSettings() else: settings.set_bool('kodion.video.quality.mpd', False) diff --git a/plugin.video.youtube/resources/lib/youtube_requests.py b/plugin.video.youtube/resources/lib/youtube_requests.py index 547c8f30ea..cf062d1968 100644 --- a/plugin.video.youtube/resources/lib/youtube_requests.py +++ b/plugin.video.youtube/resources/lib/youtube_requests.py @@ -39,7 +39,7 @@ def handle_error(context, json_data): return True -def v3_request(method='GET', headers=None, path=None, post_data=None, params=None, allow_redirects=True, addon_id=None): +def v3_request(method='GET', headers=None, path=None, post_data=None, params=None, addon_id=None): """ https://developers.google.com/youtube/v3/docs/ :param method: @@ -47,12 +47,11 @@ def v3_request(method='GET', headers=None, path=None, post_data=None, params=Non :param path: :param post_data: :param params: - :param allow_redirects: :param addon_id: addon id associated with developer keys to use for requests :type addon_id: str """ provider, context, client = __get_core_components(addon_id) - return client.perform_v3_request(method=method, headers=headers, path=path, post_data=post_data, params=params, allow_redirects=allow_redirects) + return client.perform_v3_request(method=method, headers=headers, path=path, post_data=post_data, params=params) def _append_missing_page_token(items): diff --git a/plugin.video.youtube/resources/lib/youtube_resolver.py b/plugin.video.youtube/resources/lib/youtube_resolver.py index 384915ff6e..28eb032561 100644 --- a/plugin.video.youtube/resources/lib/youtube_resolver.py +++ b/plugin.video.youtube/resources/lib/youtube_resolver.py @@ -54,6 +54,6 @@ def resolve(video_id, sort=True, addon_id=None): streams = client.get_video_streams(context=context, video_id=matched_id) if sort and streams: - streams = sorted(streams, key=lambda x: x.get('sort', 0), reverse=True) + streams = sorted(streams, key=lambda x: x.get('sort', (0, 0))) return streams diff --git a/plugin.video.youtube/resources/settings.xml b/plugin.video.youtube/resources/settings.xml index 240043a94a..70429df9f6 100644 --- a/plugin.video.youtube/resources/settings.xml +++ b/plugin.video.youtube/resources/settings.xml @@ -1,9 +1,9 @@
- + - + 0 3 @@ -17,27 +17,27 @@ - false + false - + 0 false - false + false - + 0 false - + 0 RunPlugin(plugin://plugin.video.youtube/config/subtitles/) @@ -55,7 +55,7 @@ true - + 0 0 @@ -67,7 +67,7 @@ - + 0 false @@ -77,17 +77,17 @@ - + 0 false - + 0 false - + 0 85 @@ -104,34 +104,34 @@ false - + 0 true - + 0 false - + 0 false - true + true - + 0 false - + 0 1 @@ -142,22 +142,22 @@ - + 0 true - + 0 true - true + true - + 0 50 @@ -169,7 +169,7 @@ false - + 0 10 @@ -181,7 +181,7 @@ false - + 0 0 @@ -193,16 +193,16 @@ - + 0 true - + - + 0 false @@ -212,7 +212,7 @@ - + 0 RunPlugin(plugin://plugin.video.youtube/config/mpd/) @@ -220,7 +220,7 @@ - true + true @@ -229,83 +229,127 @@ - + 0 true - true + true - + 0 - 8 + 4 - - - - - - - - - - + + + + + + + + - true + true - - 0 - false - + + 0 + avc1,vp9,av01,hdr,hfr,vorbis,opus,mp4a,ssa,ac-3,ec-3,dts,filter + + + + + + + + + + + + + + + + + , + 1 + + - - true - 8 - + true - + + true + true + - + 0 - false + 1 + + + + + + + - - true - false - 8 - 9 - + true - + - + 0 - true + 0 + + + + + + + + + - - true + + true - + + + 0 + 0 + + + + + + + + + + false + + + - + 0 RunPlugin(plugin://plugin.video.youtube/maintain/inputstreamhelper/install/) @@ -313,44 +357,48 @@ - true + + true + 1 + 1 + - + - + 0 true - + 0 true - + 0 false - + 0 false - true + true - true + true - + 0 @@ -358,52 +406,52 @@ - true + true - true + true 30585 - + 0 true - + 0 true - + 0 true - + 0 false - + 0 false - + 0 true - + 0 true - + 0 true @@ -413,12 +461,12 @@ - + 0 true - + 0 @@ -426,32 +474,32 @@ - true + true - true + true 30037 - + 0 true - + 0 true - + 0 true - + 0 @@ -459,22 +507,22 @@ - true + true - true + true 30038 - + 0 true - + 0 true @@ -484,51 +532,51 @@ - + 0 true - + 0 true - + 0 true - + 0 true - + 0 true - + 0 true - + 0 true - + 0 true - + - + 0 RunPlugin(plugin://plugin.video.youtube/users/add/?refresh=false) @@ -536,7 +584,7 @@ - + 0 RunPlugin(plugin://plugin.video.youtube/users/remove/?refresh=false) @@ -544,7 +592,7 @@ - + 0 RunPlugin(plugin://plugin.video.youtube/users/rename/?refresh=false) @@ -552,7 +600,7 @@ - + 0 RunPlugin(plugin://plugin.video.youtube/users/switch/?refresh=false) @@ -562,43 +610,60 @@ - + - + + 0 + 0 + + + + + + + + + + 0 true - + 0 false - + 0 false - true + true - + 0 true - + + 0 + false + + + 0 false - + 0 10 @@ -610,14 +675,14 @@ false - + 0 true - + 0 en-US @@ -629,7 +694,7 @@ 30523 - + 0 US @@ -641,7 +706,7 @@ 30550 - + 0 @@ -656,7 +721,7 @@ 30651 - + 0 500 @@ -675,9 +740,9 @@ - + - + 0 0.0.0.0 @@ -689,7 +754,7 @@ 30643 - + 0 RunPlugin(plugin://plugin.video.youtube/config/listen_ip/) @@ -699,7 +764,7 @@ true - + 0 50152 @@ -711,7 +776,7 @@ 30619 - + 0 @@ -726,7 +791,7 @@ 30629 - + 0 RunPlugin(plugin://plugin.video.youtube/show_client_ip/) @@ -736,9 +801,9 @@ - + - + 0 @@ -748,7 +813,7 @@ 30201 - + 0 @@ -758,7 +823,7 @@ 30202 - + 0 @@ -768,23 +833,23 @@ 30203 - + 0 true - + 0 false - + - + 0 RunPlugin(plugin://plugin.video.youtube/maintain/function_cache/clear/) @@ -792,7 +857,7 @@ - + 0 RunPlugin(plugin://plugin.video.youtube/maintain/data_cache/clear/) @@ -800,7 +865,7 @@ - + 0 RunPlugin(plugin://plugin.video.youtube/maintain/search_cache/clear/) @@ -808,7 +873,7 @@ - + 0 RunPlugin(plugin://plugin.video.youtube/maintain/playback_history/clear/) @@ -818,7 +883,7 @@ - + 0 RunPlugin(plugin://plugin.video.youtube/maintain/function_cache/delete/) @@ -826,7 +891,7 @@ - + 0 RunPlugin(plugin://plugin.video.youtube/maintain/data_cache/delete/) @@ -834,7 +899,7 @@ - + 0 RunPlugin(plugin://plugin.video.youtube/maintain/search_cache/delete/) @@ -842,7 +907,7 @@ - + 0 RunPlugin(plugin://plugin.video.youtube/maintain/playback_history/delete/) @@ -852,7 +917,7 @@ - + 0 RunPlugin(plugin://plugin.video.youtube/maintain/access_manager/reset/) @@ -864,7 +929,7 @@ - + 0 RunPlugin(plugin://plugin.video.youtube/maintain/settings_xml/delete/) @@ -874,7 +939,7 @@ true - + 0 RunPlugin(plugin://plugin.video.youtube/maintain/api_keys/delete/) @@ -882,7 +947,7 @@ - + 0 RunPlugin(plugin://plugin.video.youtube/maintain/access_manager/delete/) @@ -890,7 +955,7 @@ - + 0 RunPlugin(plugin://plugin.video.youtube/maintain/temp_files/delete/) @@ -898,7 +963,7 @@ - + 0 @@ -913,7 +978,7 @@ - + 0 @@ -928,7 +993,7 @@ - + 0 0 @@ -940,7 +1005,7 @@ - + 0