Currently translated at 96.4% (703 of 729 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Danish)
Currently translated at 96.4% (703 of 729 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Danish)
Currently translated at 88.3% (644 of 729 strings)
Translated using Weblate (Danish)
Currently translated at 88.3% (644 of 729 strings)
Translated using Weblate (Belarusian)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Slovak)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Georgian)
Currently translated at 92.2% (71 of 77 strings)
Translated using Weblate (Uzbek (latin))
Currently translated at 62.6% (457 of 729 strings)
Translated using Weblate (Santali)
Currently translated at 12.6% (92 of 729 strings)
Translated using Weblate (French)
Currently translated at 89.6% (69 of 77 strings)
Translated using Weblate (Japanese)
Currently translated at 11.6% (9 of 77 strings)
Translated using Weblate (Bulgarian)
Currently translated at 5.1% (4 of 77 strings)
Translated using Weblate (Bengali)
Currently translated at 20.7% (16 of 77 strings)
Translated using Weblate (German)
Currently translated at 100.0% (77 of 77 strings)
Translated using Weblate (Bengali (India))
Currently translated at 40.7% (297 of 729 strings)
Translated using Weblate (Kurdish (Central))
Currently translated at 85.5% (624 of 729 strings)
Translated using Weblate (Tamil)
Currently translated at 46.6% (340 of 729 strings)
Translated using Weblate (Bengali (Bangladesh))
Currently translated at 55.1% (402 of 729 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (German)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Portuguese (Portugal))
Currently translated at 98.7% (76 of 77 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Hebrew)
Currently translated at 99.4% (725 of 729 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Croatian)
Currently translated at 99.4% (725 of 729 strings)
Translated using Weblate (ryu (generated) (ryu))
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Croatian)
Currently translated at 2.5% (2 of 77 strings)
Translated using Weblate (Malay)
Currently translated at 48.6% (355 of 729 strings)
Translated using Weblate (Croatian)
Currently translated at 99.3% (724 of 729 strings)
Translated using Weblate (Romanian)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Finnish)
Currently translated at 98.3% (717 of 729 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 22.0% (17 of 77 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 95.4% (696 of 729 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Vietnamese)
Currently translated at 42.8% (33 of 77 strings)
Translated using Weblate (Vietnamese)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Esperanto)
Currently translated at 70.7% (516 of 729 strings)
Translated using Weblate (Slovak)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Azerbaijani)
Currently translated at 94.6% (690 of 729 strings)
Translated using Weblate (Hindi)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (French)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Santali)
Currently translated at 10.0% (73 of 729 strings)
Translated using Weblate (Turkish)
Currently translated at 42.8% (33 of 77 strings)
Translated using Weblate (German)
Currently translated at 81.8% (63 of 77 strings)
Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Kannada)
Currently translated at 5.4% (40 of 729 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (77 of 77 strings)
Translated using Weblate (Vietnamese)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Croatian)
Currently translated at 88.7% (647 of 729 strings)
Translated using Weblate (Slovak)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Odia)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Slovak)
Currently translated at 20.7% (16 of 77 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Slovak)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (French)
Currently translated at 99.8% (728 of 729 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (77 of 77 strings)
Translated using Weblate (Catalan)
Currently translated at 86.5% (631 of 729 strings)
Translated using Weblate (Telugu)
Currently translated at 58.9% (430 of 729 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Tigrinya)
Currently translated at 8.9% (65 of 729 strings)
Translated using Weblate (Russian)
Currently translated at 98.7% (76 of 77 strings)
Translated using Weblate (Belarusian)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Slovak)
Currently translated at 99.7% (727 of 729 strings)
Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Odia)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (77 of 77 strings)
Translated using Weblate (Kurdish (Central))
Currently translated at 85.5% (624 of 729 strings)
Translated using Weblate (Estonian)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Japanese)
Currently translated at 99.8% (728 of 729 strings)
Translated using Weblate (Serbian)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (German)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (77 of 77 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (77 of 77 strings)
Translated using Weblate (Hindi)
Currently translated at 100.0% (77 of 77 strings)
Translated using Weblate (Punjabi)
Currently translated at 100.0% (77 of 77 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (77 of 77 strings)
Translated using Weblate (Portuguese (Portugal))
Currently translated at 99.8% (728 of 729 strings)
Translated using Weblate (Punjabi)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Hindi)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Swedish)
Currently translated at 99.8% (728 of 729 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Portuguese)
Currently translated at 99.8% (728 of 729 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (German)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (German)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (77 of 77 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (729 of 729 strings)
Translated using Weblate (ryu (generated) (ryu))
Currently translated at 100.0% (728 of 728 strings)
Translated using Weblate (Serbian)
Currently translated at 18.1% (14 of 77 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (77 of 77 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (77 of 77 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (77 of 77 strings)
Translated using Weblate (Greek)
Currently translated at 24.6% (19 of 77 strings)
Translated using Weblate (Estonian)
Currently translated at 100.0% (728 of 728 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (728 of 728 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (728 of 728 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (728 of 728 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (728 of 728 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (728 of 728 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (728 of 728 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (728 of 728 strings)
Translated using Weblate (Serbian)
Currently translated at 100.0% (728 of 728 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (728 of 728 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (728 of 728 strings)
Translated using Weblate (German)
Currently translated at 100.0% (728 of 728 strings)
Translated using Weblate (ryu (generated) (ryu))
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (Kannada)
Currently translated at 5.5% (40 of 726 strings)
Translated using Weblate (Sinhala)
Currently translated at 2.6% (2 of 76 strings)
Translated using Weblate (Sinhala)
Currently translated at 4.1% (30 of 726 strings)
Translated using Weblate (Bulgarian)
Currently translated at 5.2% (4 of 76 strings)
Translated using Weblate (Punjabi)
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (Hindi)
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (Turkish)
Currently translated at 99.8% (725 of 726 strings)
Translated using Weblate (Slovak)
Currently translated at 98.4% (715 of 726 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (French)
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (Italian)
Currently translated at 99.5% (723 of 726 strings)
Translated using Weblate (Serbian)
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (German)
Currently translated at 100.0% (726 of 726 strings)
Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 21.0% (16 of 76 strings)
Translated using Weblate (Serbian)
Currently translated at 100.0% (725 of 725 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (725 of 725 strings)
Translated using Weblate (Romanian)
Currently translated at 99.8% (724 of 725 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (725 of 725 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (725 of 725 strings)
Co-authored-by: Agnieszka C <aga_04@o2.pl>
Co-authored-by: Alex25820 <alexs25820@gmail.com>
Co-authored-by: Alexthegib <traducoes@skiff.com>
Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: Andrey F <firsan777@mail.ru>
Co-authored-by: Angelk90 <angelo.k90@hotmail.it>
Co-authored-by: Chethan <76928501+ch3thanhs@users.noreply.github.com>
Co-authored-by: Danr <mdp43140@gmail.com>
Co-authored-by: David Svane <davidcygnus@users.noreply.hosted.weblate.org>
Co-authored-by: Deleted User <noreply+77891@weblate.org>
Co-authored-by: DuninduH <mateyh37@gmail.com>
Co-authored-by: Eric <zxmegaxqug@hldrive.com>
Co-authored-by: Fjuro <ifjuro@proton.me>
Co-authored-by: GET100PERCENT <eraofphysics@yahoo.com>
Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me>
Co-authored-by: Heidhou chazanouvha <Heidhou@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Igor Rückert <igorruckert@yahoo.com.br>
Co-authored-by: Igor Sorocean <sorocean.igor@gmail.com>
Co-authored-by: Ihfandi <ihfandicahyo@gmail.com>
Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Co-authored-by: Jan Layola <gilajan@protonmail.com>
Co-authored-by: Jeff Huang <s8321414@gmail.com>
Co-authored-by: Juan Martinez <jjml.nipon@gmail.com>
Co-authored-by: KarmaKat <lloydwestbury@gmail.com>
Co-authored-by: Kuko <kuko7@protonmail.ch>
Co-authored-by: LiJu09 <lisojuraj@gmail.com>
Co-authored-by: Martin Constantino–Bodin <martin.bodin@ens-lyon.org>
Co-authored-by: Mehmet <mehmetyalcin.0103@gmail.com>
Co-authored-by: Michalis <michalisntovas@yahoo.gr>
Co-authored-by: Milan <mobrcian@hotmail.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: NEXI <nexiphotographer@gmail.com>
Co-authored-by: Nils Van Zuijlen <nils.van-zuijlen@mailo.com>
Co-authored-by: Nista <42772160+Nista11@users.noreply.github.com>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: P.O <rasmusson.mikael@protonmail.com>
Co-authored-by: Philip Goto <philip.goto@gmail.com>
Co-authored-by: Pi-Cla <pirateclip@protonmail.com>
Co-authored-by: Prasanta-Hembram <Prasantahembram720@gmail.com>
Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com>
Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
Co-authored-by: Ray <ray@users.noreply.hosted.weblate.org>
Co-authored-by: Rex_sa <rex.sa@pm.me>
Co-authored-by: Scrambled777 <weblate.scrambled777@simplelogin.com>
Co-authored-by: Sergio Marques <so.boston.android@gmail.com>
Co-authored-by: ShareASmile <aapshergill@gmail.com>
Co-authored-by: Subbarayudu <raidu.g6@gmail.com>
Co-authored-by: Subham Jena <subhamjena8465@gmail.com>
Co-authored-by: T1z3n <info@njbraun.de>
Co-authored-by: Terry Louwers <t.louwers@gmail.com>
Co-authored-by: TobiGr <TobiGr@users.noreply.github.com>
Co-authored-by: Vasilis K <skyhirules@gmail.com>
Co-authored-by: VfBFan <VfBFan@users.noreply.hosted.weblate.org>
Co-authored-by: Xəyyam Qocayev <xxmn77@gmail.com>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Co-authored-by: cat <158170307+cultcats@users.noreply.github.com>
Co-authored-by: ds-z <drazen.sostaric01@gmail.com>
Co-authored-by: dyare darbani <darbanidyare@gmail.com>
Co-authored-by: fsbat0 <fsbat0@users.noreply.hosted.weblate.org>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: hshbuk <hsh.bukchin@gmail.com>
Co-authored-by: jspast <joao.pastorello@protonmail.com>
Co-authored-by: kuragehime <kuragehime641@gmail.com>
Co-authored-by: ngocanhtve <ngocanh.tve@gmail.com>
Co-authored-by: pjammo <adrianoghr@hotmail.it>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: trunars <trunars@gmail.com>
Co-authored-by: v1s7 <v1s7@users.noreply.hosted.weblate.org>
Co-authored-by: Åzze <laitinen.jere222@gmail.com>
Co-authored-by: Çağla Pickaxe <caglapickaxe@gmail.com>
Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ar/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/bg/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/bn/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/cs/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/el/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/es/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hi/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hr/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/id/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/it/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ja/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ka/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pa/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt_PT/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ru/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/si/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sk/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sr/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sv/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/tr/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/uk/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/vi/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant_HK/
Translation: NewPipe/Metadata
Instead of the `trackId`, which is only ever set for the `youtube`
backend, we use the audio stream language and tracktype. These are
`null` for youtube videos without language selector, leading to a
single audio stream being selected.
For media.ccc.de, the language on audio tracks is always set
correctly, meaning for a video with German and English tracks we get
two groups, which are then sorted according to the preferences of
users.
I verified that youtube still works by playing
https://www.youtube.com/watch?v=8bDRVP9xSfc
and selecting the different audio streams, going to background etc.
and also tried with a video without multiple audio tracks.
For media.ccc.de, it will select the right audio track as well.
Unfortunately, media.ccc.de returns videos with multiple audio track
muxed into the video itself, which is still buggy because the wrong
track is selected by default. This is gonna be fixed/worked around in
the next commit.
Instead of allowing to pass arbitrary out-of-bounds indexes to these
bean classes, ensure that the index is always valid for the list.
This is always true for our filter functions, except they all return
`-1` if the list was empty. We have to check/assert that beforehand.
This improves the logic somewhat, because fetching the stream always
returns something now.
Ideally, we wouldn’t be filtering stuff and then passing indices
around everywhere, but that’s the current state of things.
~~~
I took the liberty to remove the `.of`-wrappers, because they don’t
really add much compared to just calling the constructor here.
All functions that set videoIndex return `-1` if the list is empty, so
we don’t have to check manually for that case.
I’m somewhat more questioning why `StreamInfoTag.of` allows the index
to be out-of-bounds in the constructor, that should be an error.
Nowhere else does this (write a setting if it’s not set).
It took me a while to see that this code does not do what it intends,
because `defaultFormat` is already the default value in the first
`context.getString`, so calling `getMediaFormatFromKey` again is the
exact same call (“do you know the definition of insanity…”) and will
return `null` again …
So let’s drop the setting write and just rely on the default values.
I was trying to understand the logic here, and noticed the indirection
via a QualityResolver interfaces is pretty unnecessary. Just branching
directly makes the logic a lot easier to follow.
The `-999` sentinel value is a bit dumb, but java does not recognize
that videoIndex is always initialized.
Nice side-effect, the `Resolver` interface was completely unused and
can be dropped.
This change is in line with a recent change in how the play/pause button behaves in the player ui: if the buffering indicator is shown, it's still possible to toggle play/pause, to allow e.g. pausing videos before they even start.
This change was needed because on Android 13+ notification actions can't be null, and thus the buffering hourglass action wasn't shown.