Compare commits

...

1899 Commits

Author SHA1 Message Date
f546b65801 chore(deps): update dependency typescript-eslint to v8.51.0 2025-12-31 16:51:08 +00:00
41bc03a737 Revert "fix macos build (?)"
This reverts commit 2ab6eff761.
2025-12-30 22:23:14 +02:00
2ab6eff761 fix macos build (?) 2025-12-30 22:17:18 +02:00
6c881a265a fix tests 2025-12-30 22:02:23 +02:00
2b15f0a87c chore(i18n): Translated using Weblate (Persian)
Currently translated at 99.5% (461 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2025-12-30 10:00:31 +01:00
1d6ab2a82b update eslint config 2025-12-29 17:04:25 +02:00
24e82e69d1 chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2025-12-28 21:00:38 +00:00
b079d411de feat: apply new icon (#4215) 2025-12-29 01:39:53 +09:00
e04c8eb99f chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-12-26 12:00:20 +00:00
3a6b793948 chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2025-12-24 02:00:23 +01:00
f5361de78d chore(i18n): Translated using Weblate (Dutch)
Currently translated at 98.4% (456 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-12-24 02:00:21 +01:00
e0759afc70 chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-12-24 02:00:20 +01:00
700e4ba38e chore(i18n): Translated using Weblate (Croatian)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-12-22 19:00:35 +00:00
cc82b232ce chore(i18n): Translated using Weblate (Hindi)
Currently translated at 85.0% (394 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-12-22 19:00:34 +00:00
c1f422e325 chore(i18n): Translated using Weblate (Persian)
Currently translated at 98.2% (455 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2025-12-22 19:00:33 +00:00
ffaaba29d7 chore(i18n): Translated using Weblate (Tamil)
Currently translated at 98.2% (455 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ta/
2025-12-22 19:00:31 +00:00
9cad841efb chore(i18n): Translated using Weblate (Bosnian)
Currently translated at 27.8% (129 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bs/
2025-12-22 19:00:30 +00:00
324ab09b5d chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-12-22 19:00:28 +00:00
0b5e9e923b chore(i18n): Translated using Weblate (Serbian)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-12-22 19:00:27 +00:00
f2308e567d chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-12-22 19:00:26 +00:00
1466c6451b chore(i18n): Translated using Weblate (Swedish)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sv/
2025-12-22 19:00:23 +00:00
598c708e92 chore(i18n): Translated using Weblate (German)
Currently translated at 99.7% (462 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-12-22 19:00:22 +00:00
1f903b4f75 chore(i18n): Translated using Weblate (Russian)
Currently translated at 98.2% (455 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-12-22 19:00:20 +00:00
7951b17877 chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.7% (457 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2025-12-21 18:00:36 +00:00
2a39b7315b chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-12-21 18:00:35 +00:00
8b35a60997 chore: add svg version of icon 2025-12-20 21:58:50 +09:00
696ff0fc7a Improved compatibility 2025-12-20 21:57:47 +09:00
29736f480d fix(deps): update dependency semver to v7.7.3 (#4183)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:58:59 +09:00
f4251f3e1d fix(deps): update dependency happy-dom to v20.0.11 (#4182)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:50:59 +09:00
ae981396e5 fix(deps): update dependency @hono/zod-validator to v0.7.6 (#4178)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:50:39 +09:00
ca0b86bee7 fix(deps): update dependency color to v5.0.3 (#4179)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:49:30 +09:00
26ca1ec456 fix(deps): update dependency es-hangul to v2.3.8 (#4180)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:49:22 +09:00
017e4c2e4d chore(deps): update dependency vite-plugin-solid to v2.11.10 (#4174)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:49:01 +09:00
a89658e8c3 chore(deps): update dependency utf-8-validate to v6.0.6 (#4173)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:48:40 +09:00
99be7c2629 chore(deps): update dependency typescript to v5.9.3 (#4171)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:48:33 +09:00
200da8dfaa chore(deps): update dependency electron-vite to v4.0.1 (#4170)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:48:27 +09:00
9a218a6516 fix(deps): update dependency @hono/zod-openapi to v1.2.0 (#4177)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:48:20 +09:00
933ee0ef75 chore(i18n): Translated using Weblate (Georgian)
Currently translated at 32.8% (150 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ka/
2025-12-20 04:00:34 +00:00
8dd7bcdf97 chore(i18n): Translated using Weblate (Catalan)
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2025-12-20 04:00:33 +00:00
d5c7e0475b chore: extend startingPages with Mixed for you entry (#3994) 2025-12-19 16:50:07 +09:00
a5af233683 chore(deps): update dependency vite to v7.3.0 (#3869)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:38:40 +09:00
27e3796622 "feat(api-server): add /api/v1/queue/next endpoint (#4117)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-19 16:17:30 +09:00
5843e85c4d fix(deps): update dependency happy-dom to v20.0.2 [security] (#4168)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:14:13 +09:00
92a943c755 Fixes 2 sync and UI bugs in music-together plugin (#4071)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-19 16:13:56 +09:00
58a19cdaa2 feat(api-server): Add HTTPS support and custom certificate configuration (#3874) 2025-12-19 16:10:12 +09:00
b1d2112bfc fix(deps): update dependency zod to v4.2.1 (#3870)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:09:37 +09:00
d229bc7f00 fix(deps): update dependency @hono/node-server to v1.19.7 (#3862)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:09:31 +09:00
033a4d3122 chore(deps): update dependency ts-morph to v27.0.2 (#4167)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:09:24 +09:00
8d252b6375 chore(deps): update dependency discord-api-types to v0.38.37 (#3866)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:06:49 +09:00
9453c0ca8f chore(deps): update dependency @electron/universal to v3.0.2 (#4166)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:06:41 +09:00
ce073b30d9 fix(deps): update dependency happy-dom to v20 [security] (#4021)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:05:43 +09:00
8f63e5e3a3 chore(deps): update dependency playwright to v1.55.1 [security] (#4026)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:00:12 +09:00
23853b66c6 chore(deps-dev): bump glob from 11.0.3 to 11.1.0 (#4092)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-19 15:59:56 +09:00
62a322f10d fix(deps): update dependency virtua to v0.48.2 (#3871)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 15:59:47 +09:00
9627dd2202 chore(deps): update dependency electron to v38.7.2 (#3867)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 15:59:39 +09:00
3383926faa chore(deps): update dependency glob to v11.1.0 [security] (#4091)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 15:59:30 +09:00
8179664064 fix(deps): update dependency hono to v4.10.3 [security] (#3880)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 15:58:25 +09:00
1a5e417f4f chore(i18n): Translated using Weblate (Swedish)
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sv/
2025-12-19 02:00:21 +00:00
ceb6da9bc9 chore(i18n): Translated using Weblate (Quechua)
Currently translated at 1.5% (7 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/qu/
2025-12-19 02:00:20 +00:00
fdafb2dd07 chore(i18n): Translated using Weblate (Nepali)
Currently translated at 93.4% (427 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ne/
2025-12-19 02:00:19 +00:00
c3700e0e59 chore(i18n): Added translation using Weblate (Quechua) 2025-12-18 02:42:35 +01:00
3f1c26f82d chore(i18n): Translated using Weblate (German)
Currently translated at 99.5% (455 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-12-17 21:00:21 +01:00
bb7816815c chore(i18n): Translated using Weblate (Catalan)
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2025-12-17 21:00:19 +01:00
a1773fd992 chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2025-12-13 21:00:19 +00:00
1671bea942 chore(i18n): Added translation using Weblate (Kurdish (Northern)) 2025-12-11 15:44:04 +01:00
Adi
141ae03208 chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-12-09 14:02:30 +01:00
55c1012cda chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-12-09 14:02:30 +01:00
612c5c89c9 chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-12-09 14:02:29 +01:00
01bbf7e3f7 chore(i18n): Translated using Weblate (Slovak)
Currently translated at 88.4% (404 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-12-09 14:02:29 +01:00
6a7b7d88de chore(i18n): Translated using Weblate (Georgian)
Currently translated at 32.8% (150 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ka/
2025-12-09 14:02:29 +01:00
d06896450c chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-12-08 06:00:18 +01:00
4a59afc505 chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2025-12-08 06:00:18 +01:00
7b0d63b6cf chore(i18n): Translated using Weblate (Georgian)
Currently translated at 31.0% (142 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ka/
2025-12-06 19:00:19 +01:00
c734ffe70f chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-12-04 23:00:20 +01:00
3d0ad69ddb chore(i18n): Translated using Weblate (Albanian)
Currently translated at 5.0% (23 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sq/
2025-12-04 23:00:18 +01:00
6c4ae0dbfa chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2025-12-03 01:00:18 +01:00
f7aaa3377a chore(i18n): Translated using Weblate (Slovak)
Currently translated at 88.3% (403 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-12-01 22:00:36 +01:00
ab1a0478cf chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2025-12-01 22:00:35 +01:00
127f56905c fix(album-color-theme): improve theming consistency across UI elements (#4109)
Co-authored-by: 최민우 <chaeminu0711@gmail.com>
2025-12-01 16:25:14 +09:00
8d448c667f chore(i18n): Translated using Weblate (Urdu)
Currently translated at 25.0% (114 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ur/
2025-11-29 08:01:53 +01:00
e00f33eb2d chore(i18n): Translated using Weblate (Slovak)
Currently translated at 84.4% (385 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-11-29 08:01:52 +01:00
8100804ced chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 46.9% (214 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-11-28 06:02:01 +01:00
4fba3ffd92 fix(downloader): update youtubei.js and remove player_id (#4069) 2025-11-26 21:20:58 +02:00
bef8252314 chore(i18n): Translated using Weblate (Slovak)
Currently translated at 84.4% (385 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-11-22 23:51:18 +01:00
a96cc5aa8a chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-11-22 23:51:16 +01:00
b7e43e3125 chore(i18n): Translated using Weblate (Galician)
Currently translated at 23.2% (106 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/gl/
2025-11-21 21:51:18 +00:00
2d059eb353 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 86.6% (395 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-11-20 13:51:30 +01:00
bce0f8ad17 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 86.6% (395 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-11-20 13:51:22 +01:00
e04a084be9 chore(i18n): Translated using Weblate (Estonian)
Currently translated at 33.3% (152 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/et/
2025-11-20 13:51:21 +01:00
J
e94aa5c513 chore(i18n): Translated using Weblate (Estonian)
Currently translated at 33.3% (152 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/et/
2025-11-20 13:51:20 +01:00
fa2862ca9a chore(i18n): Translated using Weblate (Azerbaijani)
Currently translated at 16.4% (75 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/az/
2025-11-17 18:51:19 +01:00
e764c69f2b chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2025-11-15 14:51:17 +01:00
b5052d85ad chore(i18n): Translated using Weblate (Slovak)
Currently translated at 81.1% (370 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-11-08 09:51:16 +00:00
e4fa850871 chore(i18n): Translated using Weblate (Slovak)
Currently translated at 77.6% (354 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-11-06 14:51:55 +01:00
db4be4ae25 chore(i18n): Translated using Weblate (Slovak)
Currently translated at 77.6% (354 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-11-06 14:51:54 +01:00
55680531c5 chore(i18n): Translated using Weblate (Slovak)
Currently translated at 77.6% (354 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-11-06 14:51:19 +01:00
ae4557d32c chore(i18n): Translated using Weblate (Czech)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2025-11-06 14:51:14 +01:00
f5f65e73ca chore(i18n): Translated using Weblate (Slovak)
Currently translated at 25.2% (115 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-11-05 08:51:18 +01:00
e9f4958252 chore(i18n): Translated using Weblate (Slovak)
Currently translated at 25.0% (114 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-11-04 04:51:18 +01:00
00626bc37d chore(i18n): Translated using Weblate (Urdu)
Currently translated at 24.3% (111 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ur/
2025-11-04 04:51:13 +01:00
8e36d77245 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-11-02 20:51:14 +00:00
8f6d16ae89 chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2025-11-02 20:51:12 +00:00
2d1d0257ef chore(i18n): Added translation using Weblate (Belarusian) 2025-10-31 19:41:59 +01:00
7b2543847a chore(i18n): Translated using Weblate (Malay)
Currently translated at 70.3% (321 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-10-31 19:41:57 +01:00
00af45ddee chore(i18n): Translated using Weblate (Malay)
Currently translated at 70.3% (321 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-10-31 19:41:57 +01:00
786961c33b chore(i18n): Translated using Weblate (Estonian)
Currently translated at 25.2% (115 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/et/
2025-10-29 13:50:16 +01:00
8dc69cd9ac chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 96.0% (438 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2025-10-29 13:50:15 +01:00
d8e0bd903e chore(i18n): Translated using Weblate (Azerbaijani)
Currently translated at 16.0% (73 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/az/
2025-10-27 16:02:51 +00:00
4f31d47097 chore(i18n): Translated using Weblate (Georgian)
Currently translated at 20.1% (92 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ka/
2025-10-23 06:02:44 +00:00
cdb1ccec76 chore(i18n): Translated using Weblate (Persian)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2025-10-21 21:04:16 +00:00
4998fa1e28 Merge pull request #4019 from BigicecreamTaken/update-electron-version 2025-10-19 00:49:43 +03:00
f912598416 chore(deps): Update Electron to version 38.2.0 2025-10-18 11:33:47 +03:00
1f063c41d4 chore(i18n): Translated using Weblate (Croatian)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-10-16 17:07:27 +00:00
7b4a4b81ae chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 95.8% (437 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2025-10-16 17:07:26 +00:00
b7750ad50e chore(i18n): Translated using Weblate (Arabic)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2025-10-15 15:02:48 +02:00
886f2ae3b2 chore(i18n): Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/
2025-10-14 09:08:02 +02:00
4c2d3253e7 chore(i18n): Translated using Weblate (Tamil)
Currently translated at 99.7% (455 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ta/
2025-10-14 09:07:55 +02:00
c03d3af289 chore(i18n): Translated using Weblate (Russian)
Currently translated at 99.7% (455 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-10-14 09:07:53 +02:00
b006466eab chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2025-10-14 09:07:53 +02:00
39a859703d chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2025-10-14 09:07:52 +02:00
d1e9f5272f chore(i18n): Translated using Weblate (Korean)
Currently translated at 99.3% (453 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2025-10-14 09:07:51 +02:00
2c16e68799 chore(i18n): Translated using Weblate (Japanese)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2025-10-14 09:07:50 +02:00
d7381f1847 chore(i18n): Translated using Weblate (Japanese)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2025-10-14 09:07:50 +02:00
97cee6ca54 chore(i18n): Translated using Weblate (German)
Currently translated at 99.7% (455 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-10-14 09:07:49 +02:00
b2c339a879 Update lv.json 2025-10-14 00:06:13 +03:00
7192ad74bc fix conflict 2 2025-10-13 15:07:49 +09:00
022125755b fix conflict 2025-10-13 15:02:44 +09:00
b40851e92a chore(i18n): Translated using Weblate (Latvian)
Currently translated at 66.8% (305 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lv/
2025-10-13 05:07:26 +00:00
1590f2e309 chore(i18n): Translated using Weblate (Malay)
Currently translated at 68.8% (314 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-10-13 05:07:24 +00:00
b8e0d53ef3 chore: improve readability 2 2025-10-12 14:34:36 +09:00
ffa61687bf chore: improve readability 2025-10-12 14:28:29 +09:00
4f716d8e0b feat(workflows): skip pr workflows on draft prs 2025-10-12 03:51:17 +03:00
9932316be1 remove typing for mdui icons 2025-10-12 03:17:42 +03:00
86a4a1b41e proper support for tree-shakeable Lit components 2025-10-12 03:16:35 +03:00
c6c71bea9f chore(i18n): Translated using Weblate (Malayalam)
Currently translated at 11.6% (53 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ml/
2025-10-11 23:07:34 +02:00
cbc6449621 fix preload 2025-10-11 18:18:36 +03:00
9b8daac28c Add Material UI 3 component library (#3606)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-10-11 00:11:38 +03:00
cbc0077690 chore(i18n): Translated using Weblate (Malay)
Currently translated at 62.7% (286 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-10-10 10:07:41 +00:00
c43d636549 chore(i18n): Translated using Weblate (Lithuanian)
Currently translated at 79.1% (361 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lt/
2025-10-10 10:07:40 +00:00
af1513a0b5 chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 94.9% (433 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2025-10-10 10:07:39 +00:00
3a7d3ff73d Merge pull request #3973 from pear-devs/downloader-fix 2025-10-10 12:41:34 +03:00
f22b887a3f Merge pull request #3883 from dima-dencep/master 2025-10-10 12:37:31 +03:00
5d0116ff2e remove asset 2025-10-10 16:53:51 +09:00
98a8244f5f chore: Update README for package names and links 2025-10-10 16:50:22 +09:00
798bfc0708 Update README for Pear Desktop installation and usage 2025-10-09 19:25:59 +09:00
91b2c5a41a remove landing-pages 2025-10-09 15:22:25 +09:00
c28d2a950f chore(docs): Update README for Pear Desktop project 2025-10-09 15:20:34 +09:00
50aae3e3d4 chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2025-10-08 16:07:26 +00:00
ce410aaa51 chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-10-08 16:07:25 +00:00
82f7e02d5b chore(i18n): Translated using Weblate (Filipino)
Currently translated at 91.8% (419 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fil/
2025-10-06 20:20:45 +02:00
33017eda63 Merge pull request #3982 from ytmd-devs/copilot/fix-ea870049-5d1f-406a-84f3-54e3b62e2df6
Fix workflow skipping build jobs due to incorrect output reference
2025-10-05 10:10:59 -07:00
779006d0cd Fix pr-build-artifacts workflow to use correct output name
Co-authored-by: ArjixWasTaken <53124886+ArjixWasTaken@users.noreply.github.com>
2025-10-05 17:09:33 +00:00
a0c0e3a21f Initial plan 2025-10-05 17:05:49 +00:00
b6a622a151 chore(i18n): Translated using Weblate (Dutch)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-10-05 19:02:12 +02:00
ac59883b5c chore(i18n): Translated using Weblate (Dutch)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-10-05 19:02:11 +02:00
c5b6d24f10 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-10-05 19:02:11 +02:00
6fd97d8b88 Add automated build workflow for pull requests from repository members (#3981)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ArjixWasTaken <53124886+ArjixWasTaken@users.noreply.github.com>
2025-10-05 19:56:19 +03:00
18692b0283 chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 95.8% (437 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2025-10-04 14:02:01 +00:00
f81dd1f910 chore(i18n): Translated using Weblate (Romanian)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ro/
2025-10-03 09:02:01 +02:00
1452c4ae8a chore(i18n): Translated using Weblate (Tamil)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ta/
2025-10-02 04:02:08 +00:00
504c73df73 chore(i18n): Translated using Weblate (Dutch)
Currently translated at 99.3% (453 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-10-02 04:02:06 +00:00
0c16467a8b chore(i18n): Translated using Weblate (Dutch)
Currently translated at 99.3% (453 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-10-02 04:02:05 +00:00
26539544ab chore(i18n): Translated using Weblate (Dutch)
Currently translated at 99.3% (453 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-10-02 04:02:03 +00:00
9f84e2771c chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-10-02 04:02:01 +00:00
a2be98588b chore(i18n): Translated using Weblate (Slovak)
Currently translated at 23.4% (107 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-09-28 20:02:22 +00:00
b445ef8aeb chore(i18n): Translated using Weblate (Tamil)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ta/
2025-09-28 20:02:21 +00:00
a49ee4fd11 chore(i18n): Translated using Weblate (Malay)
Currently translated at 59.6% (272 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-09-28 20:02:20 +00:00
c8c380841f chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 94.5% (431 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2025-09-28 20:02:19 +00:00
6fa89db2f3 chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 94.5% (431 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2025-09-28 20:02:18 +00:00
c4ef6efddd chore(i18n): Translated using Weblate (Indonesian)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/id/
2025-09-28 20:02:17 +00:00
55a6e815af chore(i18n): Translated using Weblate (Japanese)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2025-09-28 20:02:16 +00:00
8238262afe Clarify application description in README 2025-09-28 22:07:05 +09:00
a81aa4b7c9 Update README with disclaimer and liability section
Added disclaimers regarding affiliation and liability.
2025-09-28 22:06:23 +09:00
56c903d5df add disclaimer 2025-09-28 22:04:28 +09:00
b0931c8924 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 85.0% (388 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-09-27 18:02:02 +00:00
5142b673c1 chore(i18n): Translated using Weblate (Slovak)
Currently translated at 18.8% (86 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-09-25 20:02:06 +00:00
36eaeef45f chore(i18n): Translated using Weblate (Malay)
Currently translated at 48.9% (223 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-09-25 20:02:04 +00:00
da2f3e5102 chore(i18n): Translated using Weblate (Indonesian)
Currently translated at 99.7% (455 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/id/
2025-09-25 20:02:03 +00:00
7ceb160e96 chore(i18n): Translated using Weblate (Czech)
Currently translated at 99.7% (455 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2025-09-25 20:02:00 +00:00
a563084055 chore(i18n): Added translation using Weblate (Slovak) 2025-09-24 19:56:33 +00:00
ced531133a chore(i18n): Translated using Weblate (Czech)
Currently translated at 99.3% (453 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2025-09-24 19:56:32 +00:00
345c2e59fd remove assets from docs 2025-09-24 22:01:07 +09:00
b3e0fd5588 chore(i18n): Translated using Weblate (Malay)
Currently translated at 39.4% (180 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-09-24 11:02:02 +00:00
7f35738667 chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2025-09-24 11:02:01 +00:00
1fa827df89 chore(i18n): Translated using Weblate (Catalan)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2025-09-23 00:02:02 +02:00
78ba710b3f chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 91.0% (415 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2025-09-23 00:02:00 +02:00
bcb61a922e chore(i18n): Translated using Weblate (Arabic)
Currently translated at 95.8% (437 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2025-09-21 10:02:03 +02:00
c046a76972 chore(i18n): Translated using Weblate (Arabic)
Currently translated at 95.8% (437 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2025-09-21 10:02:02 +02:00
ed25d11b23 chore(i18n): Translated using Weblate (French)
Currently translated at 99.7% (455 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-09-20 04:02:00 +02:00
8de5599240 chore(i18n): Translated using Weblate (Danish)
Currently translated at 32.0% (146 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/da/
2025-09-19 00:02:01 +02:00
ce7fcc5d01 chore(i18n): Translated using Weblate (Bulgarian)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bg/
2025-09-19 00:02:00 +02:00
30ed2b5c75 remove bypass-age-restrictions 2025-09-18 07:33:54 +09:00
12d4241668 chore(docs): update README 2025-09-18 07:31:26 +09:00
0eb65f082c chore(docs): update README 2025-09-18 07:29:59 +09:00
25fccc9a62 remove assets 2025-09-18 07:25:23 +09:00
414a560205 Delete assets/youtube-music.svg 2025-09-18 07:23:24 +09:00
7c1b8ed0a4 Delete assets/youtube-music.png 2025-09-18 07:23:12 +09:00
8084a175cf REMOVE image 2025-09-17 17:56:36 +09:00
f5175a6be7 REMOVE adblocker AND no-google-login, and renaming 2025-09-17 17:48:12 +09:00
c9ae7cb277 chore(i18n): Translated using Weblate (Italian)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2025-09-15 14:01:59 +00:00
e455932754 chore(i18n): Translated using Weblate (Catalan)
Currently translated at 98.2% (448 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2025-09-14 12:02:01 +02:00
a1e3bf23be chore(i18n): Translated using Weblate (Catalan)
Currently translated at 98.2% (448 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2025-09-14 12:02:00 +02:00
8ccd510700 chore(i18n): Translated using Weblate (Italian)
Currently translated at 98.9% (451 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2025-09-14 12:01:59 +02:00
127760d509 Update plugins.ts 2025-09-13 19:26:03 +07:00
Bai
c0a495640f chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2025-09-13 07:52:22 +02:00
6060e138ee chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-09-13 07:52:22 +02:00
98b2e182fb chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-09-13 07:52:22 +02:00
715ddb8923 chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-09-12 12:01:59 +02:00
3104111f6b chore(i18n): Translated using Weblate (Thai)
Currently translated at 99.7% (455 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/th/
2025-09-11 09:02:10 +00:00
e064c37859 chore(i18n): Translated using Weblate (Russian)
Currently translated at 99.7% (455 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-09-11 09:02:08 +00:00
1de223b4ca chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-09-11 09:02:06 +00:00
50a1365a6f chore(i18n): Translated using Weblate (Czech)
Currently translated at 91.4% (417 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2025-09-11 09:02:04 +00:00
cc83804491 chore(i18n): Translated using Weblate (Filipino)
Currently translated at 83.9% (383 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fil/
2025-09-09 19:02:05 +00:00
92cf306439 chore(i18n): Translated using Weblate (Swedish)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sv/
2025-09-09 19:02:04 +00:00
a8be510a07 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-09-09 19:02:03 +00:00
58524fb3c1 chore(i18n): Translated using Weblate (Indonesian)
Currently translated at 96.7% (441 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/id/
2025-09-09 19:02:02 +00:00
aeb6997117 chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-09-09 19:02:01 +00:00
0116188623 fix: maybe fix #3613 2025-09-09 23:43:42 +09:00
af63edb058 fix: update pnpm-lock.yml 2025-09-09 22:42:42 +09:00
bd0ac52832 Revert "fix(deps): update dependency color to v5.0.1 (#3846)" (#3855) 2025-09-09 22:35:32 +09:00
5b537d2a9e fix(deps): update dependency virtua to v0.42.3 (#3847)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-09 22:08:10 +09:00
d9a7c352d3 chore(deps): update dependency typescript-eslint to v8.43.0 (#3848)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-09 22:07:58 +09:00
84add37441 fix(deps): update dependency color to v5.0.1 (#3846)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-09 08:34:11 +09:00
9a88f11f16 chore(deps): update dependency vite to v7.1.8 (#3844)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-09 08:33:47 +09:00
51b4441e5c chore(deps): update dependency ts-morph to v27 (#3841)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-09 08:31:35 +09:00
29784e6a39 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-09-08 18:19:17 +02:00
e2981c22fa chore(i18n): Translated using Weblate (Malayalam)
Currently translated at 11.6% (53 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ml/
2025-09-08 14:02:08 +00:00
d7513dcc20 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-09-08 14:02:07 +00:00
5c0face2c9 chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2025-09-08 14:02:04 +00:00
a1805f7662 chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2025-09-08 14:02:03 +00:00
46889098e8 chore(i18n): Translated using Weblate (Dutch)
Currently translated at 95.1% (434 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-09-08 14:02:02 +00:00
607938c170 chore(i18n): Translated using Weblate (Indonesian)
Currently translated at 96.2% (439 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/id/
2025-09-08 14:02:00 +00:00
58a03db898 chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2025-09-08 14:01:59 +00:00
67ef3408dc chore(i18n): Translated using Weblate (Italian)
Currently translated at 98.0% (447 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2025-09-08 14:01:57 +00:00
27f16e26b3 chore(i18n): Translated using Weblate (French)
Currently translated at 99.7% (455 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-09-08 14:01:56 +00:00
e38200bc1f chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-09-08 14:01:54 +00:00
736e63d259 Update changelog for v3.11.0 2025-09-07 09:01:30 +00:00
721271d902 fix: Update changelog script in package.json 2025-09-07 15:38:35 +09:00
a2151930ec Bump version to 3.11.0 2025-09-07 15:18:33 +09:00
bdc9f42681 fix: change deprecated option rollupOptions to rolldownOptions 2025-09-07 15:18:02 +09:00
0b3c6f9e1f chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (456 of 456 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2025-09-07 08:16:14 +02:00
ebe373bdc6 chore(package.json): add NODE_ENV 2025-09-07 13:45:40 +09:00
ab91e6d735 Fixed missing videochange dataupdated event when using shuffle (#3659)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: rewhex <gitea@cluser.local>
2025-09-07 13:43:48 +09:00
be3ae4d789 feat(synced-lyrics): preferred provider (global/per-song) (#3741)
Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-09-07 13:35:29 +09:00
336b7fe5e9 fix(api-server): use ipc instead of ipcMain 2025-09-07 12:47:08 +09:00
5ecd39f324 feat(api-server): send shuffle state over websocket (#3837) 2025-09-07 04:29:38 +09:00
eb50596961 feat(synced-lyrics): add new "spacer" (#3742)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-07 04:26:03 +09:00
aede0cd643 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (452 of 452 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-09-06 17:20:17 +02:00
25f51784c3 chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (452 of 452 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2025-09-06 17:20:17 +02:00
7acac6d11c chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (452 of 452 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2025-09-06 17:20:16 +02:00
1972ef70b5 chore(i18n): Translated using Weblate (Russian)
Currently translated at 99.7% (451 of 452 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-09-06 17:20:16 +02:00
c4455ed3d2 chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (452 of 452 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2025-09-06 17:20:16 +02:00
c1a06ab955 feat: remove unnecessary export default for better tree-shaking 2025-09-06 22:31:02 +09:00
26fa1f85b2 fix(discord-rpc, scrobbler): Align artist and title with the last.fm's de facto standard
- Display only the main artist.
- Display the title in its original language without romanization.

- fix #3358
- fix #3641
2025-09-06 10:25:54 +09:00
555817e2f5 feat(downloader): Add context menu button for playlists and albums (#3768)
Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-09-06 09:12:24 +09:00
f8654dfdb9 fix(i18n): fix missing i18n 2025-09-06 09:08:17 +09:00
96c0fc412c chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (442 of 442 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2025-09-06 00:00:58 +00:00
a70a4106df chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (442 of 442 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-09-06 00:00:57 +00:00
895210cbb6 feat(transparent-player): new plugin for Acrylic, Mica or Tabbed effects (#3529)
Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-09-06 09:00:39 +09:00
789a30312b fix(reviewdog): checkout PR HEAD 2025-09-06 06:38:36 +09:00
623d97b1e2 fix(reviewdog): run eslint for changed files 2025-09-06 06:28:52 +09:00
4ed97f0145 fix: action should catch errors 2025-09-06 06:22:19 +09:00
77a2bbf02a fix(action): fix permission 2025-09-06 06:09:03 +09:00
7a9a1531d4 fix(action): fix auth 2025-09-06 05:35:59 +09:00
16b59698d6 fix(action): fix node version 2025-09-06 05:30:58 +09:00
a85a2e0c58 fix(action): fix install deps 2025-09-06 05:27:38 +09:00
97f1a20a4f fix(actions): fix mistake 2025-09-06 05:19:21 +09:00
8dbe151ddd fix(audio-compressor): real-time behavior and duplicated audio bug (#3786)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-06 05:15:47 +09:00
87144e03c2 fix(actions): fix node / pnpm version 2025-09-06 05:13:51 +09:00
2046b253e3 fix: Added Min height and width to the window which doesnt breaks the UI responsiveness (#3602) 2025-09-06 05:04:16 +09:00
c068e11fc5 feat(actions): add reviewdog 2025-09-06 04:54:53 +09:00
10384b6c4c chore(eslint): added new eslint rule (for jsx) 2025-09-06 04:51:31 +09:00
4d83bd587d chore(deps): update dependency discord-api-types to v0.38.23 (#3833)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-06 02:55:56 +09:00
aae523989b feat(plugin): Custom output device plugin (#3789)
Co-authored-by: Angelos Bouklis <me@arjix.dev>
Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-09-06 02:54:07 +09:00
afacec973b chore(deps): update dependency @babel/runtime to v7.28.4 (#3831)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-06 01:20:54 +09:00
75fb51e290 chore(deps): update eslint monorepo to v9.35.0 (#3829)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-06 01:18:02 +09:00
cb85048af4 feat(api-server): Add websocket as /api/v1/ws route (#3707)
Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-09-06 01:17:32 +09:00
8b10872e83 feat(api-server): Improved api-server volume and like/dislike state (#3592)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: rewhex <gitea@cluser.local>
Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-09-05 23:59:39 +09:00
96ea114335 fix: pnpm-lock.yaml 2025-09-05 23:02:15 +09:00
7c1c3ef28d Merge remote-tracking branch 'origin/master' 2025-09-05 22:45:43 +09:00
7a7ad4261c fix(deps): update dependency i18next to v25.5.2 (#3826)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 22:45:33 +09:00
c0dbc204a0 fix(deps): update dependency virtua to v0.42.2 (#3827)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 22:45:19 +09:00
68e63f809c fix: apply fix from eslint 2025-09-05 22:43:34 +09:00
4b188ec205 chore(i18n): Translated using Weblate (Thai)
Currently translated at 100.0% (437 of 437 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/th/
2025-09-05 15:07:03 +02:00
23013cddb9 fix(exponential-volume): volume desync bug (#3787)
Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-09-05 20:53:07 +09:00
588b84ecd0 feat(synced-lyrics): thai romanization (#3618)
Co-authored-by: Angelos Bouklis <me@arjix.dev>
Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-09-05 16:30:39 +09:00
fd68c204f6 chore(i18n): Translated using Weblate (Swedish)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sv/
2025-09-05 06:58:38 +00:00
313bb6e43f chore(i18n): Translated using Weblate (Swedish)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sv/
2025-09-05 06:58:37 +00:00
0a6f244035 chore(i18n): Translated using Weblate (Swedish)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sv/
2025-09-05 06:58:36 +00:00
8e4e2c42f6 feat(discord): add option to display artist/title in status (#3692)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-09-05 15:58:26 +09:00
f31053cf3c chore(deps): update playwright monorepo to v1.55.0 (#3819)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 15:43:02 +09:00
d5758790c0 fix(deps): update dependency i18next to v25.5.1 (#3820)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 15:42:52 +09:00
bbd243a534 fix(deps): update dependency virtua to v0.42.0 (#3821)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 15:42:41 +09:00
2fc0d6f3b0 fix(deps): update dependency zod to v4.1.5 (#3822)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 15:42:31 +09:00
6b15018a9b chore(deps): update eslint monorepo to v9.34.0 (#3818)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 15:42:24 +09:00
acc977db7c chore(deps): update actions/setup-node action to v5 (#3823)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 15:42:03 +09:00
270100a14c chore(deps): update dependency electron to v38 (#3824)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 15:41:43 +09:00
094e6fa2d6 chore(deps): update dependency @stylistic/eslint-plugin to v5.3.1 (#3817)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 15:40:46 +09:00
9f81f7001c fix(deps): update dependency serve to v14.2.5 (#3816)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 15:40:21 +09:00
lew
e6c78dd5e0 feat(discord): add song & artist URLs to rich presence (#3737)
Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-09-05 15:32:31 +09:00
b64e1394ae fix: fix #3621 (#3774) 2025-09-05 15:32:15 +09:00
dcc611c7d0 feat(refactor): PluginDefinition::platform (#3665) 2025-09-05 15:28:17 +09:00
d329076b52 chore(docs): update copyright footer year (#3792) 2025-09-05 15:10:28 +09:00
1435559a56 chore(deps): update dependency vite-plugin-inspect to v11.3.3 (#3814)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 15:08:36 +09:00
1feeeedf10 fix(deps): update dependency @floating-ui/dom to v1.7.4 (#3815)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 15:07:50 +09:00
443d716e45 fix(deps): update dependency @ghostery/adblocker-electron to v2.11.6 (#3770)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 15:01:46 +09:00
3d65a96e38 chore(deps): update dependency discord-api-types to v0.38.22 (#3813)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 15:01:37 +09:00
e20f3fe24c chore(deps): update dependency @types/semver to v7.7.1 (#3812)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 15:01:30 +09:00
5d3afb52d8 fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.11.6 (#3771)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 14:59:44 +09:00
5e0341c8d5 fix(deps): update dependency @hono/node-server to v1.19.1 (#3759)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 14:58:08 +09:00
b84a8c512a chore(deps): update dependency typescript-eslint to v8.42.0 (#3761)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 14:57:52 +09:00
cd0f4bbc1d chore(deps): update dependency node-gyp to v11.4.2 (#3772)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 14:57:38 +09:00
e37367c5e5 chore(deps): update actions/checkout action to v5 (#3757)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 14:55:52 +09:00
8a765be912 chore(deps): update dependency vite to v7.1.5 (#3760)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 14:54:47 +09:00
a213dae14d fix(deps): update dependency hono to v4.9.6 [security] (#3807)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 14:50:33 +09:00
40c429f3c1 chore(deps): update dependency electron to v37.3.1 [security] (#3806)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-05 14:50:13 +09:00
3125520e68 chore(deps): bump hono from 4.9.2 to 4.9.6 (#3805)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-05 14:49:48 +09:00
1c57fec016 chore(i18n): Translated using Weblate (Swedish)
Currently translated at 37.6% (163 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sv/
2025-09-04 20:01:57 +02:00
2708b4fffc chore(i18n): Translated using Weblate (Greek)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/el/
2025-09-02 19:22:57 +02:00
f1d264a6c7 chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-09-01 21:13:45 +02:00
c478e74771 chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-09-01 21:13:45 +02:00
6cf9f813a0 chore(i18n): Translated using Weblate (Bosnian)
Currently translated at 22.1% (96 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bs/
2025-08-30 23:01:51 +02:00
dddfa581ed chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-08-29 17:41:00 +02:00
94b789aa78 chore(i18n): Translated using Weblate (Albanian)
Currently translated at 0.4% (2 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sq/
2025-08-25 16:02:12 +00:00
d6d731260b chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2025-08-25 16:02:11 +00:00
440864e605 chore(i18n): Added translation using Weblate (Albanian) 2025-08-24 17:34:48 +02:00
4506ae4079 chore(i18n): Translated using Weblate (Galician)
Currently translated at 5.5% (24 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/gl/
2025-08-24 17:34:47 +02:00
c2538e280a chore(i18n): Translated using Weblate (Finnish)
Currently translated at 84.5% (366 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fi/
2025-08-24 17:34:47 +02:00
ef7da94201 chore(i18n): Translated using Weblate (Catalan)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2025-08-21 17:02:09 +00:00
68a754f438 chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2025-08-19 22:02:19 +02:00
2a81a4e887 chore: remove unused deps 2025-08-17 23:46:06 +09:00
40d64fb04f fix: fix bundling error 2025-08-17 23:16:37 +09:00
c6bc65b3d3 chore(deps): update playwright monorepo to v1.54.2 (#3713)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-17 22:52:01 +09:00
db02e009cd chore(deps): update dependency vite to v7.1.2 (#3710)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-17 22:50:12 +09:00
b0b6ebe036 chore(deps): update dependency @stylistic/eslint-plugin to v5.2.3 (#3754)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-17 22:48:25 +09:00
be698cc0fb chore(deps): update dependency @babel/runtime to v7.28.3 (#3753)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-17 22:48:13 +09:00
06b35acf65 chore(deps): update dependency discord-api-types to v0.38.20 (#3706)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-17 22:48:02 +09:00
557932f7bb fix(deps): update dependency @floating-ui/dom to v1.7.3 (#3714)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-17 22:46:55 +09:00
d48f328881 chore(deps): update dependency vite-plugin-solid to v2.11.8 (#3711)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-17 22:46:10 +09:00
4e7f40c86a chore(deps): update dependency rollup to v4.46.2 (#3709)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-17 22:45:52 +09:00
614c774e71 chore(deps): update dependency @electron/universal to v3.0.1 (#3705)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-17 22:45:31 +09:00
3fa4ab54b6 chore(deps): update dependency electron to v37.3.0 (#3708)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-17 22:44:23 +09:00
de8136dbe4 chore(docs): Grammar mistakes (#3722) 2025-08-17 22:39:45 +09:00
4051aec6e3 chore(i18n): Translated using Weblate (Romanian)
Currently translated at 99.7% (432 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ro/
2025-08-17 13:02:10 +00:00
aa0496c548 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 88.9% (385 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-08-15 14:02:11 +00:00
a953b5995c chore(i18n): Translated using Weblate (Czech)
Currently translated at 96.0% (416 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2025-08-14 15:02:03 +02:00
ff2d889329 chore(i18n): Translated using Weblate (Czech)
Currently translated at 96.0% (416 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2025-08-14 15:02:01 +02:00
f3b1adbd32 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 88.4% (383 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-08-13 05:02:13 +02:00
247443630a chore(i18n): Translated using Weblate (Dutch)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-08-13 05:02:11 +02:00
6eb54afda4 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-08-09 03:01:54 +00:00
83ecc499e3 chore(i18n): Translated using Weblate (Japanese)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2025-08-09 03:01:53 +00:00
418a6ce8e4 chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-08-09 03:01:52 +00:00
4f19f73d4d chore(i18n): Translated using Weblate (Bengali)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bn/
2025-08-07 15:02:01 +00:00
31d109e00f chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-08-07 15:01:58 +00:00
fd3f79e976 chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-08-06 13:01:57 +00:00
c748e606b1 chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-08-04 19:02:01 +00:00
40299b38c5 chore(i18n): Translated using Weblate (Tamil)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ta/
2025-08-03 09:02:30 +00:00
62b40d4df5 fix: typed networkManager.fetch 2025-08-02 16:49:15 +09:00
5e4a1253d4 chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-08-01 00:02:22 +02:00
702792b659 chore(i18n): Translated using Weblate (Azerbaijani)
Currently translated at 13.6% (59 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/az/
2025-07-30 20:06:32 +02:00
e83f83fa9b chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-07-30 20:06:32 +02:00
3de54340f3 chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2025-07-30 20:06:32 +02:00
ffbc3bd1c2 chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-07-30 20:06:31 +02:00
c513959461 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-29 17:15:56 +02:00
66e414dd64 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 86.6% (375 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-07-29 17:15:55 +02:00
454d2a1d4e chore(i18n): Translated using Weblate (Lithuanian)
Currently translated at 76.4% (331 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lt/
2025-07-29 17:15:54 +02:00
ca3372d7f5 chore(i18n): Translated using Weblate (Thai)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/th/
2025-07-29 17:15:53 +02:00
5bcbab1fac chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2025-07-29 17:15:52 +02:00
47656c08fd chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (433 of 433 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2025-07-29 17:15:51 +02:00
6374ff4a41 fix: fix #3661 2025-07-28 23:55:55 +09:00
86e7c84e43 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-07-28 16:32:22 +02:00
d554fa34b2 chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-07-28 16:32:21 +02:00
1bec276c8b fix: fix #3613, fix #3651 2025-07-28 23:29:46 +09:00
17153eacf0 Fixes the error 500 for /auth/ endpoint (#3627)
Co-authored-by: rewhex <gitea@cluser.local>
2025-07-28 23:19:22 +09:00
20d25ca953 feat: add custom window title option (#3656) 2025-07-28 23:16:47 +09:00
b3b3d45b96 fix(downloader): fix for getBasicInfo 2025-07-28 23:09:25 +09:00
5ba65ea122 fix: bump dependencies 2025-07-28 23:02:17 +09:00
0108e3f603 fix: rollback electron version to v37 2025-07-28 22:53:15 +09:00
8d23b13f70 fix(deps): update dependency zod to v4.0.10 (#3686)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-28 22:40:12 +09:00
a8f9505255 chore(deps): update dependency @babel/runtime to v7.28.2 (#3687)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-28 22:39:56 +09:00
cd0509eb06 chore(deps): update dependency rollup to v4.46.1 (#3632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-28 22:39:42 +09:00
23504408ec chore(deps): update dependency electron to v38.0.0-alpha.10 (#3681)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-28 22:37:39 +09:00
AZE
ba8282881d chore(i18n): Translated using Weblate (Azerbaijani)
Currently translated at 10.0% (43 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/az/
2025-07-28 07:03:06 +02:00
ad1ac79fdb chore(i18n): Translated using Weblate (Bengali)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bn/
2025-07-28 07:03:04 +02:00
54736256a4 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-07-28 07:02:56 +02:00
0d77ac096d chore(i18n): Translated using Weblate (English)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/en/
2025-07-28 07:02:44 +02:00
6a2b27bfcb chore(i18n): Translated using Weblate (Greek)
Currently translated at 98.3% (423 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/el/
2025-07-26 21:08:10 +00:00
2a0aeac89b chore(deps): update dependency eslint-config-prettier to v10.1.8 (#3676)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 23:35:26 +09:00
5dc11e2bdc chore(deps): update dependency eslint-plugin-prettier to v5.5.3 (#3678)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 23:15:44 +09:00
fba48dcd55 fix(deps): update dependency @ghostery/adblocker-electron to v2.11.3 (#3679)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 23:12:57 +09:00
832c3103c7 chore(deps): update dependency discord-api-types to v0.38.17 (#3620)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 23:04:24 +09:00
49d9bf9859 chore(deps): update dependency esbuild to v0.25.8 (#3675)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 23:04:13 +09:00
ef5d0c1222 chore(deps): update dependency @stylistic/eslint-plugin to v5.2.2 (#3636)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 23:03:41 +09:00
1cb666d7dd fix(deps): update dependency @hono/node-server to v1.17.1 (#3625)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 23:02:29 +09:00
45ca896bef chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-07-25 14:48:21 +02:00
624d5102a5 fix(deps): update dependency hono to v4.8.7 (#3567)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 18:03:03 +09:00
2e9e5cc51f chore(deps): update dependency typescript-eslint to v8.38.0 (#3628)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 18:00:31 +09:00
c5f755bfcf chore(deps): update dependency electron to v38.0.0-alpha.9 (#3626)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 18:00:24 +09:00
0d1cadd650 fix(Skip Disliked Song): updated querySelector (#3667)
Co-authored-by: Joel Carlos <joel.carlos@merkle.com>
2025-07-25 18:00:13 +09:00
4cc7ffe74d chore(deps): update dependency vite to v7.0.11 (#3624)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-25 17:59:39 +09:00
7f59ca18b0 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-07-25 08:03:56 +02:00
f87030ff55 chore(i18n): Translated using Weblate (Latvian)
Currently translated at 54.8% (236 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lv/
2025-07-23 14:02:56 +02:00
2406baa5a5 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-07-23 14:02:55 +02:00
d7bf973547 chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2025-07-21 23:03:00 +02:00
0d199b82ec chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2025-07-21 23:02:59 +02:00
7d7562d147 chore(i18n): Translated using Weblate (Czech)
Currently translated at 87.9% (378 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2025-07-21 23:02:58 +02:00
9d43fb2bb3 chore(i18n): Translated using Weblate (Nepali)
Currently translated at 99.7% (429 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ne/
2025-07-20 09:02:39 +02:00
010da7536d chore(i18n): Translated using Weblate (Romanian)
Currently translated at 99.7% (429 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ro/
2025-07-20 09:02:38 +02:00
3473f05823 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 86.9% (374 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-07-18 13:03:13 +02:00
f72664957d chore(i18n): Translated using Weblate (Hindi)
Currently translated at 86.9% (374 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-07-18 13:03:12 +02:00
a127c2e5e2 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-07-18 13:03:10 +02:00
952da4ddf6 chore(i18n): Translated using Weblate (Indonesian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/id/
2025-07-18 13:03:09 +02:00
bf84477609 chore(i18n): Translated using Weblate (Italian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2025-07-18 13:03:07 +02:00
e274a1b4c4 chore(i18n): Translated using Weblate (Italian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2025-07-18 13:03:06 +02:00
e6150a5b53 chore(i18n): Translated using Weblate (Italian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2025-07-18 13:03:04 +02:00
dfd881186a chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-07-17 10:02:30 +00:00
762b66dbcd chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-07-17 10:02:29 +00:00
f1acfbf48f chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-07-17 10:02:29 +00:00
046faecf11 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-07-17 10:02:28 +00:00
c3612d2ca7 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-07-17 10:02:27 +00:00
3da344fcad chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-07-17 10:02:26 +00:00
2b5380e67e chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-07-17 10:02:26 +00:00
e3c7e4f524 chore(i18n): Translated using Weblate (Lithuanian)
Currently translated at 75.8% (326 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lt/
2025-07-17 10:02:25 +00:00
3604e46661 chore(i18n): Translated using Weblate (Thai)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/th/
2025-07-15 19:01:50 +02:00
8cea079f26 chore(i18n): Translated using Weblate (Japanese)
Currently translated at 99.5% (428 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2025-07-15 19:01:49 +02:00
83b68001cb chore(i18n): Translated using Weblate (Bosnian)
Currently translated at 20.2% (87 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bs/
2025-07-14 13:47:47 +02:00
7a11a47f91 chore(i18n): Translated using Weblate (Bosnian)
Currently translated at 20.2% (87 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bs/
2025-07-14 13:47:47 +02:00
2a9a00bd86 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-14 13:47:47 +02:00
cfcbf37f98 chore(i18n): Translated using Weblate (Croatian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-07-14 13:47:46 +02:00
7f5c854c00 chore(i18n): Translated using Weblate (Croatian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-07-14 13:47:46 +02:00
7ec89580e7 chore(i18n): Translated using Weblate (Croatian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-07-14 13:47:46 +02:00
56a5102377 chore(i18n): Translated using Weblate (Croatian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-07-14 13:47:46 +02:00
b6e9b5ac2b chore(i18n): Translated using Weblate (Croatian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-07-14 13:47:46 +02:00
eecdbbd2c4 chore(i18n): Translated using Weblate (Croatian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-07-14 13:47:46 +02:00
efeb871490 chore(i18n): Translated using Weblate (Croatian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-07-14 13:47:46 +02:00
f326a55247 chore(i18n): Translated using Weblate (Dutch)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-07-14 13:47:46 +02:00
e788585bd4 chore(i18n): Translated using Weblate (Dutch)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-07-14 13:47:46 +02:00
1396761b18 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-07-14 13:47:45 +02:00
5872e0f736 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-07-14 13:47:45 +02:00
1872c8193d chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-07-14 13:47:45 +02:00
187a0c54cb chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-07-14 13:47:45 +02:00
9533497388 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-07-14 13:47:45 +02:00
f323b7bb1f chore(i18n): Translated using Weblate (Japanese)
Currently translated at 98.8% (425 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2025-07-14 13:47:45 +02:00
68810b4762 chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-07-14 13:47:45 +02:00
d3e01d0732 chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-07-14 13:47:44 +02:00
970cf7ee91 chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-07-14 13:47:44 +02:00
4bf038e24d chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-07-14 13:47:44 +02:00
5925b765b8 fix(deps): update dependency @hono/zod-validator to v0.7.1 (#3616)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-13 22:43:21 +09:00
78cd3a786c Update changelog for v3.10.0 2025-07-13 08:26:54 +00:00
adb88991d9 Bump version to 3.10.0 2025-07-13 17:10:18 +09:00
4dad68d255 fix(downloader): code splitting (happy-dom) 2025-07-13 17:04:38 +09:00
33a09cc8e1 fix(api-server): fix #3572 2025-07-13 16:43:29 +09:00
e2c849f6c4 fix(store): fix synced lyrics config 2025-07-13 16:38:38 +09:00
7b41775b26 fix(store): fix migrator 2025-07-13 16:36:51 +09:00
6284b87fc7 fix(deps): update dependency butterchurn to v3.0.0-beta.5 (#3610)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-13 16:32:03 +09:00
f3f63d4fcd fix: bump @hono/zod-openapi version 2025-07-13 16:24:38 +09:00
cf80dd396c fix: remove the weird scrollbar
- Bump electron version to v38
- Remove `FluentScrollbar`
2025-07-13 16:06:46 +09:00
c79fc799b2 chore(i18n): Translated using Weblate (Basque)
Currently translated at 0.6% (3 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/eu/
2025-07-13 08:16:01 +02:00
7789d5d444 chore(i18n): Added translation using Weblate (Basque) 2025-07-13 08:14:58 +02:00
e0dbd4b88f chore(i18n): Translated using Weblate (Azerbaijani)
Currently translated at 0.6% (3 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/az/
2025-07-13 08:14:08 +02:00
1c74bbd954 chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2025-07-13 08:10:35 +02:00
d949e3550f chore(deps): update eslint monorepo to v9.31.0 (#3600)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-13 14:19:01 +09:00
d76115ab5d chore(i18n): Translated using Weblate (Arabic)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2025-07-13 07:01:56 +02:00
5be467a869 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-07-13 07:01:54 +02:00
b2dfbe1ed3 chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2025-07-13 07:01:52 +02:00
a9e9e0bdc2 chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2025-07-13 07:01:50 +02:00
93ce9cc359 chore(i18n): Translated using Weblate (Russian)
Currently translated at 99.7% (429 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-07-13 07:01:47 +02:00
2a626a5ff1 chore(deps): update dependency rollup to v4.45.0 (#3568)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-13 13:53:37 +09:00
1ccabb8e25 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-12 00:03:42 +02:00
2dae8688c2 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-12 00:03:42 +02:00
65459726a4 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-12 00:03:42 +02:00
0c21accb10 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-12 00:03:41 +02:00
125d2d5163 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-12 00:03:41 +02:00
6c1855b5a5 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-12 00:03:41 +02:00
82c5222610 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-12 00:03:41 +02:00
0d0e2a11e1 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-12 00:03:41 +02:00
daf724f9dc chore(i18n): Translated using Weblate (Serbian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-12 00:03:41 +02:00
be2cdb4cb5 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-12 00:03:41 +02:00
ff2fdab77d chore(i18n): Translated using Weblate (Tamil)
Currently translated at 98.6% (424 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ta/
2025-07-12 00:03:41 +02:00
9047169a39 chore(i18n): Translated using Weblate (Sinhala)
Currently translated at 23.2% (100 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/si/
2025-07-12 00:03:41 +02:00
9525df343f chore(i18n): Translated using Weblate (Sinhala)
Currently translated at 23.2% (100 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/si/
2025-07-12 00:03:40 +02:00
be2abee85d chore(i18n): Translated using Weblate (Bulgarian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bg/
2025-07-12 00:03:40 +02:00
7d5f7a9527 chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-07-12 00:03:40 +02:00
b53ece5836 feat: code splitting (#3593)
Co-authored-by: Angelos Bouklis <me@arjix.dev>
2025-07-12 00:00:03 +09:00
c04dc92d39 fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.11.1 (#3571)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 23:59:03 +09:00
78acd2ddbb fix(deps): update dependency @ghostery/adblocker-electron to v2.11.1 (#3570)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 23:57:09 +09:00
7126c290e2 chore(deps): update playwright monorepo to v1.54.1 (#3599)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 23:56:56 +09:00
58651857e2 fix: remove debug log 2025-07-11 23:44:02 +09:00
8e7c95e68f chore(deps): update playwright monorepo to v1.54.0 (#3591)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 23:42:39 +09:00
1c68c5637d chore(deps): update dependency electron to v37.2.1 (#3559)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 23:42:13 +09:00
c44d5ea111 fix: improve menu detector 2025-07-11 23:04:00 +09:00
b48e05ab28 fix(deps): update dependency socks to v2.8.6 (#3598)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 17:32:01 +09:00
7e5a5a77fe fix(deps): update dependency zod to v4.0.5 (#3594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 17:31:36 +09:00
77c4566ad3 chore(deps): update dependency vite to v7.0.8 (#3597)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 17:10:11 +09:00
6305f52947 chore(i18n): Translated using Weblate (Malayalam)
Currently translated at 11.3% (49 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ml/
2025-07-10 21:01:54 +02:00
b8baf0fad4 chore(i18n): Translated using Weblate (Malayalam)
Currently translated at 11.3% (49 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ml/
2025-07-10 21:01:53 +02:00
038244bf43 chore(i18n): Translated using Weblate (Persian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2025-07-10 21:01:51 +02:00
ef22b48aae chore(i18n): Translated using Weblate (Persian)
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2025-07-10 21:01:50 +02:00
62b3abd502 chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (430 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2025-07-10 21:01:49 +02:00
e1f8ece433 chore(i18n): Translated using Weblate (Italian)
Currently translated at 99.7% (429 of 430 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2025-07-10 21:01:48 +02:00
dd9ed5e5e6 chore(deps): update dependency vite to v7.0.7 (#3590)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-10 20:09:02 +09:00
3f442a97c5 feat: remove lyrics-genius 2025-07-10 16:40:33 +09:00
61e19cfa9f fix: remove unused value 2025-07-10 16:05:12 +09:00
f73188ab83 fix: apply fix to types from eslint 2025-07-10 14:17:39 +09:00
4c4a39b9a7 fix: use @stylistic/eslint-plugin instead of @stylistic/eslint-plugin-js 2025-07-10 14:15:58 +09:00
1da83ff27c fix: apply fix from eslint 2025-07-10 14:14:43 +09:00
2cfc38757a feat: isolate electron-builder configuration 2025-07-10 13:57:27 +09:00
b5f82f5ed8 chore(deps): update dependency @electron/universal to v3 (#3565)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-10 13:50:55 +09:00
d13484a47b fix(deps): update dependency electron-unhandled to v5 (#2088)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-10 13:47:44 +09:00
4d33921881 feat: bump require node version to 22 2025-07-10 13:45:58 +09:00
6fdac6facf feat: enable the ESM for main (#3588) 2025-07-10 13:43:13 +09:00
51a87566e5 fix(deps): update dependency zod to v4 (#3587)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-10 12:57:13 +09:00
f715dcd9b4 chore(deps): Bump electron-vite, esbuild, typescript-eslint, i18next, @electron/remote version 2025-07-09 23:27:50 +09:00
275f78a180 chore(deps): Bump dependencies version 2025-07-09 23:24:54 +09:00
bc8d199c77 chore(i18n): Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/
2025-07-09 16:14:25 +02:00
e114e0ef44 feat: migrate from raw HTML to JSX (TSX / SolidJS) (#3583)
Co-authored-by: Su-Yong <simssy2205@gmail.com>
2025-07-09 23:14:11 +09:00
9ccd126eee chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 48.6% (206 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-07-09 11:01:55 +00:00
e3c79c789c chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 48.6% (206 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-07-09 11:01:54 +00:00
c9ab69eb9e chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 48.6% (206 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-07-09 11:01:53 +00:00
d444f52c27 chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 48.6% (206 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-07-09 11:01:52 +00:00
cd51d2c8df chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2025-07-09 11:01:51 +00:00
84c592f45f chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2025-07-09 11:01:50 +00:00
Jeo
83f7ebc087 docs: add Unobtrusive Player in available plugins (#3582) 2025-07-09 15:50:00 +09:00
35a7ab288d chore(i18n): Added translation using Weblate (Azerbaijani) 2025-07-08 01:31:38 +02:00
c1c4c22ec2 chore(i18n): Translated using Weblate (Bengali)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bn/
2025-07-08 01:31:37 +02:00
5eb0c9f98c chore(i18n): Translated using Weblate (Bengali)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bn/
2025-07-08 01:31:36 +02:00
733b0166c8 chore(i18n): Translated using Weblate (Bengali)
Currently translated at 32.8% (139 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bn/
2025-07-07 20:23:58 +02:00
c5f7c80542 chore(i18n): Translated using Weblate (Bengali)
Currently translated at 32.8% (139 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bn/
2025-07-07 20:23:58 +02:00
c840e31a80 chore(i18n): Translated using Weblate (Bengali)
Currently translated at 32.8% (139 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bn/
2025-07-07 20:23:58 +02:00
22181afe73 chore(i18n): Translated using Weblate (Bengali)
Currently translated at 32.8% (139 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bn/
2025-07-07 20:23:58 +02:00
f698614b21 chore(i18n): Translated using Weblate (Bengali)
Currently translated at 32.8% (139 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bn/
2025-07-07 20:23:57 +02:00
adeffdabad chore(i18n): Translated using Weblate (Sinhala)
Currently translated at 18.9% (80 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/si/
2025-07-07 20:23:57 +02:00
acdffea563 chore(i18n): Translated using Weblate (Sinhala)
Currently translated at 18.9% (80 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/si/
2025-07-07 20:23:57 +02:00
cf1806dc10 chore(i18n): Translated using Weblate (Malay)
Currently translated at 40.1% (170 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-07-07 20:23:57 +02:00
ff69803fdc chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 98.5% (417 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2025-07-07 20:23:57 +02:00
f7140d78bd chore(i18n): Translated using Weblate (Japanese)
Currently translated at 99.5% (421 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2025-07-07 20:23:57 +02:00
e4d8365170 chore(i18n): Translated using Weblate (Japanese)
Currently translated at 99.5% (421 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2025-07-07 20:23:57 +02:00
c64d69f33b chore(i18n): Translated using Weblate (Bengali)
Currently translated at 11.8% (50 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bn/
2025-07-07 06:55:07 +02:00
16a3fa7469 chore(i18n): Translated using Weblate (Bengali)
Currently translated at 11.8% (50 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bn/
2025-07-07 06:55:07 +02:00
1e867d10f2 chore(i18n): Translated using Weblate (Bengali)
Currently translated at 11.8% (50 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bn/
2025-07-07 06:55:06 +02:00
3466b1a863 chore(i18n): Translated using Weblate (Bengali)
Currently translated at 11.8% (50 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bn/
2025-07-07 06:55:06 +02:00
a5cc2f555a chore(i18n): Added translation using Weblate (Bengali) 2025-07-07 06:28:35 +02:00
9445379280 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 59.8% (253 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-07 06:28:34 +02:00
68c79ded99 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 59.8% (253 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-07 06:28:34 +02:00
9e59a8c1d5 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 59.8% (253 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-07 06:28:34 +02:00
cc20cb5620 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 59.8% (253 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-07 06:28:34 +02:00
be69d85d27 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 59.8% (253 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-07 06:28:34 +02:00
f851c2de20 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 59.8% (253 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-07 06:28:34 +02:00
2319821851 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 59.8% (253 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-07 06:28:34 +02:00
5ba0fee18a chore(i18n): Translated using Weblate (Serbian)
Currently translated at 59.8% (253 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-07 06:28:34 +02:00
8ac7c4ea9d chore(i18n): Translated using Weblate (Serbian)
Currently translated at 59.8% (253 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-07-07 06:28:34 +02:00
3649ad092a chore(i18n): Translated using Weblate (Arabic)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2025-07-07 06:28:34 +02:00
4adaa27beb chore(i18n): Translated using Weblate (Arabic)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2025-07-07 06:28:33 +02:00
e6ab13a42b chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 45.1% (191 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-07-07 06:28:33 +02:00
fb16badcb3 chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 45.1% (191 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-07-07 06:28:33 +02:00
fc0da887e1 chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 45.1% (191 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-07-07 06:28:33 +02:00
f65add2e28 chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 45.1% (191 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-07-07 06:28:33 +02:00
c3b7ee54de chore(i18n): Translated using Weblate (Japanese)
Currently translated at 99.2% (420 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2025-07-07 06:28:33 +02:00
245974da42 chore(i18n): Translated using Weblate (Latvian)
Currently translated at 54.6% (231 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lv/
2025-07-06 16:28:48 +02:00
4e756f7117 chore(i18n): Translated using Weblate (Latvian)
Currently translated at 54.6% (231 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lv/
2025-07-06 16:28:47 +02:00
bed4f1bfe9 chore(i18n): Translated using Weblate (Latvian)
Currently translated at 54.6% (231 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lv/
2025-07-06 16:28:47 +02:00
0e79d9d5cc chore(i18n): Translated using Weblate (Dutch)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-07-06 16:28:47 +02:00
136f9f429f fix(deps): update dependency @hono/node-server to v1.15.0 (#3557)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-06 12:29:51 +09:00
97d8cb5ad1 chore(deps): update dependency vitefu to v1.1.1 (#3564)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-06 12:29:40 +09:00
b21862f2be chore(deps): update dependency discord-api-types to v0.38.15 (#3562)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-04 00:00:49 +09:00
bedfd20f7e fix(deps): update dependency es-hangul to v2.3.5 (#3563)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-04 00:00:35 +09:00
46a95a4f97 fix(deps): update dependency zod to v3.25.71 (#3558)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-04 00:00:24 +09:00
80f1d10309 fix(deps): update dependency @ghostery/adblocker-electron to v2.9.2 (#3560)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-04 00:00:03 +09:00
9f38f1fb26 fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.9.2 (#3561)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-03 23:57:00 +09:00
0061318f4c fix(deps): update dependency @ghostery/adblocker-electron to v2.9.0 (#3555)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-03 00:00:30 +09:00
6ba36fcba5 fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.9.0 (#3556)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-02 23:58:41 +09:00
63c8f4d0e1 chore(deps): update eslint monorepo to v9.30.1 (#3552)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-02 17:29:51 +09:00
bef304865c Fixed play/pause discord rich presence by fixing lastsonginfo tracking (#3551) 2025-07-02 17:19:28 +09:00
fec4702ee0 fix(patch): remove .idea directory in patch 2025-07-02 17:09:50 +09:00
ab07b71888 fix: fix bundle size + remove eval warning 2025-07-02 17:03:01 +09:00
0253bfe193 feat: enable rolldown native plugin (#3502) 2025-07-02 16:20:46 +09:00
3e9429879d chore(deps): bump rolldown-vite version to 7.0.4 2025-07-02 13:57:41 +09:00
c1ac07d287 chore(i18n): Translated using Weblate (Catalan)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2025-07-01 17:10:47 +02:00
fa0f68e308 chore(i18n): Translated using Weblate (Catalan)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2025-07-01 17:10:47 +02:00
38b2bb64fc fix(synced-lyrics): fix nullable 2025-07-01 23:32:07 +09:00
be92e6c6f7 fix(deps): update dependency virtua to v0.41.5 (#3549)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 23:11:02 +09:00
eabbfe94bc chore(deps): update dependency typescript-eslint to v8.35.1 (#3545)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 16:21:53 +09:00
bcbc691435 chore(deps): update dependency discord-api-types to v0.38.14 (#3546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 16:21:44 +09:00
90c832733d chore(deps): update playwright monorepo to v1.53.2 (#3547)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 16:21:34 +09:00
e3b76115aa fix(deps): update dependency i18next to v25.3.0 (#3548)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 16:21:27 +09:00
8fc9692ae4 perf(synced-lyrics): virtual scrolling (#3162)
Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-07-01 16:21:09 +09:00
40ab32cbe7 fix: add fflate 2025-06-30 23:47:57 +09:00
f047dd2d2d fix: kuromoji zlib and apply rolldown-vite 2025-06-30 23:44:16 +09:00
1877460094 chore(deps): update dependency vite to v7 (#3524)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-06-30 22:45:14 +09:00
eae4e952f5 feat(synced-lyrics): Musixmatch (#3261) 2025-06-30 22:37:01 +09:00
89479a5045 feat(api-server): add optional params for search (#3440) 2025-06-30 12:46:43 +09:00
a702a3284c chore(deps): update dependency vite-plugin-inspect to v11.3.0 (#3543)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 12:44:45 +09:00
47674e9a5a chore(deps): update eslint monorepo to v9.30.0 (#3544)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 12:43:34 +09:00
93deee665b chore(deps): update dependency rollup to v4.44.1 (#3537)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 12:42:15 +09:00
95385cb9de chore(deps): update dependency ws to v8.18.3 (#3538)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 12:42:06 +09:00
35f9ac0f9a fix(deps): update dependency @hono/zod-openapi to v0.19.9 (#3540)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 12:41:56 +09:00
42b8f57216 fix(deps): update dependency @floating-ui/dom to v1.7.2 (#3539)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 12:40:50 +09:00
56cb3b6cc8 fix(deps): update dependency es-hangul to v2.3.4 (#3541)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 12:39:34 +09:00
01e137f5d4 fix(deps): update dependency hono to v4.8.3 (#3542)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 12:39:24 +09:00
0bbc1b4546 fix(style): fix duplicated scrollbar (#3483) 2025-06-30 12:38:59 +09:00
40429034b6 chore(deps): update dependency typescript-eslint to v8.35.0 (#3518)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 22:26:32 +09:00
49cb29c2fe chore(deps): update dependency vite-plugin-solid to v2.11.7 (#3520)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 22:14:26 +09:00
432427ec5a chore(deps): update dependency discord-api-types to v0.38.13 (#3517)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 22:14:10 +09:00
ce0568cc52 chore(deps): update dependency eslint-import-resolver-typescript to v4.4.4 (#3534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 22:13:58 +09:00
d6ed6bdc2b fix(deps): update dependency @ghostery/adblocker-electron to v2.8.0 (#3521)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 22:13:28 +09:00
65b6417777 chore(deps): update dependency eslint-plugin-prettier to v5.5.1 (#3535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 22:13:16 +09:00
7b2c537290 fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.8.0 (#3522)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 22:11:00 +09:00
cbb7709159 chore(deps): update dependency electron to v37 (#3527)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-29 22:04:27 +09:00
232ca99243 feat: Add instructional note to Swagger documentation (#3532)
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2025-06-29 22:01:41 +09:00
47990c7b95 chore(i18n): Translated using Weblate (Latvian)
Currently translated at 46.8% (198 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lv/
2025-06-28 15:06:08 +02:00
21a95709a2 chore(i18n): Translated using Weblate (Estonian)
Currently translated at 24.1% (102 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/et/
2025-06-28 15:06:07 +02:00
d43803c14c chore(i18n): Translated using Weblate (Croatian)
Currently translated at 74.2% (314 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-06-28 15:06:06 +02:00
5fe10a9660 chore(i18n): Translated using Weblate (Croatian)
Currently translated at 74.2% (314 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-06-28 15:06:05 +02:00
fa9e031bbb chore(i18n): Translated using Weblate (Latvian)
Currently translated at 46.5% (197 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lv/
2025-06-26 19:01:52 +02:00
a592520e2a chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 34.5% (146 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-06-26 19:01:49 +02:00
f7f82f20f1 chore(i18n): Added translation using Weblate (Latvian) 2025-06-25 18:10:13 +02:00
e8214fa6ee chore(i18n): Translated using Weblate (Catalan)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2025-06-25 00:05:52 +02:00
1f0978d5ad chore(deps): update playwright monorepo to v1.53.1 (#3504)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-22 22:34:17 +09:00
2b0295d95c chore(deps): update dependency rollup to v4.44.0 (#3508)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-22 17:02:01 +09:00
355d9870a1 chore(deps): update dependency eslint-plugin-import to v2.32.0 (#3513)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-22 17:01:49 +09:00
4eb2d63a82 fix(deps): update dependency hono to v4.8.2 (#3509)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-22 17:01:42 +09:00
315fa15eec chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 98.3% (416 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2025-06-20 16:01:50 +02:00
6037491f98 fix: revert rolldown-vite 2025-06-19 22:49:32 +09:00
9e3d84e78e chore(deps): update dependency electron to v36.5.0 (#3503)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 23:06:44 +09:00
de7f7abc91 chore(deps): update stefanzweifel/git-auto-commit-action action to v6 (#3500)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 23:01:19 +09:00
ad0d1ec37d chore(deps): update dependency vite to v6.3.21 (#3492)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:58:31 +09:00
2acd51cec3 fix(deps): update dependency hono to v4.8.0 (#3499)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:58:20 +09:00
96a1df3d0a chore(deps): update playwright monorepo to v1.53.0 (#3497)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:51:08 +09:00
576cd14ca0 chore(deps): update eslint monorepo to v9.29.0 (#3496)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:50:06 +09:00
baeef8e2c3 chore(deps): update dependency vite-plugin-inspect to v11.2.0 (#3495)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:49:56 +09:00
1823740dd8 fix(deps): update dependency happy-dom to v18 (#3501)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:48:22 +09:00
ce73d6c075 fix(deps): update dependency electron-store to v10.1.0 (#3498)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:47:39 +09:00
1e1b469dba chore(deps): update dependency eslint-plugin-prettier to v5.5.0 (#3493)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:45:36 +09:00
da6c3b907c chore(deps): update dependency rollup to v4.43.0 (#3494)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:44:33 +09:00
be90fecbad fix(deps): update dependency @ghostery/adblocker-electron to v2.7.0 (#3466)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:40:35 +09:00
cce5419985 fix(deps): update dependency @hono/swagger-ui to v0.5.2 (#3465)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:38:18 +09:00
fb2bbdc381 fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.7.0 (#3467)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:38:02 +09:00
dbd4113314 fix(deps): update dependency youtubei.js to v14 (#3468)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:37:16 +09:00
49e915d2e1 chore(deps): update dependency discord-api-types to v0.38.12 (#3490)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:36:15 +09:00
96cd219a0f chore(deps): update dependency glob to v11.0.3 (#3491)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:36:07 +09:00
7390119143 chore(deps): update dependency typescript-eslint to v8.34.1 (#3469)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:24:23 +09:00
d8a84a3500 fix(deps): update dependency socks to v2.8.5 (#3470)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:24:14 +09:00
34601dd6af fix(deps): update dependency zod to v3.25.67 (#3471)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-18 22:24:05 +09:00
ee28471146 chore(i18n): Translated using Weblate (Malay)
Currently translated at 37.1% (157 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-06-17 10:02:02 +02:00
e80bc304c5 chore(i18n): Translated using Weblate (Indonesian)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/id/
2025-06-17 10:02:00 +02:00
2593092f04 chore(i18n): Translated using Weblate (Tamil)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ta/
2025-06-15 14:01:53 +02:00
fc52af96b2 chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2025-06-11 20:29:41 +02:00
c31eaefdee chore(i18n): Translated using Weblate (Hindi)
Currently translated at 85.3% (361 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-06-11 06:02:48 +02:00
83212294c9 chore(i18n): Translated using Weblate (Croatian)
Currently translated at 72.3% (306 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-06-11 06:02:48 +02:00
fbe1729ac3 chore(i18n): Translated using Weblate (Czech)
Currently translated at 89.1% (377 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2025-06-11 06:02:47 +02:00
419e51a814 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 85.1% (360 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-06-09 16:02:12 +00:00
170b3132ad chore(deps): update dependency @babel/runtime to v7.27.6 (#3451)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-08 16:25:12 +09:00
5ef2dc5a9a chore(deps): update dependency eslint-import-resolver-typescript to v4.4.3 (#3453)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-08 16:24:57 +09:00
43d6950ee3 fix(deps): update dependency zod to v3.25.56 (#3454)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-08 16:24:38 +09:00
6070300c22 fix(deps): update dependency @hono/node-server to v1.14.4 (#3456)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-08 16:24:09 +09:00
ef1504ab30 chore(deps): update dependency rollup to v4.42.0 (#3457)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-08 16:23:30 +09:00
c52d8d93b3 fix(deps): update dependency conf to v14 (#3458)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-08 16:22:49 +09:00
f6ddfc3807 fix(deps): update dependency peerjs to v1.5.5 (#3460)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-08 16:22:17 +09:00
5035c6a8d8 feat: use tiny-pinyin instead of pinyin 2025-06-08 16:14:16 +09:00
58ca9523c5 chore(i18n): Translated using Weblate (Galician)
Currently translated at 0.7% (3 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/gl/
2025-06-08 05:36:54 +02:00
5b2e9c0de9 feat: use rolldown-vite 2025-06-08 12:18:16 +09:00
4a3ca1af75 chore(i18n): Translated using Weblate (Tamil)
Currently translated at 99.7% (422 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ta/
2025-06-07 13:01:51 +00:00
7beac0b6ad chore(i18n): Translated using Weblate (Hindi)
Currently translated at 82.7% (350 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-06-07 13:01:50 +00:00
af05ff6582 chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-06-07 13:01:49 +00:00
77703e0268 chore(i18n): Translated using Weblate (Italian)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2025-06-07 13:01:48 +00:00
dadca8b1c4 chore(deps): update dependency @stylistic/eslint-plugin-js to v4.4.1 (#3444)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-05 12:25:37 +09:00
87db1dd461 chore(deps): update dependency discord-api-types to v0.38.11 (#3445)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-05 12:25:30 +09:00
2799f81906 chore(deps): update dependency electron to v36.4.0 (#3447)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-05 12:22:59 +09:00
bfe96b004f fix(deps): update dependency zod to v3.25.51 (#3446)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-05 12:22:51 +09:00
51f7d10113 chore(i18n): Translated using Weblate (Greek)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/el/
2025-06-04 19:01:49 +00:00
60ca5ec17e fix(deps): update dependency hono to v4.7.11 (#3435)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 12:51:13 +09:00
8d1082da4e fix(deps): update dependency @floating-ui/dom to v1.7.1 (#3434)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 12:38:28 +09:00
1858b0712b chore(deps): update dependency eslint-import-resolver-typescript to v4.4.2 (#3432)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 12:38:19 +09:00
d5b3fbbdb2 chore(deps): update dependency eslint-plugin-prettier to v5.4.1 (#3433)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 12:38:12 +09:00
346ce00144 fix(deps): update dependency zod to v3.25.50 (#3443)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 12:37:57 +09:00
f9d5e67f3f fix(deps): update dependency happy-dom to v17.6.3 (#3438)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-04 12:37:51 +09:00
73dd56416e fix(deps): update dependency zod to v3.25.49 (#3436)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 16:14:45 +09:00
ca97e624cd chore(deps): update eslint monorepo to v9.28.0 (#3437)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 16:14:38 +09:00
b639fb1073 fix(deps): update dependency @hono/zod-openapi to v0.19.8 (#3411)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 02:54:00 +09:00
8488dfd8f4 fix: use gtk 3 switch as workaround (#3366)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-06-03 02:52:30 +09:00
7eed86608c chore(deps): update dependency electron to v36.3.2 (#3431)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 02:50:13 +09:00
67dfc618d1 fix(deps): update dependency @xhayper/discord-rpc to v1.2.2 (#3413)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 02:48:33 +09:00
38394193f5 fix(deps): update dependency happy-dom to v17.5.6 (#3417)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 02:48:17 +09:00
c9ca1b8be6 fix(deps): update dependency @hono/zod-validator to v0.7.0 (#3414)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 02:48:01 +09:00
8ce25613ae chore(deps): update dependency discord-api-types to v0.38.10 (#3430)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 02:47:53 +09:00
145cf8563b chore(deps): update dependency typescript-eslint to v8.33.1 (#3416)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 02:47:42 +09:00
c9b0577ed4 chore(docs): Improve README-es.md by adjusting the bad Spanish translation (#3424) 2025-06-03 02:47:12 +09:00
8a5c3a670a chore(docs): Improve README.md by removing the extra flag for Spanish translation (#3422) 2025-06-03 02:46:19 +09:00
17259d68d0 chore(deps): update dependency @babel/runtime to v7.27.4 (#3410)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 02:44:49 +09:00
aa77ab0779 chore(i18n): Translated using Weblate (Romanian)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ro/
2025-06-01 23:07:04 +02:00
481fff56f5 chore(i18n): Translated using Weblate (Catalan)
Currently translated at 96.4% (408 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2025-05-31 20:02:56 +02:00
LAO
0da013a962 chore(i18n): Translated using Weblate (Thai)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/th/
2025-05-30 12:03:08 +02:00
eeb051dd29 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 69.7% (295 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-05-29 06:05:38 +02:00
708c96a8e9 chore(i18n): Translated using Weblate (Malay)
Currently translated at 31.4% (133 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-05-29 06:05:38 +02:00
4f7e2f29c1 chore(i18n): Translated using Weblate (Malay)
Currently translated at 31.4% (133 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-05-29 06:05:38 +02:00
b754e16fb6 chore(i18n): Translated using Weblate (Malay)
Currently translated at 31.4% (133 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-05-29 06:05:38 +02:00
f53d3abef8 fix(deps): update dependency ts-morph to v26 (#3409)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 15:01:17 +09:00
c9e48782aa fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.6.1 (#3407)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 15:00:02 +09:00
a49d711c67 fix(deps): update dependency zod to v3.25.30 (#3408)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 14:59:50 +09:00
878ab6307e fix(precise-volume): replace constructor check for volume slider (#3362) 2025-05-27 14:58:19 +09:00
ad17e9a557 chore(deps): update dependency vite-plugin-inspect to v11.1.0 (#3393)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 14:57:11 +09:00
bc9ca62cbe chore(deps): update dependency eslint-import-resolver-typescript to v4.4.1 (#3406)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 14:57:02 +09:00
4329ac6bf3 chore(deps): update dependency @stylistic/eslint-plugin-js to v4.4.0 (#3391)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 14:56:52 +09:00
a49733877f fix(deps): update dependency i18next to v25.2.1 (#3405)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 14:56:38 +09:00
a3ca565faf chore(deps): update dependency esbuild to v0.25.5 (#3403)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 14:56:23 +09:00
a51670c1c8 fix(deps): update dependency @hono/node-server to v1.14.3 (#3404)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 14:53:05 +09:00
a9b4b42a74 chore(deps): update dependency rollup to v4.41.1 (#3392)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 14:52:30 +09:00
f6b51d92a4 chore(deps): update eslint monorepo to v9.27.0 (#3394)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 14:52:14 +09:00
c4efbcbbeb fix(deps): update dependency @ghostery/adblocker-electron to v2.6.1 (#3395)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 14:50:43 +09:00
3de06655df fix(deps): update dependency hono to v4.7.10 (#3390)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 14:50:35 +09:00
2c649c50f6 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 67.6% (286 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-05-26 16:03:03 +02:00
bccefb9380 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 48.9% (207 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-05-25 07:28:21 +02:00
6c5009d520 chore(deps): update dependency eslint-import-resolver-typescript to v4.3.5 (#3388)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-25 00:22:12 +09:00
a45b8f88cb fix(deps): update dependency @hono/node-server to v1.14.2 (#3389)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-25 00:21:57 +09:00
3a82129d37 chore(deps): update dependency electron to v36.3.1 (#3372)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-25 00:20:22 +09:00
16fe257073 chore(deps): update dependency typescript-eslint to v8.32.1 (#3364)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-25 00:20:10 +09:00
39d6b6d30b fix(deps): update dependency semver to v7.7.2 (#3365)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-25 00:19:04 +09:00
2dbaecff6e fix(album-actions): update playlist and button selectors (#3367)
* fix(album-actions): update playlist and button selectors

* refactor(album-actions): directly access the last element of NodeList

Co-authored-by: Angelos Bouklis <me@arjix.dev>

* refactor(album-actions): directly access the last element of NodeList

Co-authored-by: Angelos Bouklis <me@arjix.dev>

---------

Co-authored-by: Angelos Bouklis <me@arjix.dev>
2025-05-25 00:18:49 +09:00
77c9d44823 fix(deps): update dependency i18next to v25.2.0 (#3370)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-25 00:17:31 +09:00
aaea3ba768 chore(deps): update dependency discord-api-types to v0.38.8 (#3361)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-25 00:17:19 +09:00
2cb44054df fix(deps): update dependency solid-js to v1.9.7 (#3375)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-25 00:16:47 +09:00
3effb58282 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 40.6% (172 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-05-24 04:01:46 +02:00
1d9573e15d chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2025-05-24 04:01:45 +02:00
f8df3e6548 chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-05-24 04:01:44 +02:00
d76ebde673 chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-05-21 14:03:29 +02:00
2e4a15442a chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 99.5% (421 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-05-20 10:02:00 +02:00
716566593e chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-05-20 10:02:00 +02:00
9c0d1788b0 Merge remote-tracking branch 'origin/master' 2025-05-20 14:27:37 +09:00
51b3f53569 feat: refactor 2025-05-20 14:27:30 +09:00
88111185a3 chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2025-05-18 14:02:05 +02:00
ac0a46cff6 chore(i18n): Translated using Weblate (Turkish)
Currently translated at 97.6% (413 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2025-05-17 13:01:49 +02:00
529c798e49 chore(i18n): Added translation using Weblate (Galician) 2025-05-16 11:16:00 +02:00
611afd7403 chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-05-16 11:15:59 +02:00
6ac1fec5ab chore(i18n): Translated using Weblate (Nepali)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ne/
2025-05-15 17:02:58 +00:00
22cfefb5f9 chore(i18n): Translated using Weblate (Malay)
Currently translated at 19.6% (83 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-05-15 17:02:57 +00:00
e1962810e9 chore(i18n): Translated using Weblate (Malay)
Currently translated at 19.6% (83 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-05-15 17:02:56 +00:00
cd740880c8 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-05-15 17:02:55 +00:00
382caaabb0 chore(i18n): Translated using Weblate (Japanese)
Currently translated at 98.1% (415 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2025-05-13 16:01:54 +02:00
9f5236439c chore(i18n): Translated using Weblate (German)
Currently translated at 99.5% (421 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-05-13 16:01:53 +02:00
bb69f31f3a Merge branch 'master' into master 2025-05-12 22:34:51 +09:00
afe5fed760 fix(music-together): fix remove unused SYNC_QUEUE from host 2025-05-12 20:39:23 +09:00
981a7f319e feat(discord): centralize activityInfo creation and simplify elapsedSeconds handling
- Extracted activityInfo object construction into the buildActivityInfo helper to remove code duplication in presence updates.

- Removed unnecessary nullish coalescing (?? 0)
2025-05-12 13:17:13 +02:00
42cb9b0ea8 refactor(discord): centralize Discord logic and improve activity update handling 2025-05-12 03:02:55 +02:00
d9ead78083 fix(music-together): fix data integrity 2025-05-12 08:25:32 +09:00
329ea64989 chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2025-05-12 01:07:56 +02:00
8c1673c6a8 chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-05-12 01:07:56 +02:00
dedca8fdd1 chore(i18n): Translated using Weblate (Greek)
Currently translated at 100.0% (423 of 423 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/el/
2025-05-12 01:07:56 +02:00
02bf057fbc fix(music-together): fix infinite loop 2025-05-12 07:36:21 +09:00
98be48bb13 fix(music-together): fix connection disconnect message 2025-05-12 06:31:37 +09:00
3200d088cf fix(music-together): remove debug log 2025-05-12 06:21:28 +09:00
edea7b59e1 fix(music-together): fix user profile in queue 2025-05-12 06:19:36 +09:00
d10c6ec8fc fix(music-together): fix queue index 2025-05-12 03:30:02 +09:00
91a2eb9063 fix(music-together): fix unknown user 2025-05-12 02:34:10 +09:00
dfa427f2ed fix(music-together): Removing a connection on error 2025-05-12 01:46:14 +09:00
6d3ac985b2 fix(music-together): add TURN server
limit: 50kbps
2025-05-12 00:46:55 +09:00
d874fcd117 fix(music-together): fix duplicate queue listener 2025-05-12 00:16:53 +09:00
5158b9cd04 fix(music-together): fix duplicate client issue 2025-05-11 23:19:16 +09:00
efc8038210 fix(music-together): fix profile issue 2025-05-11 22:59:53 +09:00
8f18fb80ea fix(renderer): fix traffic light 2025-05-11 22:56:08 +09:00
a257d4dfbc chore(deps): update dependency electron to v36 (#3307)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-11 22:11:23 +09:00
e2f1d1d611 fix(deps): update dependency @floating-ui/dom to v1.7.0 (#3357)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-11 16:22:11 +09:00
d4c00b6d74 chore(deps): update eslint monorepo to v9.26.0 (#3356)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-11 16:21:27 +09:00
823fbf4a78 chore(deps): update dependency eslint-plugin-prettier to v5.4.0 (#3355)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-11 16:18:01 +09:00
806dc11d4a fix(deps): update dependency zod to v3.24.4 (#3354)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-11 16:17:51 +09:00
d8dcbddbf1 fix(deps): update dependency solid-js to v1.9.6 (#3353)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-11 16:17:39 +09:00
1219de1ae9 fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.5.2 (#3350)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-11 16:17:21 +09:00
1e764f7707 fix(deps): update dependency happy-dom to v17.4.7 (#3352)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-11 16:17:11 +09:00
809947716d fix(deps): update dependency @ghostery/adblocker-electron to v2.5.2 (#3349)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-11 16:14:22 +09:00
d88406447e fix(discord): improve activity management and state verification in Discord integration 2025-05-10 22:47:28 +02:00
dbfe9d517a chore(deps): update dependency vite to v6.3.5 (#3346)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-11 02:07:15 +09:00
703ad71ff3 chore(deps): update dependency ws to v8.18.2 (#3347)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-11 02:07:06 +09:00
3b4f319871 fix: fix pnpm-lock.yaml 2025-05-11 02:05:58 +09:00
852933d4d7 feat(plugin): support authenticated proxy (#3175)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: JellyBrick <shlee1503@naver.com>
Co-authored-by: qiye45 <qiye45@users.noreply.github.com>
2025-05-11 02:04:00 +09:00
b9269bf085 chore(deps): update dependency esbuild to v0.25.4 (#3344)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-11 02:01:41 +09:00
3b8edf115e chore(deps): update dependency eslint-config-prettier to v10.1.5 (#3345)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-11 02:01:33 +09:00
97a277a192 fix(youtube-music): fix #3296, and macOS traffic lights 2025-05-11 01:56:01 +09:00
41ce2320fa fix(deps): update dependency hono to v4.7.9 (#3302)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 22:19:05 +09:00
1350ca0816 chore(deps): update dependency electron to v34.5.5 (#3343)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 22:18:33 +09:00
5e29628351 docs: Add Ukrainian translation (#3338) 2025-05-10 22:15:52 +09:00
006aacfb35 chore(deps): update dependency discord-api-types to v0.38.4 (#3342)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 22:14:47 +09:00
e5cef89a27 chore(deps): update dependency rollup to v4.40.2 (#3301)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 22:14:37 +09:00
e91d44d018 chore(deps): update dependency @electron/universal to v2.0.3 (#3341)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 22:14:03 +09:00
f35328fab4 fix(deps): update dependency @hono/zod-validator to v0.5.0 (#3295)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 22:12:26 +09:00
d84c308572 chore(deps): update dependency @babel/runtime to v7.27.1 (#3340)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 22:12:18 +09:00
733866efea fix(deps): update dependency i18next to v25.1.2 (#3305)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 20:57:33 +09:00
079e625c69 fix(album-actions): use playlist shelf for playlist detection (#3306) 2025-05-10 20:52:56 +09:00
64f87d4fec chore(deps): update dependency typescript-eslint to v8.32.0 (#3304)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 20:52:35 +09:00
da5c18dcf1 chore(deps): update dependency vite to v6.3.4 [security] (#3313)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 20:51:15 +09:00
f67ff2ee11 fix(deps): update dependency @hono/zod-openapi to v0.19.6 (#3294)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-10 20:44:26 +09:00
0c1d300103 fix(discord): restore Hangul Filler patch for short fields in Rich Presence
Re-added the original workaround that pads title, artist, and album fields with the Hangul Filler character (\u3164) if their length is less than 2. This prevents Discord Rich Presence from displaying empty or missing fields when song info is very short.
2025-05-09 00:39:22 +02:00
e0abc4a43b fix(discord): Improve state verification before sending activity updates
- Enhanced the throttling mechanism to ensure that activity updates are only sent if the song state has not changed.
- Added checks for video ID and pause state to prevent unnecessary updates.
- Improved handling of elapsed time during updates.
2025-05-08 21:34:05 +02:00
de273da85f feat(discord): Enhance activity updates with throttling and state management
- Implemented throttling for Discord activity updates to respect rate limits.
- Added state management for song changes, pause state, and elapsed time.
- Introduced buttons for YouTube Music and GitHub links in activity updates.
- Improved handling of paused state and activity timeout configuration.
2025-05-08 21:01:29 +02:00
b52caa5f17 chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-05-08 13:03:00 +02:00
fec7d3b1c4 chore(i18n): Translated using Weblate (Dutch)
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-05-07 00:01:47 +02:00
63f7254b60 chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2025-05-07 00:01:46 +02:00
03501790fb chore(i18n): Translated using Weblate (Greek)
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/el/
2025-05-07 00:01:45 +02:00
7570dad1b5 chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-05-03 14:01:45 +00:00
2f8b889849 chore(i18n): Translated using Weblate (Croatian)
Currently translated at 71.6% (296 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-05-02 00:01:52 +00:00
5eb2457c36 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-05-02 00:01:50 +00:00
52c6e09917 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 38.4% (159 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-04-30 06:04:55 +02:00
8bfc93b948 chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2025-04-30 06:04:54 +02:00
5b09123feb chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2025-04-30 06:04:54 +02:00
2334e4d800 chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-04-30 06:04:53 +02:00
6bf812f9bf chore(i18n): Translated using Weblate (Italian)
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2025-04-30 06:04:52 +02:00
b0cd8332fc chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2025-04-29 05:44:54 +02:00
73f7164584 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 34.8% (144 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-04-29 04:22:55 +02:00
2117bc830c chore(i18n): Translated using Weblate (Filipino)
Currently translated at 87.8% (363 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fil/
2025-04-29 04:22:55 +02:00
cd5e7ef646 chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2025-04-29 04:22:55 +02:00
0eecd4b6a5 chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-04-29 04:22:55 +02:00
407f01aa19 chore(i18n): Translated using Weblate (English)
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/en/
2025-04-29 04:22:54 +02:00
0d3fb0400f chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2025-04-28 03:02:57 +02:00
6d46024f42 chore(i18n): Translated using Weblate (Croatian)
Currently translated at 37.0% (153 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-04-28 03:02:57 +02:00
c8812d8ab6 chore(i18n): Translated using Weblate (Bulgarian)
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bg/
2025-04-28 03:02:56 +02:00
2819740429 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-04-28 03:02:56 +02:00
e1b20baf4d chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2025-04-28 03:02:55 +02:00
25d02154ed chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-04-28 03:02:55 +02:00
8f59b78059 chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2025-04-28 03:02:55 +02:00
46c32b18a0 chore(i18n): Translated using Weblate (Italian)
Currently translated at 99.7% (412 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2025-04-28 03:02:55 +02:00
3eb6ba2499 chore(i18n): Translated using Weblate (Greek)
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/el/
2025-04-28 03:02:55 +02:00
9208547881 fix(deps): update dependency es-hangul to v2.3.3 (#3293)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-27 15:49:56 +09:00
8bfcd4a139 fix(music-together): fix event order 2025-04-27 06:57:35 +09:00
00041fd146 fix(music-together): fix reconnect logic 2025-04-27 06:05:59 +09:00
98feeed7eb Update changelog for v3.9.0 2025-04-26 19:43:29 +00:00
2e33bc8f96 Bump version to 3.9.0 2025-04-27 04:26:17 +09:00
0d6da0681a chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (413 of 413 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2025-04-26 21:25:35 +02:00
1c76415846 feat(performance-improvement): added "performance improvement" plugin 2025-04-27 04:23:48 +09:00
a3d620ba52 chore(i18n): Translated using Weblate (Bosnian)
Currently translated at 15.3% (63 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bs/
2025-04-26 20:39:24 +02:00
82bf407323 fix: rollback electron version to v34 (for fix #3216) 2025-04-27 03:17:53 +09:00
d83556e9fa feat(tuna-obs): added alternativeTitle and tags to tuna (#3288)
thanks to 3206
2025-04-27 02:37:16 +09:00
f70ae4f7c4 fix(synced-lyrics): fix #3157 2025-04-27 02:35:34 +09:00
268e7be15d fix(api-server): disable api-server as default 2025-04-27 02:30:21 +09:00
accd2bf350 fix(music-together): set connection as reliable, add retry logic 2025-04-27 02:19:01 +09:00
58cf1a543d Update changelog for v3.8.1 2025-04-25 14:30:19 +00:00
183461a968 Bump version to 3.8.1 2025-04-25 23:13:32 +09:00
4fe0fb9845 chore(i18n): Translated using Weblate (Malayalam)
Currently translated at 5.1% (21 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ml/
2025-04-25 16:11:41 +02:00
0e5e1b8700 chore(i18n): Translated using Weblate (Serbian)
Currently translated at 0.7% (3 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-04-25 16:11:41 +02:00
1ab1c86909 chore(i18n): Translated using Weblate (Kannada)
Currently translated at 0.7% (3 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/kn/
2025-04-25 16:11:41 +02:00
5e0f03dcd3 chore(i18n): Translated using Weblate (Tamil)
Currently translated at 98.7% (406 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ta/
2025-04-25 16:11:40 +02:00
d4b5778fdd chore(deps): update dependency glob to v11.0.2 (#3283)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 23:04:39 +09:00
943b806bbb fix(deps): update dependency i18next to v25.0.1 (#3284)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 23:04:29 +09:00
a5d6c32f77 chore(deps): update dependency typescript-eslint to v8.31.0 (#3286)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 23:04:21 +09:00
4efa243ed0 chore(deps): update dependency discord-api-types to v0.38.1 (#3285)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 23:04:13 +09:00
8d09f27c59 fix(deps): update dependency youtubei.js to v13.4.0 (#3287)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 23:03:48 +09:00
47a2cde673 fix(deps): update dependency zod to v3.24.3 (#3250)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 22:38:56 +09:00
67051bb5ce chore(deps): update dependency vite to v6.3.3 (#3251)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 22:38:31 +09:00
233f6dbdea fix(deps): update dependency @hono/zod-openapi to v0.19.5 (#3258)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 22:36:47 +09:00
2c7a46240d chore(deps): update dependency vite-plugin-inspect to v11.0.1 (#3259)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 22:36:33 +09:00
e0edc0c1dd chore(deps): update dependency esbuild to v0.25.3 (#3282)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 22:35:30 +09:00
2001fb9254 chore(deps): update eslint monorepo to v9.25.1 (#3260)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 22:33:32 +09:00
206efaa7f7 chore(deps): update dependency electron to v35.2.1 (#3281)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 22:31:39 +09:00
8bb1d63cb0 chore(deps): update playwright monorepo to v1.52.0 (#3256)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 22:29:41 +09:00
841de026ce chore(deps): update dependency eslint-import-resolver-typescript to v4.3.4 (#3273)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 22:27:39 +09:00
6fac8b409e fix: fix cuted "j" and glow in lyrics (#3277)
* fix cuted "j" and glow in lyrics

* added comment in glow lyrics fix
2025-04-25 22:27:29 +09:00
b5ce1f566d chore(i18n): Translated using Weblate (Croatian)
Currently translated at 4.3% (18 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-04-24 16:02:22 +00:00
8bb4f4426f chore(i18n): Translated using Weblate (Greek)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/el/
2025-04-24 16:02:21 +00:00
c962d60c6d chore(i18n): Translated using Weblate (Greek)
Currently translated at 62.2% (256 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/el/
2025-04-23 17:01:43 +02:00
1d29e6be1a chore(i18n): Translated using Weblate (Georgian)
Currently translated at 21.8% (90 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ka/
2025-04-22 11:01:45 +02:00
970205954b chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 35.2% (145 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-04-22 11:01:44 +02:00
89fe072c0e chore(i18n): Translated using Weblate (Bulgarian)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bg/
2025-04-22 11:01:43 +02:00
93d68a94a3 chore(deps): update dependency electron to v35.2.0 (#3263)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-21 15:39:02 +09:00
f7afe1b994 chore(i18n): Translated using Weblate (Tamil)
Currently translated at 98.7% (406 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ta/
2025-04-21 01:01:45 +02:00
5507f1acee chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 34.7% (143 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-04-21 01:01:44 +02:00
d513302a9a fix(unobtrusive-player): handle shuffle play (#3247) 2025-04-16 23:18:14 +09:00
f31351be9c fix(deps): update dependency @ghostery/adblocker-electron to v2.5.1 (#3238)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-16 23:16:25 +09:00
99fdd027c3 chore(deps): update dependency vite to v6.3.0 (#3248)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-16 23:16:15 +09:00
0b143ec3a2 chore(deps): update dependency typescript-eslint to v8.30.1 (#3234)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-16 23:13:28 +09:00
588992f84b fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.5.1 (#3239)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-16 23:13:03 +09:00
7306b0bc4e fix(deps): update dependency i18next to v25 (#3243)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-16 23:12:45 +09:00
9365f6edbc fix(deps): update dependency hono to v4.7.7 (#3245)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-16 23:12:31 +09:00
2c94cc760a chore(deps): update dependency vite to v6.2.6 (#3189)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-16 23:12:21 +09:00
53193cda98 feat(Synced-Lyrics): Also search for lyrics with the original title language (#3206)
* Add tags array for song info

* Implement original title and original artist search for LRCBLib

* comment cleanup

* Check if microformat.tags is an array
2025-04-16 23:12:04 +09:00
5853523074 chore(deps): update dependency eslint-config-prettier to v10.1.2 (#3219)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-13 14:57:31 +09:00
3a18eb8097 chore(deps): update dependency discord-api-types to v0.37.120 (#3221)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-13 14:57:23 +09:00
042a7df771 fix(deps): update dependency @hono/node-server to v1.14.1 (#3223)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-13 14:57:15 +09:00
5c2a6598b9 chore(deps): update dependency vite to v6.2.6 [security] (#3224)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-13 14:57:00 +09:00
2e4e9faf53 chore(deps): update dependency rollup to v4.40.0 (#3227)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-13 14:56:50 +09:00
a581ddf80d fix(mpris): keep MPRIS volume in sync with the actual volume (#3226) 2025-04-13 14:56:36 +09:00
500f770da8 chore(i18n): Translated using Weblate (Bosnian)
Currently translated at 5.5% (23 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bs/
2025-04-12 21:06:01 +02:00
7cfe93312f chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2025-04-12 21:06:00 +02:00
f4bc90bf2d fix(deps): update dependency @hono/zod-openapi to v0.19.4 (#3215)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-10 07:24:49 +09:00
587fcdf23a chore(deps): update dependency electron to v35.1.5 (#3218)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-10 07:24:35 +09:00
c375e73781 chore(i18n): Translated using Weblate (Malayalam)
Currently translated at 5.1% (21 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ml/
2025-04-09 04:40:53 +02:00
8cf045b450 fix(deps): update dependency hono to v4.7.6 (#3217)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-08 23:46:52 +09:00
e91f2d386d docs: add Portuguese README translation and update language shortcuts (#3192)
- Added README-pt.md with the Portuguese translation
- Updated README-(fr,hu,is,ko,ru,es).md and README.md to include the shortcut for the new language
2025-04-08 23:41:43 +09:00
505465e745 chore(i18n): Added translation using Weblate (Malayalam) 2025-04-08 10:19:45 +02:00
662d3af81b chore(i18n): Translated using Weblate (Hindi)
Currently translated at 34.7% (143 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-04-08 10:19:43 +02:00
fef3b63581 fix: custom Video/Audio switcher in Plugins menu (#3174)
Related to #3167

Update `setVideoState` function and `switchButtonDiv` event listener to handle transition back to audio mode.

* **Update `setVideoState` function**
  - Correctly handle the transition back to audio mode.
  - Update the `hideVideo` property in the plugin configuration.
  - Use `this.config` instead of `config` to set options and update checkbox state.

---

For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/th-ch/youtube-music/issues/3167?shareId=XXXX-XXXX-XXXX-XXXX).
2025-04-08 07:46:51 +09:00
0d3311ff5d chore(deps): update dependency typescript-eslint to v8.29.1 (#3214)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-08 07:38:13 +09:00
7370b56767 chore(deps): update eslint monorepo to v9.24.0 (#3195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-08 07:34:10 +09:00
c0f3f136bb chore(deps): update dependency typescript to v5.8.3 (#3196)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-08 07:30:51 +09:00
62c2dcba95 chore(deps): update dependency vite to v6.2.5 [security] (#3194)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-08 07:30:39 +09:00
3e1abd984f fix(deps): update dependency node-id3 to v0.2.9 (#3191)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-08 07:29:04 +09:00
b689ba272b chore(deps): update dependency electron to v35.1.4 (#3184)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-08 07:28:39 +09:00
2775063cc8 chore(deps): update dependency eslint-plugin-prettier to v5.2.6 (#3182)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-08 07:27:52 +09:00
d557d1cbf0 chore(deps): update dependency eslint-import-resolver-typescript to v4.3.2 (#3208)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-08 07:25:09 +09:00
e965ac2004 chore(i18n): Translated using Weblate (Bulgarian)
Currently translated at 79.5% (327 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bg/
2025-04-07 13:01:45 +02:00
a1a0705c07 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 98.0% (403 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-04-07 13:01:44 +02:00
29dfef1518 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-04-07 13:01:43 +02:00
2c5b09e488 chore(i18n): Translated using Weblate (Japanese)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2025-04-07 13:01:42 +02:00
5a2b5ae522 chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2025-04-05 15:01:42 +02:00
5dc3b09b7b chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-04-05 15:01:41 +02:00
1a1a764d64 docs: add Japanese README (#3180)
I created Japanese translated README.
2025-04-04 22:21:37 +09:00
fc47c9f590 chore(i18n): Translated using Weblate (Swedish)
Currently translated at 21.4% (88 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sv/
2025-04-02 23:58:32 +02:00
470bc761ef chore(i18n): Translated using Weblate (Dutch)
Currently translated at 99.5% (409 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-04-02 23:58:32 +02:00
a60dde2bdb chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-04-02 23:58:31 +02:00
8b1332ee38 chore(i18n): Translated using Weblate (Bosnian)
Currently translated at 3.4% (14 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bs/
2025-04-02 21:09:11 +02:00
12eb7c7d9b chore(i18n): Translated using Weblate (Hindi)
Currently translated at 34.3% (141 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-04-02 21:09:11 +02:00
aecac6be6c chore(i18n): Translated using Weblate (Swedish)
Currently translated at 20.6% (85 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sv/
2025-04-02 21:09:11 +02:00
44913173eb chore(i18n): Translated using Weblate (Bulgarian)
Currently translated at 62.5% (257 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bg/
2025-04-02 21:09:11 +02:00
2829108e32 chore(i18n): Translated using Weblate (Bulgarian)
Currently translated at 62.5% (257 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bg/
2025-04-02 21:09:03 +02:00
0eb10017c9 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 97.8% (402 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-04-02 21:09:02 +02:00
c36745e79b chore(deps): update dependency node-gyp to v11.2.0 (#3177)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-02 22:08:47 +09:00
e33269bce6 chore(deps): update dependency rollup to v4.39.0 (#3179)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-02 22:08:36 +09:00
7c4894a5f3 chore(i18n): Translated using Weblate (Persian)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2025-04-02 07:00:03 +02:00
84e3cf895f chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-04-02 03:41:57 +02:00
9d7281179b chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 97.5% (401 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-04-02 02:22:17 +02:00
85c0995323 chore(i18n): Translated using Weblate (Finnish)
Currently translated at 75.1% (309 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fi/
2025-04-01 21:35:06 +02:00
21990e71db chore(i18n): Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/
2025-04-01 18:57:47 +02:00
9d99ff4095 chore(i18n): Translated using Weblate (Estonian)
Currently translated at 22.3% (92 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/et/
2025-04-01 18:57:46 +02:00
075fcde92a chore(i18n): Translated using Weblate (Bulgarian)
Currently translated at 36.0% (148 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bg/
2025-04-01 18:57:46 +02:00
e654b7e695 chore(i18n): Translated using Weblate (Bosnian)
Currently translated at 2.9% (12 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bs/
2025-04-01 16:18:59 +02:00
df78d13076 chore(i18n): Translated using Weblate (Sinhala)
Currently translated at 10.4% (43 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/si/
2025-04-01 16:18:58 +02:00
7bc24116da chore(i18n): Translated using Weblate (Croatian)
Currently translated at 2.1% (9 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-04-01 16:18:58 +02:00
3225cfe5dd chore(i18n): Added translation using Weblate (Bosnian) 2025-04-01 12:09:28 +02:00
9de8bfcdc4 chore(i18n): Translated using Weblate (Sinhala)
Currently translated at 10.2% (42 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/si/
2025-04-01 12:09:27 +02:00
ab01c80a13 chore(i18n): Translated using Weblate (Indonesian)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/id/
2025-04-01 12:09:27 +02:00
b6fb3d6316 chore(i18n): Translated using Weblate (Japanese)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2025-04-01 12:09:27 +02:00
6287d10a82 chore(i18n): Translated using Weblate (German)
Currently translated at 99.7% (410 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-04-01 12:09:26 +02:00
ed79631d66 chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 24.8% (102 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-04-01 04:30:21 +02:00
b7f607bdbd chore(deps): update dependency typescript-eslint to v8.29.0 (#3169)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-01 09:02:07 +09:00
546c89e175 chore(i18n): Translated using Weblate (Finnish)
Currently translated at 73.9% (304 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fi/
2025-03-31 18:00:41 +02:00
486a43f4b7 chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2025-03-31 18:00:40 +02:00
8d51137a18 chore(i18n): Translated using Weblate (Turkish)
Currently translated at 99.7% (410 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2025-03-31 18:00:40 +02:00
cf67540a1f chore(i18n): Translated using Weblate (Italian)
Currently translated at 99.7% (410 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2025-03-31 18:00:40 +02:00
edad53e989 fix(downloader): allow downloads for signed out users (#3145)
* fix(downloader): allow downloads for signed out users

* refactor(downloader): use yt.config_.LOGGED_IN for checking sign in status

* Apply suggestions from code review

---------

Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-03-31 22:48:14 +09:00
cc6c0bdff1 fix(README): Fixed typos in some hyperlinks (#3158)
* Update README-es.md

* Update README-fr.md

* Update README-hu.md

* Update README-is.md

* Update README-ko.md

* Update README-ru.md

* Update README.md
2025-03-31 22:28:15 +09:00
dbdc3c60a5 chore(i18n): Translated using Weblate (Dutch)
Currently translated at 99.5% (409 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-03-31 14:12:30 +02:00
db4134f40d chore(deps): update dependency vite to v6.2.4 (#3124) 2025-03-31 20:07:52 +09:00
21c3e6a5f2 chore(deps): update dependency eslint-import-resolver-typescript to v4.3.1 (#3151) 2025-03-31 20:01:59 +09:00
e5b4ba9f15 chore(deps): update dependency rollup to v4.38.0 (#3154) 2025-03-31 20:01:33 +09:00
8a51468671 chore(deps): update dependency esbuild to v0.25.2 (#3160) 2025-03-31 20:01:19 +09:00
083403bf80 chore(i18n): Added translation using Weblate (Serbian) 2025-03-31 11:17:33 +02:00
886f3203e0 chore(i18n): Translated using Weblate (Arabic)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2025-03-31 05:45:20 +02:00
253fe0055f chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-03-31 05:45:20 +02:00
6637f6a0da chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-03-31 05:45:19 +02:00
f7e359a740 chore(i18n): Added translation using Weblate (Kannada) 2025-03-30 20:33:50 +02:00
3c88d171ab chore(i18n): Translated using Weblate (Sinhala)
Currently translated at 9.7% (40 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/si/
2025-03-30 20:33:49 +02:00
8e27be48c6 chore(i18n): Translated using Weblate (Thai)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/th/
2025-03-30 20:33:49 +02:00
700b2a3669 chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2025-03-28 06:22:46 +01:00
329327d491 chore(i18n): Translated using Weblate (French)
Currently translated at 99.7% (410 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-03-28 06:22:46 +01:00
829a06db5a chore(deps): update dependency electron to v35.1.2 (#3147)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-28 09:27:03 +09:00
98b4053a3a chore(i18n): Translated using Weblate (Urdu)
Currently translated at 25.3% (104 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ur/
2025-03-27 15:01:59 +00:00
d340828da7 chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2025-03-27 15:01:58 +00:00
fb18f26964 chore(i18n): Translated using Weblate (Filipino)
Currently translated at 87.8% (361 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fil/
2025-03-27 15:01:58 +00:00
b37fee1e1b chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-03-27 15:01:57 +00:00
fb2c4f0a09 chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2025-03-27 15:01:56 +00:00
d58897ba4c chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-03-27 15:01:54 +00:00
c30fbe41a6 chore(i18n): Translated using Weblate (Italian)
Currently translated at 99.7% (410 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2025-03-27 15:01:53 +00:00
5a7daaf2f6 chore(i18n): Translated using Weblate (Greek)
Currently translated at 61.3% (252 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/el/
2025-03-27 15:01:52 +00:00
61c0217b8f chore(deps): update dependency electron to v35.1.1 (#3143)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-27 13:33:58 +09:00
d5ea182a50 chore(deps): update dependency eslint-import-resolver-typescript to v4.2.5 (#3144)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-27 13:33:51 +09:00
33133de7c7 chore(deps): update dependency @types/semver to v7.7.0 (#3141)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-27 05:35:56 +09:00
b544e18cea fix(deps): update dependency electron-updater to v6.6.2 (#3142)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-27 03:40:37 +09:00
808f802efd Update changelog for v3.8.0 2025-03-26 12:09:00 +00:00
8e21a10214 Bump version to 3.8.0 2025-03-26 20:51:20 +09:00
f787c2cc80 chore(deps): update dependency typescript-eslint to v8.28.0 (#3128)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-26 20:47:08 +09:00
ebf91f0977 chore(deps): update dependency eslint-plugin-prettier to v5.2.5 (#3123)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-26 20:45:53 +09:00
cae6d858fa fix(deps): update dependency @hono/node-server to v1.14.0 (#3131)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-26 20:45:09 +09:00
37f3e9ce89 chore(deps): update dependency electron to v35.1.0 (#3136)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-26 20:44:36 +09:00
f350fd7aae fix(deps): update dependency es-hangul to v2.3.2 (#3138)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-26 20:44:23 +09:00
67b001c6a0 chore(deps): update dependency eslint-import-resolver-typescript to v4.2.4 (#3135)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-26 20:44:10 +09:00
ccbe5da684 chore(deps): update eslint monorepo to v9.23.0 (#3130)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-26 20:41:07 +09:00
e3e5ae3a7f chore(deps): update dependency electron-vite to v3.1.0 (#3137)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-26 20:40:43 +09:00
972c3dba2f chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (411 of 411 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2025-03-26 12:37:47 +01:00
b61151b2bd chore(deps): update dependency @babel/runtime to v7.27.0 (#3127)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-26 20:34:32 +09:00
4b35a96778 feat(synced-lyrics): romanization (#2790)
* feat(synced-lyrics): init romanization!

* remove debug logs and add TODO

* feat(synced-lyrics/romanization): Mandarin!

* feat(synced-lyrics/romanization): improve japanese detection

* feat(synced-lyrics/romanization): Korean!

* qol(synced-lyrics/romanization): canonicalize punctuation and symbols

* feat(synced-lyrics/romanization): handle japanese+korean and korean+chinese lyrics

* revert formatting on electron.vite.config.mts

* feat(synced-lyrics/romanization): romanize plain lyrics

* apply fix by @kimjammer

* fix lockfile due to rebase

* feat(synced-lyrics): improve lyric processing and formatting;

* feat(synced-lyrics/romanization): add option to enable/disable romanization

* chore: move default value for --lyrics-duration to the declaration

* update lockfile

* fix: improvement

1. improved language detection logic
2. changed code to work in the renderer process

* fix: fix regression (canonicalize)

---------

Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-03-26 20:29:43 +09:00
19fd0d61c6 feat(plugin): add unobtrusive player plugin (#3104)
* feat(plugin): add unobtrusive player plugin

* fix(plugin): add removeEventListener once unobtrusive-player is disabled

* feat(plugin): prevent player page button animation when changing song

* fix(plugin): add removeEventListener for videodatachange once unobtrusive-player is disabled
2025-03-26 19:36:42 +09:00
77779938b9 chore(deps): update dependency vite to v6.2.3 [security] (#3134)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-26 13:24:04 +09:00
bb06d71fbb fix(deps): update dependency youtubei.js to v13.3.0 (#3133)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-26 13:22:11 +09:00
3cf955179d chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (407 of 407 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2025-03-25 13:11:19 +01:00
606dd5a679 chore(deps): update dependency electron-builder-squirrel-windows to v26.0.12 (#3122)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-24 13:26:42 +09:00
31fe07ebd4 chore(deps): update dependency eslint-import-resolver-typescript to v4.2.2 (#3106)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-24 13:23:50 +09:00
d456d0db89 chore(deps): update dependency electron-builder to v26.0.12 (#3121)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-24 13:23:30 +09:00
Tix
e00c357fae fix: Discord Rich Presence Fix (#3074)
* discord presence fix

* Update src/plugins/discord/main.ts

Co-authored-by: JellyBrick <shlee1503@naver.com>

* variable length support

---------

Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-03-24 13:20:50 +09:00
21b54ef6ff fix(deps): update dependency @xhayper/discord-rpc to v1.2.1 (#3107)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-24 13:20:21 +09:00
f96b650787 chore(deps): update dependency typescript-eslint to v8.27.0 (#3111)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-24 13:19:01 +09:00
ebbbf2a6b9 chore(deps): update dependency electron to v35.0.3 (#3112)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-24 13:18:54 +09:00
610ad59fdc fix(deps): update dependency hono to v4.7.5 (#3113)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-24 13:18:46 +09:00
4fe302d753 fix(deps): update dependency fast-average-color to v9.5.0 (#3114)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-24 13:18:38 +09:00
5983ae47bb chore(deps): update dependency rollup to v4.37.0 (#3103)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-24 13:18:28 +09:00
4442fc12ec chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 22.3% (91 of 407 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-03-23 21:15:39 +01:00
b42de1c458 chore(i18n): Translated using Weblate (Swedish)
Currently translated at 19.9% (81 of 407 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sv/
2025-03-22 16:28:39 +01:00
eec5a2352e chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (407 of 407 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-03-22 16:28:38 +01:00
303de7c0aa chore(i18n): Translated using Weblate (Italian)
Currently translated at 99.5% (405 of 407 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2025-03-22 04:41:58 +01:00
4bc57c2628 chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (407 of 407 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-03-19 17:35:05 +01:00
c74505ac90 chore(deps): update playwright monorepo to v1.51.1 (#3105)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-18 13:19:35 +09:00
7a3a803d72 chore(deps): update dependency eslint-import-resolver-typescript to v4 (#3102)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-18 13:19:18 +09:00
fec010c73f chore(i18n): Translated using Weblate (Georgian)
Currently translated at 20.1% (82 of 407 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ka/
2025-03-18 04:51:11 +01:00
b093cc2c08 chore(deps): update dependency electron to v35.0.2 (#3099)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-17 03:16:38 +09:00
cb3cd74e9e fix(deps): update dependency i18next to v24.2.3 (#3100)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-17 03:14:01 +09:00
ae5b8038b2 chore(deps): update dependency electron-builder to v26.0.11 (#3095)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-17 03:13:28 +09:00
5f93c96901 chore(deps): update dependency @babel/runtime to v7.26.10 [security] (#3094)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-17 03:04:02 +09:00
ec81ac5e40 chore(deps): update dependency eslint-config-prettier to v10.1.1 (#3069)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-17 03:03:52 +09:00
8901a7768d chore(deps): update playwright monorepo to v1.51.0 (#3065)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-17 03:03:43 +09:00
22f14cce3e chore(deps): update dependency electron-builder-squirrel-windows to v26.0.11 (#3096)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-17 03:03:32 +09:00
4afb2276c1 chore(deps): update dependency esbuild to v0.25.1 (#3097)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-17 03:03:23 +09:00
77658035f5 chore(deps): update dependency typescript-eslint to v8.26.1 (#3098)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-17 03:03:12 +09:00
07aa9d5811 chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (407 of 407 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-03-16 02:48:57 +01:00
7764bcabde chore(i18n): Translated using Weblate (Indonesian)
Currently translated at 100.0% (407 of 407 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/id/
2025-03-15 23:23:53 +01:00
69058a52ed chore(deps): update eslint monorepo to v9.22.0 (#3070)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-16 02:49:55 +09:00
1f7acbd219 chore(deps): update dependency rollup to v4.35.0 (#3071)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-16 02:49:41 +09:00
88dfaa98f3 chore(deps): update dependency electron to v35.0.1 (#3075)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-16 02:49:05 +09:00
504829f065 fix(deps): update dependency happy-dom to v17.4.4 (#3068)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-16 02:48:49 +09:00
e4e6dcb0cd chore(deps): update dependency vite to v6.2.2 (#3067)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-16 02:48:34 +09:00
78010793fb fix: Update winget-releaser version to main (#3091) 2025-03-16 02:45:10 +09:00
bcdd24d74b feat: Allow scrobbling using alternative song titles (#3093) 2025-03-16 02:42:58 +09:00
2d86d26701 chore(i18n): Translated using Weblate (Indonesian)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/id/
2025-03-14 06:19:21 +01:00
77ca2b483f chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-03-14 06:19:21 +01:00
13c71e8904 chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 98.0% (398 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-03-14 01:14:08 +01:00
3bfb853414 chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 98.0% (398 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-03-13 23:53:15 +01:00
25454689c0 chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 98.0% (398 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-03-13 20:14:57 +01:00
Tux
dd3e42c41e chore(i18n): Translated using Weblate (Swedish)
Currently translated at 14.2% (58 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sv/
2025-03-13 12:27:52 +01:00
499ae2422c chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 98.0% (398 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-03-13 12:27:52 +01:00
a3601cece6 chore(i18n): Translated using Weblate (Tamil)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ta/
2025-03-13 05:49:12 +01:00
8168666720 chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 98.0% (398 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-03-13 03:08:32 +01:00
9f580a1d7d chore(i18n): Translated using Weblate (Bulgarian)
Currently translated at 25.8% (105 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bg/
2025-03-12 18:59:47 +01:00
f8765fbdbb chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 98.0% (398 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-03-12 18:59:47 +01:00
2922a457cd chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 95.3% (387 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-03-12 09:50:43 +01:00
c2e4c32745 chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 95.3% (387 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-03-12 03:04:16 +01:00
5071183550 chore(i18n): Translated using Weblate (Nepali)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ne/
2025-03-11 09:51:11 +01:00
db736bcb23 chore(i18n): Translated using Weblate (Finnish)
Currently translated at 72.4% (294 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fi/
2025-03-10 15:36:08 +01:00
fb29d62cf1 chore(i18n): Added translation using Weblate (Tamil) 2025-03-09 15:41:59 +01:00
28f5185d38 chore(i18n): Translated using Weblate (French)
Currently translated at 99.7% (405 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-03-07 21:51:42 +01:00
c9178985f2 chore(i18n): Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/
2025-03-07 08:00:03 +01:00
297b94bdab chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.5% (400 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2025-03-07 08:00:02 +01:00
dbf8b1c5c5 chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-03-06 23:04:01 +01:00
cec6339f9a chore(i18n): Translated using Weblate (Hindi)
Currently translated at 33.9% (138 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-03-06 14:02:43 +01:00
e7edf30717 chore(deps): update dependency electron-builder-squirrel-windows to v26.0.10 (#3054)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-06 11:37:54 +09:00
441be69ca5 chore(deps): update dependency typescript-eslint to v8.26.0 (#3056)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-06 07:12:00 +09:00
2199391ec1 fix(deps): update dependency hono to v4.7.4 (#3062)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-06 07:11:51 +09:00
f43daa3805 chore(deps): update dependency electron-builder to v26.0.10 (#3053)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-06 07:11:24 +09:00
b4dc2ca88f chore(deps): update dependency electron to v35 (#3058)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-05 08:55:02 +09:00
4aae0d89cd fix(deps): update dependency happy-dom to v17.2.2 (#3060)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-05 08:53:38 +09:00
7c1eec03a5 fix(deps): update dependency happy-dom to v17.1.13 (#3057)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-05 08:50:09 +09:00
06aaba0c7f chore(i18n): Translated using Weblate (Arabic)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2025-03-04 17:02:32 +01:00
766268d9e4 chore(deps): update dependency typescript to v5.8.2 (#3040)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-03 22:48:37 +09:00
a7f47001c6 chore(deps): update dependency rollup to v4.34.9 (#3043)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-03 22:42:29 +09:00
104850e9b0 fix(deps): update dependency @hono/swagger-ui to v0.5.1 (#3045)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-03 22:42:15 +09:00
3139beec91 fix: added French link in general README file (#3047)
* fix: updated readme with fr link in general readme

* fix: updated all the other README files
2025-03-03 22:42:00 +09:00
30bc676fd2 fix(deps): update dependency @hono/zod-openapi to v0.19.2 (#3046)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-03 22:34:33 +09:00
c2cf5992f8 chore(deps): update dependency @stylistic/eslint-plugin-js to v4.2.0 (#3050)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-03 22:34:06 +09:00
50b265c3ea fix(deps): update dependency bgutils-js to v3.2.0 (#3049)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-03 18:04:16 +09:00
b6cf7070bf chore(i18n): Translated using Weblate (Arabic)
Currently translated at 72.1% (293 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2025-03-03 08:06:51 +01:00
06f20cc84c chore(i18n): Translated using Weblate (French)
Currently translated at 99.5% (404 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-03-03 08:06:50 +01:00
7453a5a06c chore(i18n): Translated using Weblate (French)
Currently translated at 99.5% (404 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-03-03 08:06:50 +01:00
de1ccd80fc chore(i18n): Translated using Weblate (Arabic)
Currently translated at 57.3% (233 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2025-03-02 16:34:17 +01:00
d1ee480452 chore(i18n): Translated using Weblate (Sinhala)
Currently translated at 12.0% (49 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/si/
2025-03-02 03:05:01 +01:00
c8397e4fb4 Update changelog for v3.7.5 2025-02-28 15:29:05 +00:00
65bcf20f97 Bump version to 3.7.5 2025-03-01 00:13:14 +09:00
1a214140fb chore(deps): update dependency builtin-modules to v5 (#3038)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-01 00:12:42 +09:00
ffdf7ac5a8 fix: remove unused deps (@types/eslint__js) 2025-03-01 00:07:08 +09:00
c8bb1f386d chore(deps): update deps 2025-03-01 00:04:00 +09:00
457e1bb48e chore(deps): update dependency electron-builder to v26.0.9 2025-03-01 00:01:57 +09:00
c1177adc08 Update package.json 2025-02-28 23:55:40 +09:00
cd976ee500 Delete patches/app-builder-lib@26.0.6.patch 2025-02-28 23:55:11 +09:00
b856884bba chore(deps): update dependency typescript-eslint to v8.25.0 (#2953)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-28 23:45:25 +09:00
2df8e58773 fix(deps): update dependency happy-dom to v17.1.8 (#3001)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-28 23:44:58 +09:00
da8e0106f6 chore(deps): update dependency eslint-config-prettier to v10.0.2 (#3035)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-28 23:44:43 +09:00
b0b2005e1c chore(deps): update dependency @electron/universal to v2.0.2 (#3034)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-28 23:44:24 +09:00
5817d9c3ae chore(deps): update dependency @stylistic/eslint-plugin-js to v4 (#2950)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-28 23:43:13 +09:00
08f9187cdf chore(deps): update dependency electron-builder-squirrel-windows to v26.0.9 (#2930)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-28 23:42:38 +09:00
49ac17a40e fix(no-google-login): Remove Library icon removal code (#3010) 2025-02-28 23:42:05 +09:00
Dvd
b1c4b04ebf fix: Updated tray pause icon for consistency (#3025) 2025-02-28 23:41:43 +09:00
10b8066126 chore(deps): update dependency eslint-import-resolver-typescript to v3.8.3 (#2992)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-28 23:31:55 +09:00
d86e454d3f fix(deps): update dependency hono to v4.7.2 (#2999)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-28 23:31:40 +09:00
4ea8fa2561 fix: Filter for only MusicResponsiveListItem in playlist items (#3022) 2025-02-28 23:25:01 +09:00
dbea4c5884 fix(deps): update dependency youtubei.js to v13.1.0 (#3015) 2025-02-28 23:20:46 +09:00
7d4e949f0c chore(i18n): Translated using Weblate (Danish)
Currently translated at 32.5% (132 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/da/
2025-02-27 10:03:56 +00:00
82917e7748 chore(i18n): Added translation using Weblate (Danish) 2025-02-26 10:15:21 +01:00
7c9544a528 chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 16.0% (65 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-02-26 09:04:34 +01:00
960a20e899 chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.2% (403 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2025-02-22 14:28:49 +01:00
c9b7901681 chore(i18n): Translated using Weblate (Thai)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/th/
2025-02-19 18:02:02 +01:00
95698aaf35 chore(i18n): Translated using Weblate (Italian)
Currently translated at 99.5% (404 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2025-02-19 18:02:00 +01:00
4dc87417ff chore(i18n): Translated using Weblate (Thai)
Currently translated at 69.4% (282 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/th/
2025-02-18 17:47:14 +01:00
7510f8eb08 chore(i18n): Translated using Weblate (Arabic)
Currently translated at 39.1% (159 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2025-02-18 13:51:53 +01:00
59103df665 fix: Match engines.pnpm with the pnpm version used to create the lock files (#2995) 2025-02-18 12:14:53 +09:00
258d35e48d chore(i18n): Translated using Weblate (Czech)
Currently translated at 92.8% (377 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2025-02-17 20:29:57 +01:00
5e419489d5 Update changelog for v3.7.4 2025-02-17 15:54:12 +00:00
0d462ac3a2 HOTFIX: Bump version to 3.7.4 2025-02-18 00:37:57 +09:00
bcb94f6de8 chore(deps): update dependency rollup to v4.34.8 (#2982)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-18 00:36:54 +09:00
fe925ec8ee fix(plugin-loader): update context filtering logic for backend mode (#2990) 2025-02-18 00:35:55 +09:00
86c77d141f Update changelog for v3.7.3 2025-02-17 04:04:16 +00:00
754ca3caaa Bump version to 3.7.3 2025-02-17 12:47:57 +09:00
61ea104d7b fix(downloader): use the upgrade button to check for premium status (#2987) 2025-02-17 12:42:07 +09:00
573bdfae03 chore(deps): update dependency electron-vite to v3 (#2986)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-17 02:45:21 +09:00
cca493b7d5 fix: build performance 2025-02-17 02:44:47 +09:00
f47262d27b fix(album-color-theme): fix Color deps 2025-02-17 01:44:24 +09:00
65bf9129ea fix(action-release): bump pnpm version to v10 2025-02-16 15:22:07 +09:00
87e9b9f7a8 fix: revert some deps 2025-02-16 14:43:13 +09:00
07bc4f05fd chore(deps): update dependency @babel/runtime to v7.26.9 (#2980)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-16 14:37:52 +09:00
e3a6808087 fix: pnpm overrides 2025-02-16 14:37:22 +09:00
e9184e5d60 fix: bump deps 2025-02-16 14:30:02 +09:00
a5b32d96f8 fix(action): bump pnpm version to v10 2025-02-16 14:14:08 +09:00
040db7539c fix(deps): fix pnpm 2025-02-16 14:12:28 +09:00
da646c1d53 fix(vite): set server.cors.origin (#2981) 2025-02-16 13:23:35 +09:00
5f5917f972 chore(deps-dev): bump esbuild from 0.24.2 to 0.25.0 (#2973)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-16 00:08:47 +09:00
eccb0d2f08 fix(deps): update dependency solid-transition-group to v0.3.0 (#2949)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-15 03:50:09 +09:00
4cd9dd17df fix: remove disable-gpu-memory-buffer-video-frames flag (#2963) 2025-02-15 03:49:52 +09:00
5de07b9a96 fix(downloader): fix pmd undefined 2025-02-14 21:23:19 +09:00
151f067beb chore(i18n): Translated using Weblate (Hindi)
Currently translated at 33.2% (135 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-02-10 07:01:54 +01:00
c68a7bd19f chore(i18n): Translated using Weblate (Filipino)
Currently translated at 86.6% (352 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fil/
2025-02-10 07:01:53 +01:00
b87e5e31df chore(i18n): Translated using Weblate (Arabic)
Currently translated at 35.9% (146 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2025-02-08 21:49:42 +01:00
03229d61c8 chore(i18n): Translated using Weblate (Arabic)
Currently translated at 35.9% (146 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2025-02-08 01:01:53 +00:00
b6330eed18 fix(deps): update dependency semver to v7.7.0 (#2948)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-03 18:47:32 +09:00
b254812ac2 chore(deps): update playwright monorepo to v1.50.1 (#2943)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-03 18:45:11 +09:00
7e243e2fbf fix(deps): update dependency @hono/node-server to v1.13.8 (#2944)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-03 18:44:10 +09:00
307e52cc89 fix(deps): update dependency electron-store to v10.0.1 (#2945)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-03 18:43:45 +09:00
f7b7ea916f chore(deps): update dependency rollup to v4.34.1 (#2946)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-03 18:43:34 +09:00
3eccf8daca chore(deps): update dependency typescript-eslint to v8.22.0 (#2947)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-03 18:43:23 +09:00
aa48944212 fix(synced-lyrics): Fix reverse direction of synced lyrics for persian or other rtl languages (#2940)
Add direction auto to synced lyrics to fix reverse direction in rtl languages
2025-02-02 23:55:07 +09:00
4d51f1a412 chore(deps): update dependency electron to v34.0.2 (#2942)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-02 23:54:45 +09:00
d3c9f76582 chore(deps): update dependency discord-api-types to v0.37.119 (#2941)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-02 23:46:22 +09:00
d638a6cf28 fix(deps): update dependency hono to v4.6.20 (#2932)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-02 23:46:12 +09:00
f93651b219 chore(deps): update eslint monorepo to v9.19.0 (#2935)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-02 23:45:20 +09:00
cb8c6c69fe fix(deps): update dependency bgutils-js to v3.1.3 (#2934)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-02 23:45:10 +09:00
4e7266fb1b fix(deps): update dependency i18next to v24.2.2 (#2933)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-02 23:44:59 +09:00
8de75ff3a5 fix(deps): update dependency happy-dom to v16.8.1 (#2936)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-02 23:44:38 +09:00
3236c88eb2 chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 11.8% (48 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-01-27 18:02:51 +00:00
c9f0ad14c2 chore(deps): update dependency @babel/runtime to v7.26.7 (#2924)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:36:15 +09:00
0a9199c92b chore(config): migrate renovate config (#2925)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:36:04 +09:00
3ffcff7d9c fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.5.0 (#2923)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:27:46 +09:00
ddf614d362 fix(deps): update dependency @ghostery/adblocker-electron to v2.5.0 (#2922)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:21:45 +09:00
6f1a77bbb9 chore(deps): update playwright monorepo to v1.50.0 (#2921)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:21:33 +09:00
8595f9761e fix: pnpm patch key 2025-01-25 00:21:18 +09:00
cc442182fd chore(deps): update dependency vite-plugin-inspect to v10.1.0 (#2920)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:20:11 +09:00
b827a05eea chore(deps): update dependency rollup to v4.32.0 (#2919)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:14:57 +09:00
250abab8bc fix(deps): update dependency hono to v4.6.18 (#2918)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:14:46 +09:00
8e45518ccf fix(deps): update dependency deepmerge-ts to v7.1.4 (#2917)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:14:36 +09:00
7485e065ed chore(deps): update dependency vite to v6.0.11 (#2894)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:14:21 +09:00
c1d88f91d4 chore(deps): update dependency electron to v34.0.1 (#2916)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:14:09 +09:00
124a2bd8d0 fix: pnpm patch 2025-01-25 00:13:55 +09:00
f8f94f9665 Rename app-builder-lib@26.0.0-alpha.9.patch to app-builder-lib@26.0.0-alpha.10.patch 2025-01-25 00:13:15 +09:00
5e98a82b23 chore(deps): update dependency electron-builder-squirrel-windows to v26.0.0-alpha.10 (#2899)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:12:48 +09:00
a5c20a66b3 chore(deps): update dependency electron-builder to v26.0.0-alpha.10 (#2898)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:07:25 +09:00
cc84116ad1 chore(deps): update dependency typescript-eslint to v8.21.0 (#2901)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:06:16 +09:00
a2e2031708 chore(deps): update dependency discord-api-types to v0.37.117 (#2895)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:05:46 +09:00
5001eabf23 fix(deps): update dependency youtubei.js to v13 (#2904)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:05:14 +09:00
aac2974430 chore(deps): update dependency vite to v6.0.9 [security] (#2907)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:04:50 +09:00
f7f005bb3d fix(deps): update dependency happy-dom to v16.7.2 (#2902)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-25 00:02:58 +09:00
e1f6d5b7f2 fix(discord-plugin): handle album name padding if length < 2 (#2903) 2025-01-25 00:02:38 +09:00
b6b607897e feat(navigation): added nav icon padding (#2905) 2025-01-25 00:02:24 +09:00
651ebb2b1a chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 97.7% (397 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2025-01-23 22:01:53 +01:00
9fa24deed2 chore(i18n): Translated using Weblate (Indonesian)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/id/
2025-01-23 22:01:52 +01:00
c81022d373 chore(i18n): Translated using Weblate (Spanish)
Currently translated at 99.5% (404 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-01-23 22:01:51 +01:00
b726dc7580 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 30.7% (125 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-01-22 06:47:10 +01:00
471aa7d0a6 chore(i18n): Translated using Weblate (Persian)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2025-01-22 06:47:09 +01:00
f34d645ac3 chore(deps): update dependency rollup to v4.31.0 (#2891)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-20 11:55:56 +09:00
d2a11a560e chore(deps): update dependency eslint-plugin-prettier to v5.2.3 (#2889)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-19 22:08:46 +09:00
9d185872db chore(i18n): Translated using Weblate (Persian)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2025-01-18 15:56:20 +01:00
d0ff71aa66 chore(deps): update dependency vite-plugin-inspect to v10.0.7 (#2882)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-18 22:44:03 +09:00
bc8999585f fix(deps): update dependency hono to v4.6.17 (#2883)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-18 18:15:36 +09:00
1e1582e31f Update changelog for v3.7.2 2025-01-18 05:44:19 +00:00
2c48a0f6f4 Bump version to 3.7.2 2025-01-18 14:27:58 +09:00
368b251e3f feat(api-server): add endpoint to get shuffle state (#2792) 2025-01-18 14:23:17 +09:00
3339f997e3 fix: fix lock file 2025-01-18 14:14:18 +09:00
76e8e7aa7a fix(downloader): apply poToken
- fix #2863
- fix #2780
2025-01-18 14:12:31 +09:00
8c325b17f8 chore(deps): update dependency discord-api-types to v0.37.116 (#2877)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-18 11:50:43 +09:00
494bc0ccc7 chore(deps): update dependency eslint-plugin-prettier to v5.2.2 (#2875)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 11:41:33 +09:00
f14333d07a fix: fix pnpm 2025-01-16 11:39:14 +09:00
268ffe2d4c chore(deps): update eslint monorepo to v9.18.0 (#2858)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 11:36:27 +09:00
831eb63ace chore(deps): update dependency glob to v11.0.1 (#2857)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 11:34:08 +09:00
345f235117 chore(deps): update dependency electron-builder-squirrel-windows to v26.0.0-alpha.9 (#2874)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 11:33:49 +09:00
c6422d5d9c chore(deps): update dependency electron to v34 (#2867)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 11:33:20 +09:00
f90384386c chore(deps): update dependency eslint-config-prettier to v10 (#2866)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 11:33:01 +09:00
9213fdd4f7 chore(deps): update dependency @stylistic/eslint-plugin-js to v2.13.0 (#2864)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 11:30:54 +09:00
787c8cdceb chore(deps): update dependency typescript-eslint to v8.20.0 (#2865)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 11:30:34 +09:00
ace48bc79b chore(deps): update dependency electron-builder to v26.0.0-alpha.9 (#2869)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 11:29:54 +09:00
e5a8b7431f chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2025-01-14 02:00:41 +00:00
e37f22503b fix: fix build.linux.desktop.entry (#2859)
Co-authored-by: h-banii <h-banii@users.noreply.github.com>
2025-01-11 17:40:27 +09:00
e61757a7fc feat(api-server): add endpoint to get volume state (#2813)
* add volume getter

* format

* add volume route
2025-01-10 12:25:32 +09:00
fdc798ad87 chore(deps): update dependency vite-plugin-inspect to v10 (#2856)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 12:19:54 +09:00
6393e6348c chore(deps): update dependency typescript to v5.7.3 (#2855)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 12:17:15 +09:00
ce6e115783 fix(deps): update dependency @floating-ui/dom to v1.6.13 (#2846)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 12:14:27 +09:00
68cbaabc0c chore(deps): bump nanoid from 3.3.7 to 3.3.8 (#2854)
Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.7 to 3.3.8.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.3.7...3.3.8)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-10 12:14:05 +09:00
9911bbf509 chore(deps): update dependency electron to v33.3.1 (#2841)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 12:13:32 +09:00
553c2c1096 fix(deps): update dependency i18next to v24.2.1 (#2840)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 12:13:21 +09:00
dde57e3eb0 chore(deps): update dependency typescript-eslint to v8.19.1 (#2836)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 12:13:11 +09:00
935461f610 chore(deps): update dependency rollup to v4.30.1 (#2833)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 12:12:49 +09:00
b95da863c6 fix(deps): update dependency solid-js to v1.9.4 (#2849)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 12:12:32 +09:00
92316a999c fix(deps): update dependency fast-equals to v5.2.2 (#2842)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 12:12:21 +09:00
0ec038342c chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 11.3% (46 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-01-08 21:00:54 +01:00
4649c3bfaf chore(i18n): Translated using Weblate (Spanish)
Currently translated at 99.2% (403 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-01-08 21:00:54 +01:00
8441af2483 chore: Update README.md (#2845)
Hungarian has been added as a selectable option under [Read this in other languages].
2025-01-08 20:08:38 +09:00
63c4a9cfa7 chore: Fixing the Content section in the README-ru.md file. (#2847)
* Fixing the Content section in the README-ru.md file.

EN: I have corrected the Содержание (Content) hyperlinks, so now it is possible to jump between the main headings with a single click. The issue was that the content hyperlinks corresponded to the original language headings in the README file, so clicking on them did not lead anywhere within the README file.

RU: Я исправил гиперссылки Содержание (Content), так что теперь можно переходить между основными заголовками одним кликом. Проблема заключалась в том, что гиперссылки содержания соответствовали заголовкам README на оригинальном языке, поэтому при нажатии на них переход внутри файла README не осуществлялся.

* Fixing the Content section in the README-ru.md file.

EN: In this version, I fixed the SVG file path so that it displays properly; previously, it did not appear.

RU: В этой версии я исправил путь к файлу SVG, чтобы он отображался правильно; ранее он не отображался.

EN: I have corrected the Содержание (Content) hyperlinks, so now it is possible to jump between the main headings with a single click. The issue was that the content hyperlinks corresponded to the original language headings in the README file, so clicking on them did not lead anywhere within the README file.

RU: Я исправил гиперссылки Содержание (Content), так что теперь можно переходить между основными заголовками одним кликом. Проблема заключалась в том, что гиперссылки содержания соответствовали заголовкам README на оригинальном языке, поэтому при нажатии на них переход внутри файла README не осуществлялся.
2025-01-08 20:07:46 +09:00
4e8173360e chore: Create youtube-music-hu.svg (#2844)
HU: Az eredeti youtube-music.svg magyar változata.

EN: The Hungarian version of the original youtube-music.svg
2025-01-08 20:06:48 +09:00
4f37377d64 chore: Create Transalated README-hu.md (#2843)
* Create README-hu.md

HU: Elkészítettem a README angol változatának magyar fordítását, hogy a projekt könnyebben elérhető legyen a magyar felhasználók számára.

EN: I have created the Hungarian translation of the README's English version to make the project more accessible to Hungarian users.

* Create Transalated README-hu.md

EN: I have created the Hungarian translation of the README's English version to make the project more accessible to Hungarian users. In this version, I fixed the SVG file path so that it displays properly. (previously, it did not appear.)


HU: Elkészítettem a README angol változatának magyar fordítását, hogy a projekt könnyebben elérhető legyen a magyar felhasználók számára. Ebben a verzióban javítottam az SVG fájl elérési útját, hogy megjelenjen normálisan. (eddig nem jelent meg.)
2025-01-08 20:06:26 +09:00
0e886c0890 chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2025-01-07 18:03:50 +00:00
cb0719ecf4 chore(deps): update dependency vite to v6.0.7 (#2819)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-05 23:45:48 +09:00
d24b31cf74 chore(deps): update dependency discord-api-types to v0.37.115 (#2818)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-05 23:42:34 +09:00
610073b982 fix(deps): update dependency hono to v4.6.16 (#2829)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-05 23:42:16 +09:00
493b65bb11 chore(deps): update dependency rollup to v4.29.2 (#2832)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-05 23:42:07 +09:00
e4e7ef3b52 fix(deps): update dependency fast-equals to v5.2.0 (#2822)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-05 23:41:50 +09:00
e1dc19e9eb chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2025-01-04 11:07:48 +01:00
4b9f92ed2d chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2025-01-04 11:07:48 +01:00
622beccd95 chore(i18n): Translated using Weblate (Dutch)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-01-02 23:00:48 +00:00
8678fca9c0 chore(i18n): Translated using Weblate (Georgian)
Currently translated at 18.7% (76 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ka/
2025-01-01 23:22:07 +01:00
4dcb9b5995 chore(i18n): Translated using Weblate (Dutch)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-01-01 23:22:07 +01:00
718025445c chore(i18n): Translated using Weblate (Dutch)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-01-01 23:22:07 +01:00
845dac3c03 chore(i18n): Translated using Weblate (Romanian)
Currently translated at 99.5% (404 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ro/
2025-01-01 23:22:06 +01:00
a1ac3d1359 feat(api-server): add insertPosition for addSongToQueue (#2808) 2025-01-02 00:19:12 +09:00
c21dd08a40 fix: fix deps 2025-01-02 00:09:34 +09:00
8de27358d3 fix: fix invalid property name 2025-01-01 15:40:19 +09:00
c4910af494 fix: remove farm config 2025-01-01 15:34:41 +09:00
67fc0a415c chore(deps): update dependency electron-builder to v26 2025-01-01 15:32:56 +09:00
7d145cbca1 chore(i18n): Added translation using Weblate (Georgian) 2025-01-01 02:54:17 +01:00
a565d9fc0f chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 93.8% (381 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2024-12-31 19:00:28 +01:00
71a9ed5d65 chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2024-12-31 19:00:28 +01:00
fc16a325f7 chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2024-12-31 19:00:27 +01:00
c52d96dcbd chore(deps): update dependency typescript-eslint to v8.19.0 (#2812)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-31 12:36:23 +09:00
d2c681a047 fix(deps): update dependency ts-morph to v25 (#2810)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-31 12:36:13 +09:00
Adi
8e75df42bf chore(i18n): Translated using Weblate (French)
Currently translated at 98.5% (400 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2024-12-30 00:25:43 +01:00
85d1dc46d1 chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.0% (402 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2024-12-29 18:19:09 +01:00
84f5e265f2 chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.5% (400 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2024-12-29 17:35:25 +01:00
0d261a8e44 fix(renderer): update event handler from onVolumeTap to onVolumeClick (#2791) 2024-12-28 23:29:22 +09:00
3c228ede48 fix(deps): update dependency hono to v4.6.15 (#2796)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-28 23:28:37 +09:00
8b971d2263 chore(deps): update dependency bufferutil to v4.0.9 (#2787)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-28 23:27:32 +09:00
6b8fed3fc2 feat: Refactor Menu Navigation and Update Media Control Icons (#2783)
* chore: update media control icons

Updated "next," "pause," "play," and "previous" icons in the media-icons-black folder. This improves visual consistency and ensures the latest icon designs are applied.

* refactor(menu): migrate to `navigationHistory` API

- Replaced deprecated `webContents` navigation methods (`canGoBack`, `goBack`, `canGoForward`, `goForward`) with `navigationHistory` API.
- Updated `mainMenuTemplate` to use the new `navigationHistory` destructured from `win.webContents`.
2024-12-28 23:27:07 +09:00
f15c51f3d7 fix(synced-lyrics): Revert font-size behavior for non-fancy modes (#2788) 2024-12-28 23:26:34 +09:00
fa3e146ef7 chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 99.7% (405 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2024-12-27 22:00:38 +01:00
4baec1560c chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2024-12-27 22:00:37 +01:00
0e0230b995 Update changelog for v3.7.1 2024-12-26 17:01:22 +00:00
a33a03f512 Bump version to 3.7.1 2024-12-27 01:44:11 +09:00
f8a53f0d61 fix(api-server): fix swagger 2024-12-27 01:43:03 +09:00
748d77d1c0 fix(downloader): fix #2234 2024-12-27 01:30:09 +09:00
725ad0d630 fix(deps): update dependency node-html-parser to v7 (#2776)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-27 01:15:58 +09:00
bdbab17772 chore(deps): update dependency vite to v6.0.6 (#2774)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-27 01:15:18 +09:00
57d2fa372d fix(synced-lyrics): use blur instead of static background color 2024-12-27 01:13:53 +09:00
80471b0ca4 fix: use networkManager.fetch instead of fetch 2024-12-27 01:05:55 +09:00
22fdfe3342 fix(downloader): fix #2769 2024-12-27 00:50:18 +09:00
5ecfa2a1f7 fix: fix #2645, fix #2741 2024-12-26 23:49:19 +09:00
b9beea810e fix(music-together): fix crash 2024-12-26 23:14:42 +09:00
f0e77812e7 fix: fix login CORS issue 2024-12-26 23:13:28 +09:00
6d1237c2a2 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 29.8% (121 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2024-12-26 06:04:43 +00:00
b43c92386e chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2024-12-26 06:04:42 +00:00
017476a81b chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2024-12-26 06:04:41 +00:00
9b047d9c54 chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2024-12-26 06:04:40 +00:00
31f009d3c4 chore(i18n): Translated using Weblate (Polish)
Currently translated at 98.7% (401 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2024-12-26 06:04:40 +00:00
8504f2c086 chore(i18n): Translated using Weblate (Italian)
Currently translated at 99.2% (403 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2024-12-26 06:04:39 +00:00
1d6251baea feat(api-server): Add queue api (#2767) 2024-12-25 18:55:24 +09:00
3ea13a2a22 fix(api-server): repeat event listener 2024-12-25 13:08:02 +09:00
1cc153084d Update changelog for v3.7.0 2024-12-25 01:45:32 +00:00
1c468b4054 Bump version to 3.7.0 2024-12-25 10:28:55 +09:00
1bad46890a fix: fix possible NPE 2024-12-25 10:28:24 +09:00
5829c8d0f7 chore(i18n): Translated using Weblate (Urdu)
Currently translated at 15.7% (64 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ur/
2024-12-25 02:17:53 +01:00
85aceaaae4 chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (406 of 406 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2024-12-25 02:15:11 +01:00
24e593b22f fix: use HEAD instead of GET in songInfo.imageSrc validation step
Thanks to @daika7ana!
Close #2766
2024-12-25 09:49:30 +09:00
3f8ca6002e chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (403 of 403 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2024-12-25 01:45:27 +01:00
b62ccfe7b1 feat(amuse): song query api (add amuse plugin) (#2723)
Co-authored-by: JellyBrick <shlee1503@naver.com>
2024-12-25 09:45:19 +09:00
237dde9765 feat(api-server): add absolute seek endpoint (#2748)
Co-authored-by: JellyBrick <shlee1503@naver.com>
2024-12-25 08:46:51 +09:00
65f4339fd1 fix: flatpak baseVersion 2024-12-25 08:42:59 +09:00
109e9f8166 feat(api-server): Add repeat mode and seek time API (#2630)
Co-authored-by: sent44 <sent44@root533.premium-rootserver.net>
Co-authored-by: JellyBrick <shlee1503@naver.com>
2024-12-25 08:41:44 +09:00
9163b6f04b fix(ci): Bump flatpak runtime version 2024-12-25 08:17:40 +09:00
51da259c97 feat(synced-lyrics): Better-Lyrics Styling for Synced-Lyrics (#2554)
Co-authored-by: JellyBrick <shlee1503@naver.com>
2024-12-25 08:15:36 +09:00
2bf67b941e chore(i18n): Translated using Weblate (Urdu)
Currently translated at 15.7% (63 of 401 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ur/
2024-12-24 23:44:35 +01:00
533b96d1f6 feat(synced-lyrics): multiple lyric sources (#2383)
Co-authored-by: JellyBrick <shlee1503@naver.com>
2024-12-25 07:44:29 +09:00
5c9ded8779 chore(deps): update dependency typescript-eslint to v8.18.2 (#2763)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-25 01:42:18 +09:00
6f389bb297 chore(i18n): Added translation using Weblate (Urdu) 2024-12-24 08:59:48 +01:00
8a209404d4 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 26.1% (105 of 401 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2024-12-24 08:59:35 +01:00
6193fb487a chore(i18n): Translated using Weblate (Hindi)
Currently translated at 25.9% (104 of 401 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2024-12-23 17:00:41 +01:00
9aa7f7a023 chore(i18n): Translated using Weblate (Indonesian)
Currently translated at 100.0% (401 of 401 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/id/
2024-12-23 17:00:40 +01:00
5bfaa9a791 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (401 of 401 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2024-12-23 17:00:39 +01:00
py
d210ec8227 chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (401 of 401 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2024-12-23 17:00:38 +01:00
dec7c5e95c chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 99.0% (397 of 401 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2024-12-23 17:00:37 +01:00
940d0beb84 chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (401 of 401 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2024-12-23 17:00:36 +01:00
cf98754276 chore(deps): update dependency discord-api-types to v0.37.114 (#2761)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-24 00:37:14 +09:00
d91d493dd1 chore(deps): update dependency discord-api-types to v0.37.113 (#2759)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-23 09:11:34 +09:00
7e1aea21db fix: Set correct window class for X11 and Wayland (#2758) 2024-12-23 09:10:57 +09:00
0179dfd311 feat: Specify flatpak runtime (#2755) 2024-12-22 23:39:05 +09:00
98ea26bbff chore(deps): update dependency rollup to v4.29.1 (#2749)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-22 23:38:48 +09:00
0d9daaad66 chore(deps): update dependency esbuild to v0.24.2 (#2742)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-22 23:38:33 +09:00
fe319daec1 fix: Add Flatpak permissions needed for MPRIS and tray icon (#2754) 2024-12-22 23:37:30 +09:00
929c58671a chore(deps): update dependency vite-plugin-inspect to v0.10.6 (#2756)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-22 23:36:28 +09:00
4fb2350c2b chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (401 of 401 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2024-12-21 16:00:29 +01:00
a401bfa809 chore(i18n): Translated using Weblate (Japanese)
Currently translated at 100.0% (401 of 401 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2024-12-21 16:00:28 +01:00
fdeed76f6f chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (401 of 401 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2024-12-21 16:00:27 +01:00
0ab113816a chore(deps): update dependency vite to v6.0.5 (#2745)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 23:33:52 +09:00
8a58b02c7b fix(deps): update dependency i18next to v24.2.0 (#2744)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 23:32:16 +09:00
037b059b55 chore(deps): update dependency vite-plugin-inspect to v0.10.4 (#2743)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 23:32:07 +09:00
bb0f9fb3d0 chore(deps): update dependency discord-api-types to v0.37.112 (#2740)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 23:31:24 +09:00
d3c7848896 fix(discord): use net.fetch instead of fetch 2024-12-20 23:23:15 +09:00
ea50cb1e65 fix(discord): check imageSrc 2024-12-20 23:22:48 +09:00
5070fd88b5 fix(discord): Fix Album Art failing on Discord RPC (#2666) 2024-12-20 23:19:51 +09:00
21177478cb fix(equalizer): add addedVersion 2024-12-20 23:19:33 +09:00
26b8b38b89 feat: Add equalizer plugin with presets (e.g. bass booster) (#2575) 2024-12-20 23:17:11 +09:00
be04d66aa8 fix: use ghostry adblocker 2024-12-19 19:53:43 +09:00
a837987e70 chore(deps): update dependency vite to v6.0.4 (#2738)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-19 19:28:44 +09:00
da99558163 fix: Fixed #1796 (#2736) 2024-12-19 19:24:32 +09:00
3b50cbcb6e Revert "feat: use swc and lightningcss"
This reverts commit ae3a289005.
2024-12-19 12:42:31 +09:00
595c011bce Revert "fix: fix minify size issue"
This reverts commit 458fe54063.
2024-12-19 12:42:15 +09:00
458fe54063 fix: fix minify size issue 2024-12-19 12:38:49 +09:00
ae3a289005 feat: use swc and lightningcss 2024-12-19 12:22:15 +09:00
a49eea9246 chore(deps): update dependency electron-devtools-installer to v4 (#2734)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 22:02:22 +09:00
d675a175e9 Revert "chore(deps): update dependency electron-builder to v25" (#2732)
This reverts commit 6c510a71c2.
2024-12-18 16:14:39 +09:00
6c510a71c2 chore(deps): update dependency electron-builder to v25 (#2490)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 13:23:56 +09:00
5503d2cbb8 fix(deps): update dependency i18next to v24.1.2 (#2727)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 12:05:24 +09:00
ba4c7e1a0c chore(deps): update dependency electron-devtools-installer to v3.2.1 (#2731)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 12:02:00 +09:00
e19c458441 chore(deps): update dependency typescript-eslint to v8.18.1 (#2724)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 09:11:12 +09:00
ec5cf0cae8 chore(i18n): Translated using Weblate (Filipino)
Currently translated at 87.1% (346 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fil/
2024-12-16 10:00:36 +01:00
b3c4570f8c fix: tab misalignment (#2713) 2024-12-16 11:49:57 +09:00
112b6d893b fix(deps): update dependency @hono/zod-validator to v0.4.2 (#2709)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-15 22:02:16 +09:00
52236907e4 chore(deps): update eslint monorepo to v9.17.0 (#2712)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-15 22:00:38 +09:00
d449529ea7 fix(deps): update dependency hono to v4.6.14 (#2716)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-15 22:00:28 +09:00
61c799f7d4 fix: discord rich presence connection status (#2714)
* fix: discord rich presence connection status

* fix: optional chaining already handles null case
2024-12-15 22:00:00 +09:00
1a4ee13e47 fix(CI): temporary disable title check 2024-12-13 12:33:17 +09:00
f91afb984a fix: Laggy scrolling behaviour in large playlists (#2708) 2024-12-13 12:28:48 +09:00
f9892b0eae fix(deps): update dependency youtubei.js to v12.2.0 (#2705)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 12:19:20 +09:00
60c7885a3c fix(deps): update dependency i18next to v24.1.0 (#2698)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-11 20:58:08 +09:00
63ca6aa533 chore(deps): update dependency @stylistic/eslint-plugin-js to v2.12.1 (#2697)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-11 20:57:53 +09:00
e77a8c04e8 fix(deps): update dependency zod to v3.24.1 (#2694)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-11 13:30:22 +09:00
0bfabf604c fix(deps): update dependency youtubei.js to v12.1.0 (#2695)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-11 07:22:18 +09:00
4343c599cf chore(deps): update dependency discord-api-types to v0.37.111 (#2690)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-10 12:06:17 +09:00
c251554c31 chore(deps): update dependency typescript-eslint to v8.18.0 (#2692)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-10 12:06:09 +09:00
95e519bdc9 chore(deps): update playwright monorepo to v1.49.1 (#2693)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-10 12:06:00 +09:00
79d38bfc8e fix(deps): update dependency hono to v4.6.13 (#2682)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 18:26:40 +09:00
f5655b0ae6 chore(deps): update dependency rollup to v4.28.1 (#2683)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 18:26:24 +09:00
12b4afc3ce fix(deps): update dependency conf to v13.1.0 (#2686)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 18:26:10 +09:00
c104d47737 chore(deps): update dependency @stylistic/eslint-plugin-js to v2.12.0 (#2689)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-09 18:25:59 +09:00
870cf6143c chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 97.9% (389 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2024-12-06 18:00:23 +01:00
1baed0e913 fix(deps): update dependency youtubei.js to v12 (#2681)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-06 12:11:21 +09:00
02619c79bb chore(deps): update dependency vite to v6.0.3 (#2680)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-06 12:11:10 +09:00
0faad538f3 fix(album-actions): Fixed #2312 (#2676)
* Fixed #2312

* Update src/plugins/album-actions/index.ts

Co-authored-by: JellyBrick <shlee1503@naver.com>

---------

Co-authored-by: JellyBrick <shlee1503@naver.com>
2024-12-06 12:10:10 +09:00
Bai
e7de30c629 chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2024-12-05 15:00:29 +01:00
c5d8333039 chore(deps): update dependency eslint-import-resolver-typescript to v3.7.0 (#2672)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-05 22:41:35 +09:00
4da08e7c9b chore(deps): update dependency node-gyp to v11 (#2678)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-05 22:41:25 +09:00
Bai
171387995a chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2024-12-04 02:00:59 +00:00
aeac020c9a fix(deps): update dependency i18next to v24.0.5 (#2669)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-03 21:51:58 +09:00
5c05ddeb29 fix(deps): update dependency i18next to v24.0.4 (#2668)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-03 16:30:34 +09:00
cbdd649365 chore(deps): update dependency vite to v6.0.2 (#2662)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-03 16:30:23 +09:00
d2cf2ad71f chore(deps): update dependency node-gyp to v10.3.1 (#2665)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-03 16:28:21 +09:00
7d33494097 chore(deps): update dependency typescript-eslint to v8.17.0 (#2664)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-03 16:28:12 +09:00
ca83edabf3 chore(deps): update dependency vite-plugin-inspect to v0.10.3 (#2667)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-03 16:27:33 +09:00
f84e77e814 chore(deps): update dependency rollup to v4.28.0 (#2661)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-01 22:07:47 +09:00
14f2120a32 chore(deps): update dependency discord-api-types to v0.37.110 (#2653)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-01 22:04:03 +09:00
1cbf14ee2a fix(deps): update dependency @hono/zod-openapi to v0.18.3 (#2654)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-01 22:03:54 +09:00
b7cb167fc6 chore(deps): update eslint monorepo to v9.16.0 (#2656)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-01 22:03:45 +09:00
41b9f8b967 chore(deps): update dependency vite-plugin-inspect to v0.10.2 (#2657)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-01 22:03:34 +09:00
0b769ce287 fix(youtube-music.css): Fixed #2514 (#2659) 2024-12-01 22:03:11 +09:00
ad71ef8a68 chore(i18n): Translated using Weblate (Arabic)
Currently translated at 36.2% (144 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2024-11-30 15:00:35 +01:00
048a994f32 fix: Fixed Skip Disliked Song not working (#2651) 2024-11-28 20:21:41 +09:00
c2bd8ce188 fix(deps): update dependency @hono/zod-openapi to v0.18.2 (#2650)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-28 20:20:39 +09:00
62ce4e818c chore(deps): update dependency vite-plugin-inspect to v0.10.1 (#2652)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-28 20:20:24 +09:00
4ab8829a02 chore(deps): update dependency electron to v33.2.1 (#2649)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-28 12:02:27 +09:00
36b3e2cb0c chore(deps): update dependency vite-plugin-inspect to v0.10.0 (#2646)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-27 23:20:27 +09:00
9ba0614a7d chore(deps): update dependency vite to v6 (#2644)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-27 23:17:55 +09:00
81431ad196 fix(deps): update dependency @hono/swagger-ui to v0.5.0 (#2643)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-27 23:16:11 +09:00
a8e8d5afd7 chore(deps): update dependency discord-api-types to v0.37.109 (#2642)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-27 23:16:00 +09:00
f3d86743ee chore(deps): update dependency vite-plugin-solid to v2.11.0 (#2641)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-27 23:15:50 +09:00
6306968193 fix(deps): update dependency hono to v4.6.12 (#2636)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-27 07:24:16 +09:00
7142a253d6 fix(deps): update dependency i18next to v24.0.2 (#2637)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-27 07:24:07 +09:00
2a24588338 chore(deps): update dependency discord-api-types to v0.37.108 (#2638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-27 07:23:58 +09:00
2abaf54ac8 chore(deps): update dependency typescript-eslint to v8.16.0 (#2639)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-27 07:23:26 +09:00
cc730ad55c chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2024-11-25 16:01:11 +00:00
d8581c5d69 chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 10.3% (41 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2024-11-24 16:00:26 +01:00
3208bf4a6d fix: fix pnpm-lock.yaml 2024-11-24 14:46:02 +09:00
4109db1ad7 chore(deps): update dependency rollup to v4.27.4 (#2632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-24 14:36:40 +09:00
87a0ef5d54 fix(deps): update dependency i18next to v24 (#2633)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-24 14:34:40 +09:00
cdc40f0c53 chore(deps): update dependency typescript to v5.7.2 (#2629)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-24 14:32:08 +09:00
7a3b8082a2 chore(deps): update dependency discord-api-types to v0.37.107 (#2627)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-24 14:31:57 +09:00
3e9039c97d fix(deps): update dependency @hono/zod-openapi to v0.18.0 (#2626)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-24 14:31:48 +09:00
b9d1130468 fix(deps): update dependency i18next to v23.16.8 (#2625)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-24 14:31:38 +09:00
605f0984e4 chore(deps): update dependency vite-plugin-inspect to v0.8.8 (#2623)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-21 12:27:36 +09:00
44de7d9e98 fix(deps): update dependency hono to v4.6.11 (#2624)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-21 12:27:25 +09:00
9926575744 chore(deps): update playwright monorepo to v1.49.0 (#2617)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-21 12:26:28 +09:00
f16a99f6e4 chore(deps): update dependency rollup to v4.27.3 (#2610)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-21 12:10:10 +09:00
a23c64b5b8 chore(deps): update dependency typescript-eslint to v8.15.0 (#2611)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-21 12:10:00 +09:00
0899f76548 chore(deps): update dependency @stylistic/eslint-plugin-js to v2.11.0 (#2618)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-21 12:09:44 +09:00
515dcdc7e3 chore(i18n): Translated using Weblate (Arabic)
Currently translated at 35.7% (142 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2024-11-19 20:20:51 +01:00
b2c4bc425b chore(deps): update dependency discord-api-types to v0.37.105 (#2603)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-18 23:36:03 +09:00
363c3b3a67 chore(deps): update dependency rollup to v4.27.2 (#2604)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-18 23:35:54 +09:00
c2dde3d78f chore(deps): update eslint monorepo to v9.15.0 (#2607)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-18 23:35:45 +09:00
eb515cfc61 fix(deps): update dependency @hono/zod-openapi to v0.17.1 (#2608)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-18 23:35:34 +09:00
c208ca184f chore(i18n): Translated using Weblate (Estonian)
Currently translated at 19.3% (77 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/et/
2024-11-17 01:00:26 +01:00
c231fa7c44 fix(ambient-mode): fix ambient-mode overlapping other elements (#2609)
Co-authored-by: h-banii <h-banii@users.noreply.github.com>
2024-11-16 18:41:29 +09:00
9e1b8d43d0 fix: Allow media playback control (MPRIS) for flatpak (#2606) 2024-11-16 15:45:09 +09:00
f50ece88df chore(i18n): Translated using Weblate (Slovenian)
Currently translated at 69.2% (275 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sl/
2024-11-16 00:00:34 +01:00
eeb780d190 fix(deps): update dependency @hono/node-server to v1.13.7 (#2598)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-14 01:59:11 +09:00
cafdf654d3 chore(deps): update dependency rollup to v4.26.0 (#2600)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-14 01:47:36 +09:00
2d665013e7 fix(deps): update dependency hono to v4.6.10 (#2601)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-14 01:47:25 +09:00
451a46e208 chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2024-11-12 19:00:31 +01:00
490b901c34 fix(deps): update dependency @hono/node-server to v1.13.6 (#2594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-12 18:12:53 +09:00
b57b4a3454 chore(deps): update dependency vite to v5.4.11 (#2595)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-12 18:12:43 +09:00
60c61e32b1 chore(deps): update dependency typescript-eslint to v8.14.0 (#2596)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-12 18:12:30 +09:00
aa9052d449 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 99.7% (396 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2024-11-11 10:00:21 +00:00
67f3a38583 chore(deps): update dependency electron to v33.2.0 (#2591)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-10 22:45:49 +09:00
a00ecc4729 fix(deps): update dependency @hono/zod-openapi to v0.17.0 (#2592)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-10 22:44:18 +09:00
56d63fca52 fix(deps): update dependency i18next to v23.16.5 (#2589)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-10 18:49:48 +09:00
759f3ba317 fix(deps): update dependency @hono/node-server to v1.13.5 (#2578)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-10 18:49:41 +09:00
d8daf03f2c fix(deps): update dependency hono to v4.6.9 (#2579)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-10 18:47:33 +09:00
a519c7c714 chore(deps): update dependency discord-api-types to v0.37.104 (#2588)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-10 18:47:27 +09:00
933d12fdd1 chore(deps): update dependency typescript-eslint to v8.13.0 (#2581)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-10 18:44:46 +09:00
61fb733550 chore(deps): update dependency rollup to v4.25.0 (#2580)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-10 18:44:40 +09:00
7f05e3168d chore(docs): Update screenshot (#2587) 2024-11-10 18:44:31 +09:00
3b7697a90d chore(docs): Specify full path to xattr for macOS, fixes #2583 (#2586) 2024-11-10 18:43:34 +09:00
350b1467fe chore(i18n): Translated using Weblate (Sinhala)
Currently translated at 12.3% (49 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/si/
2024-11-07 17:00:17 +00:00
2f5d102f4d chore(i18n): Translated using Weblate (Turkish)
Currently translated at 98.9% (393 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2024-11-05 21:00:23 +01:00
66e296df1a fix(taskbar-mediacontrol): remove console.log 2024-11-03 19:21:47 +09:00
1e4cd699db fix: callback for time-changed event (#2577)
Co-authored-by: Derek Alsop <15299183+Azorant@users.noreply.github.com>
2024-11-03 19:18:06 +09:00
516fbff3d7 fix: innerHTML trusted-types 2024-11-03 18:22:33 +09:00
aab9358d67 chore(deps): update eslint monorepo to v9.14.0 (#2573)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-03 15:48:00 +09:00
ae3939f857 chore(deps): update dependency utf-8-validate to v6.0.5 (#2572)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-03 15:45:54 +09:00
79bafd1780 chore(deps): update dependency @stylistic/eslint-plugin-js to v2.10.1 (#2571)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-03 15:44:46 +09:00
3f4f52a31f chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2024-11-01 15:00:19 +00:00
c2b7b29716 fix(deps): update dependency @hono/node-server to v1.13.4 (#2570)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-01 07:19:44 +09:00
dab84b9cf9 chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2024-10-31 15:00:16 +01:00
e5980158eb chore(deps): update dependency @stylistic/eslint-plugin-js to v2.10.0 (#2569)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-31 12:24:46 +09:00
647d4c9d99 fix(deps): update dependency @floating-ui/dom to v1.6.12 (#2568)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-31 12:24:38 +09:00
30feb6128b chore(deps): update dependency rollup to v4.24.3 (#2565)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-30 07:57:12 +09:00
0cf6923540 fix(deps): update dependency hono to v4.6.8 (#2564)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-30 07:57:04 +09:00
cce9f0b462 chore(deps): update dependency typescript-eslint to v8.12.2 (#2563)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-30 07:56:55 +09:00
c0805fb758 chore(deps): update dependency typescript-eslint to v8.12.0 (#2561)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-29 07:13:13 +09:00
04e5844301 fix(deps): update dependency youtubei.js to v11 (#2562)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-29 07:13:03 +09:00
f28e663133 chore(i18n): Translated using Weblate (Slovenian)
Currently translated at 69.2% (275 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sl/
2024-10-28 17:00:25 +01:00
2c84527c43 chore(i18n): Translated using Weblate (Czech)
Currently translated at 95.2% (378 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2024-10-28 17:00:23 +01:00
68511de727 chore(deps): update dependency rollup to v4.24.2 (#2559)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-28 19:33:15 +09:00
e7ca9f129f fix(deps): update dependency @hono/node-server to v1.13.3 (#2560)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-28 19:33:06 +09:00
259da70e4f fix(deps): update dependency i18next to v23.16.4 (#2550)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-28 19:01:37 +09:00
9409d75ac7 chore(deps): update playwright monorepo to v1.48.2 (#2551)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-28 19:01:24 +09:00
3ea923f56f fix(deps): update dependency hono to v4.6.7 (#2552)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-28 19:01:13 +09:00
6d6c8c94cf chore(deps): update dependency @babel/runtime to v7.26.0 (#2548)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-28 19:01:03 +09:00
29098758a9 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2024-10-27 16:00:14 +01:00
fdbb35e221 chore(deps): update dependency @types/color to v4 (#2547)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-25 12:15:35 +09:00
6ddac62313 fix(deps): update dependency i18next to v23.16.3 (#2545)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-25 07:18:08 +09:00
ae4b494300 chore(i18n): Translated using Weblate (Arabic)
Currently translated at 31.2% (124 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2024-10-24 21:13:04 +02:00
Adi
7d9eed88f4 chore(i18n): Translated using Weblate (French)
Currently translated at 98.7% (392 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2024-10-24 21:13:04 +02:00
4abf848f99 fix(deps): update dependency solid-js to v1.9.3 (#2541)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-23 14:36:36 +09:00
cc0a6cfdce chore(deps): update dependency vite to v5.4.10 (#2542)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-23 14:25:16 +09:00
a74d0dd0ca chore(deps): update dependency electron to v33.0.2 (#2537)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-23 07:08:31 +09:00
18f15d4cce chore(deps): update dependency @babel/runtime to v7.25.9 (#2538)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-23 07:08:22 +09:00
80e20c6579 chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2024-10-22 19:15:42 +00:00
761026fd74 chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2024-10-22 19:15:41 +00:00
95b75f020c chore(deps): update dependency discord-api-types to v0.37.103 (#2532)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-22 22:28:47 +09:00
574e4baef8 chore(deps): update dependency typescript-eslint to v8.11.0 (#2534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-22 22:28:39 +09:00
ec4871d5a8 fix(deps): update dependency hono to v4.6.6 (#2536)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-22 18:36:51 +09:00
ccd6bf9c3f chore(i18n): Translated using Weblate (Arabic)
Currently translated at 27.9% (111 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2024-10-21 12:16:16 +02:00
2975d4292c chore(i18n): Translated using Weblate (Romanian)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ro/
2024-10-21 12:16:15 +02:00
ad9571550f fix(tuna-obs): Added song url to tuna-obs plugin (#2524) 2024-10-21 10:16:41 +09:00
980068217c fix(deps): update dependency i18next to v23.16.2 (#2530)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-21 00:05:49 +09:00
18f69aea3f fix(deps): update dependency i18next to v23.16.1 (#2529)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-20 23:34:58 +09:00
add7cb9e48 chore(deps): update eslint monorepo to v9.13.0 (#2528)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-20 23:34:48 +09:00
aa67a57971 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 1.5% (6 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2024-10-20 10:16:29 +02:00
74f22b4474 chore(i18n): Translated using Weblate (Japanese)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2024-10-20 10:16:29 +02:00
DW
7ef4a23576 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 0.2% (1 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2024-10-19 07:16:28 +02:00
3c90a1f459 chore(i18n): Translated using Weblate (Turkish)
Currently translated at 97.4% (387 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2024-10-19 07:16:27 +02:00
DW
3793d36f36 chore(i18n): Added translation using Weblate (Hindi) 2024-10-18 07:01:23 +02:00
179f4b29db chore(i18n): Translated using Weblate (Persian)
Currently translated at 74.3% (295 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2024-10-18 07:01:22 +02:00
34f106896c chore(i18n): Translated using Weblate (Icelandic)
Currently translated at 97.2% (386 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/is/
2024-10-18 07:01:22 +02:00
06b581f499 chore(deps): update dependency typescript-eslint to v8.10.0 (#2527)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-18 07:47:15 +09:00
3ec126628c chore(deps): update playwright monorepo to v1.48.1 (#2516)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-18 07:47:06 +09:00
1d3bb60e0b fix(tuna-obs): lite mode logic 2024-10-18 07:46:50 +09:00
2e3ced6006 fix(tuna-obs): fix lite mode logic 2024-10-18 07:45:49 +09:00
e8efca5a3e chore(i18n): Translated using Weblate (Persian)
Currently translated at 74.3% (295 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2024-10-17 19:16:24 +02:00
5161c356f9 chore(i18n): Translated using Weblate (Thai)
Currently translated at 70.2% (279 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/th/
2024-10-17 19:16:23 +02:00
py
e917b30e64 chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2024-10-17 19:16:23 +02:00
2d847f9808 chore(i18n): Translated using Weblate (Italian)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2024-10-17 19:16:22 +02:00
21755fffc7 chore(deps): update dependency electron to v33.0.1 (#2523)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-17 11:37:56 +09:00
5c9d3e3e67 fix: disable gpu memory buffer video frames (#2519) 2024-10-17 07:11:33 +09:00
ea801f65ef Update changelog for v3.6.2 2024-10-16 11:59:00 +00:00
27f4c0393e Bump version to 3.6.2 2024-10-16 20:43:19 +09:00
9bc42f836f fix: trustedTypes issue
- Close #2339
2024-10-16 20:40:35 +09:00
11b11ed966 fix(deps): update dependency serve to v14.2.4 (#2515)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-16 20:15:01 +09:00
5f79b7e788 chore(i18n): Translated using Weblate (Icelandic)
Currently translated at 94.7% (376 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/is/
2024-10-15 22:15:39 +02:00
7d1d806797 chore(i18n): Translated using Weblate (Indonesian)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/id/
2024-10-15 22:15:39 +02:00
836cedb0f3 chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2024-10-15 22:15:39 +02:00
70349e13cc chore(i18n): Translated using Weblate (Russian)
Currently translated at 99.7% (396 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2024-10-15 22:15:39 +02:00
6d16b74471 fix(deps): update dependency hono to v4.6.5 (#2509)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-15 22:33:46 +09:00
c211780c33 chore(deps): update dependency vite to v5.4.9 (#2500)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-15 13:46:51 +09:00
2173ba0234 fix(api-server): properly implement next api call (#2505) 2024-10-15 13:34:19 +09:00
3a4cbc543b chore(deps): update dependency electron to v33 (#2507)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-15 13:30:11 +09:00
2fef7f0246 chore(deps): update dependency typescript-eslint to v8.9.0 (#2503)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-15 05:03:21 +09:00
12d693921e chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2024-10-14 19:24:56 +02:00
d1b4879f51 chore(deps): update dependency discord-api-types to v0.37.102 (#2501)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-14 23:32:47 +09:00
f14939fcd2 Update changelog for v3.6.1 2024-10-14 13:42:17 +00:00
4e66b0cedd fix: remove snap arm 2024-10-14 22:23:37 +09:00
11fe54d640 fix(style): fix youtube music player layout not aligned issue 2024-10-14 22:01:26 +09:00
446529f738 fix: remove pacman 2024-10-14 21:59:56 +09:00
ac6e9deeb9 chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2024-10-14 14:42:58 +02:00
100873163f fix: remove "compression": "maximum" 2024-10-14 21:34:33 +09:00
e141e18bac fix: fix build 2024-10-14 21:27:42 +09:00
f4da0c2c95 fix: enum value must be one of xz,lzo, got 'maximum' 2024-10-14 21:17:15 +09:00
7507bce3cc fix: fix org.electronjs.Electron2.BaseApp/x86_64/20.08 2024-10-14 21:03:10 +09:00
2b970fade8 fix: fix org.freedesktop.Sdk/x86_64/20.08 2024-10-14 20:51:36 +09:00
35f0e43082 fix: remove duplicate flatpak 2024-10-14 20:38:25 +09:00
ae4410a613 fix(flatpak): remove armhf/arm64 2024-10-14 20:32:05 +09:00
5534174016 fix: fix flatpak build 2024-10-14 20:27:33 +09:00
15cf6c77c3 fix: fix flatpak release 2024-10-14 20:12:54 +09:00
18a8fc462d fix: fix pnpm-lock 2024-10-14 20:01:02 +09:00
d3acb4945a chore(flatpak-builder): Add more details when failing 2024-10-14 19:57:41 +09:00
32d3c58b44 fix: fix release workflow 2024-10-14 19:33:37 +09:00
bd8c2eb390 fix: configuration has an unknown property 'AppImage' 2024-10-14 19:26:24 +09:00
a81fa9c0d1 fix: apt update 2024-10-14 19:22:02 +09:00
1d0f7d7a48 fix: fix release 2024-10-14 19:20:04 +09:00
b6687307df Bump version to 3.6.1 2024-10-14 19:16:25 +09:00
7e07a44f68 fix(downloader): fix #2371 2024-10-14 18:27:04 +09:00
5ca66530ee fix(ytm-bugs): incorrect video ratio
- Close #2459
2024-10-14 18:16:22 +09:00
95acbe2b65 fix: fix conflict with adguard 2024-10-14 18:06:08 +09:00
534aeb163a fix(api-server): fix init/authentication error
- Close #2497
2024-10-14 17:51:59 +09:00
6abcbee290 chore(i18n): Translated using Weblate (English)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/en/
2024-10-14 09:54:33 +02:00
4457a043a4 chore(i18n): Translated using Weblate (English)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/en/
2024-10-14 09:54:05 +02:00
410a052fea chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2024-10-14 09:51:36 +02:00
e4287085a1 chore(i18n): Translated using Weblate (Filipino)
Currently translated at 87.1% (346 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fil/
2024-10-14 09:51:36 +02:00
b6cefef8fb fix(api-server): Various fixes and improvements (#2496) 2024-10-14 16:48:11 +09:00
9d7e2a06bc fix(deps): update dependency electron-debug to v4.1.0 (#2499)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-14 16:45:19 +09:00
d516fc2153 fix(renderer): fix force like buttons display logic (#2493) 2024-10-14 04:27:23 +09:00
77bfe8e218 fix: RSS feed CORS issue
- Close #1620
2024-10-14 04:04:17 +09:00
0fcbe38837 fix(deps): update dependency i18next to v23.16.0 (#2492)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-14 03:46:38 +09:00
b85a40f683 Update changelog for v3.6.0 2024-10-13 13:57:28 +00:00
8020d61715 Bump version to 3.6.0 2024-10-13 22:48:28 +09:00
cb1381bbb3 fix: apply fix from eslint 2024-10-13 22:45:11 +09:00
f42f20f770 chore(i18n): Translated using Weblate (Persian)
Currently translated at 49.1% (195 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2024-10-13 15:40:48 +02:00
9fb1dbfde0 chore(i18n): Translated using Weblate (Arabic)
Currently translated at 26.9% (107 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2024-10-13 15:40:47 +02:00
4f1ebab45d chore(i18n): Translated using Weblate (Catalan)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2024-10-13 15:34:42 +02:00
95644ea513 chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (397 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2024-10-13 15:34:41 +02:00
2fcddc8d2d chore(i18n): Translated using Weblate (Spanish)
Currently translated at 99.7% (396 of 397 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2024-10-13 15:34:41 +02:00
6505a93645 fix(api-server): fix i18n 2024-10-13 21:56:17 +09:00
11c25efd47 fix(taskbar-mediacontrol): fix icon color
- Close #2485
2024-10-13 21:45:20 +09:00
a97bc8da5a fix(README): fix eslint path 2024-10-13 21:42:00 +09:00
782116b31b fix: pin deps version 2024-10-13 19:14:40 +09:00
708d4b5480 chore(deps): Bump pnpm/action-setup to v4 2024-10-13 19:11:03 +09:00
9ba8913da7 feat(api-server): remote control api (#1909)
Co-authored-by: JellyBrick <shlee1503@naver.com>
Co-authored-by: Angelos Bouklis <angelbouklis.official@gmail.com>
Co-authored-by: Angelos Bouklis <me@arjix.dev>
Co-authored-by: Angelos Bouklis <53124886+ArjixWasTaken@users.noreply.github.com>
2024-10-13 19:10:12 +09:00
d07dae2542 fix: fix pnpm-lock.yaml 2024-10-13 18:24:36 +09:00
e7f213c4dc chore(eslint): apply eslint-plugin-prettier
- Close #2438
2024-10-13 18:24:01 +09:00
4cbf6c015b chore(deps): update playwright monorepo to v1.48.0 (#2489)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-13 18:05:01 +09:00
8acb93225b fix(synced-lyrics): fix text extract logic 2024-10-13 18:03:37 +09:00
8153955ccf fix(synced-lyrics): Fix 2 issues (#2441) 2024-10-13 18:00:03 +09:00
1de1cbac65 chore(deps): update dependency typescript to v5.6.3 (#2486)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-13 17:14:17 +09:00
825aac1dab chore(deps): update dependency electron to v32.2.0 (#2487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-13 17:14:08 +09:00
d48aa7ad39 chore(deps): update dependency del-cli to v6 (#2475)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-13 17:12:05 +09:00
65ad09a02e chore(deps): update dependency typescript-eslint to v8.8.1 (#2477)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-13 17:11:56 +09:00
08aae09446 fix(deps): update dependency solid-js to v1.9.2 (#2480)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-13 17:11:25 +09:00
88f54a389f Revert "chore(deps): update dependency electron-builder to v25" (#2488) 2024-10-13 17:11:11 +09:00
4c23b1f970 chore(deps): update dependency electron-builder to v25 (#2406)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-13 17:09:34 +09:00
a979f1c8ea fix(deps): update dependency deepmerge-ts to v7.1.3 (#2481)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-13 17:09:28 +09:00
ead448ed98 chore(i18n): Translated using Weblate (Persian)
Currently translated at 51.0% (195 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2024-10-11 06:56:26 +02:00
fade340e80 chore(i18n): Translated using Weblate (Arabic)
Currently translated at 28.0% (107 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2024-10-11 06:56:25 +02:00
8cc8160f70 chore(i18n): Translated using Weblate (Persian)
Currently translated at 22.5% (86 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2024-10-10 14:39:44 +02:00
ee354ff678 chore(i18n): Added translation using Weblate (Persian) 2024-10-10 01:45:13 +02:00
ca7ccc7b3e chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2024-10-09 17:15:40 +02:00
f6b2766ec2 fix(deps): update dependency ts-morph to v24 (#2474)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-07 12:42:06 +09:00
4a5f811485 fix(deps): update dependency i18next to v23.15.2 (#2471)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-05 19:57:18 +09:00
a092da7ba5 chore(deps): update eslint monorepo to v9.12.0 (#2470)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-05 15:32:49 +09:00
b587a16419 chore(deps): update dependency @stylistic/eslint-plugin-js to v2.9.0 (#2469)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-05 15:30:15 +09:00
4cf4f19ccc chore(deps): bump micromatch from 4.0.5 to 4.0.8 (#2465)
Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.5 to 4.0.8.
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/micromatch/compare/4.0.5...4.0.8)

---
updated-dependencies:
- dependency-name: micromatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-05 15:06:59 +09:00
5b84c9efce chore(deps): bump braces from 3.0.2 to 3.0.3 (#2466)
Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-05 15:06:52 +09:00
98bbbfd851 fix(deps): update dependency electron-updater to v6.3.9 (#2468)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-05 15:04:15 +09:00
da2dbcacc4 fix(deps): update dependency deepmerge-ts to v7.1.1 (#2467)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-05 15:02:19 +09:00
7b6235694b chore(deps): update dependency typescript-eslint to v8.8.0 (#2457)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-05 15:02:09 +09:00
4ad8e7b9dc chore(deps): update dependency @babel/runtime to v7.25.7 (#2462)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-05 15:02:01 +09:00
51ecfff86b chore(deps): update dependency rollup to v4.24.0 (#2458)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-05 15:00:04 +09:00
2c21a03201 chore(deps): update dependency eslint-plugin-import to v2.31.0 (#2464)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-05 14:59:44 +09:00
4c2cb8dac9 chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 73.2% (280 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2024-10-04 15:15:48 +02:00
9edcd2c32e chore(i18n): Translated using Weblate (Filipino)
Currently translated at 86.9% (332 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fil/
2024-10-03 02:15:41 +00:00
0829fd2167 chore(deps): update dependency rollup to v4.22.5 (#2448)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-30 07:24:04 +09:00
494e58296b chore(deps): update dependency typescript-eslint to v8.7.0 (#2450)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-30 07:20:57 +09:00
151da2d786 fix(deps): update dependency solid-js to v1.9.1 (#2451)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-30 07:20:46 +09:00
d7f5f28091 chore(deps): update dependency vite to v5.4.8 (#2449)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-28 15:52:06 +09:00
358fb3b084 chore(deps): update dependency discord-api-types to v0.37.101 (#2440)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-28 15:51:54 +09:00
af79ba266d chore(deps): update dependency esbuild to v0.24.0 (#2439)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-28 15:51:44 +09:00
45f419f41a chore(deps): update eslint monorepo to v9.11.1 (#2442)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-28 15:35:42 +09:00
5189d6cfee chore(deps): update dependency @types/howler to v2.2.12 (#2443)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-28 15:35:30 +09:00
102034b58c chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2024-09-24 18:15:47 +02:00
50d92bc004 chore(i18n): Translated using Weblate (English)
Currently translated at 99.7% (381 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/en/
2024-09-24 18:15:46 +02:00
f2716e1dc8 chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2024-09-23 17:26:28 +02:00
9d436ed0a8 chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2024-09-23 17:26:28 +02:00
31d472e289 chore(deps): update dependency vite to v5.4.7 (#2434)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-22 08:17:56 +09:00
7f9a2b3011 chore(deps): update playwright monorepo to v1.47.2 (#2436)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-22 08:17:35 +09:00
f54b346dce chore(deps): update eslint monorepo to v9.11.0 (#2437)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-22 08:17:12 +09:00
dbff62bc5b fix(deps): update dependency youtubei.js to v10.5.0 (#2431)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-22 08:13:18 +09:00
87f43e3237 chore(deps): update dependency rollup to v4.22.4 (#2430)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-22 08:13:00 +09:00
49cdcbdcc2 chore(deps): update dependency electron to v32.1.2 (#2433)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-22 08:12:50 +09:00
bcff26c85b chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 72.2% (276 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2024-09-21 03:40:55 +00:00
bcfb33b4b1 chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 72.2% (276 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2024-09-21 03:40:54 +00:00
b172d8e509 chore(i18n): Added translation using Weblate (Portuguese (Brazil)) 2024-09-20 04:55:25 +02:00
f10d146272 chore(i18n): Translated using Weblate (Italian)
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2024-09-19 23:40:54 +02:00
6105821a94 feat: ESLint Flat Config (v9 support #2229) (#2426)
* Flat config

* undo accidental formatting changes

* remove extra newline
2024-09-19 21:19:41 +09:00
7c983df6f4 chore(deps): update dependency electron to v32.1.1 2024-09-19 07:39:25 +09:00
cbbddefcf8 chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 97.3% (372 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2024-09-18 15:41:01 +00:00
8d49c67fcb Update changelog for v3.5.3 2024-09-17 12:41:36 +00:00
c94b22b82c Bump version to 3.5.3 2024-09-17 21:32:22 +09:00
cab3cb49f0 chore(deps): update dependency electron to v32.1.0 2024-09-17 21:31:29 +09:00
e42084f008 fix(deps): update dependency @floating-ui/dom to v1.6.11 2024-09-17 21:30:11 +09:00
adca273ec3 chore(deps): update dependency typescript to v5.6.2 2024-09-17 21:28:03 +09:00
91dceb3c22 chore(deps): update playwright monorepo to v1.47.1 2024-09-17 21:27:47 +09:00
216e76f4a1 fix(music-together): fix ? operator 2024-09-17 21:09:30 +09:00
178bfa483f fix: openToast to toastService 2024-09-17 21:05:35 +09:00
10ecf5d2fe fix(src/index): fix typo 2024-09-17 20:40:23 +09:00
7099b81296 fix(src/index): ignore eslint error 2024-09-17 20:40:23 +09:00
1f15376b00 chore(deps): update dependency vite to v5.4.6 2024-09-17 20:39:32 +09:00
02b7a39753 chore(deps): update dependency eslint to v8.57.1 2024-09-17 20:38:38 +09:00
6edc84a8bd chore(deps): update dependency rollup to v4.21.3 2024-09-17 20:38:19 +09:00
11a0d39064 fix(song-info-front): fix nullable issue 2024-09-17 20:27:11 +09:00
d5a5ed35b6 fix: fix trustedHTML issue
- (Maybe) fix #2339, caused by YouTube's A/B testing
2024-09-17 20:05:22 +09:00
dbb9e95b32 fix(deps): update dependency i18next to v23.15.1 2024-09-17 18:27:27 +09:00
d4c8a4320d chore(deps): update typescript-eslint monorepo to v8.6.0 2024-09-17 18:27:05 +09:00
68d4f38e41 chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 94.7% (362 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2024-09-15 22:09:12 +00:00
2204784e89 chore(i18n): Translated using Weblate (Icelandic)
Currently translated at 92.9% (355 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/is/
2024-09-15 22:09:12 +00:00
c3b995b0a8 chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 6.0% (23 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2024-09-11 22:09:24 +02:00
ed0a344077 chore(i18n): Translated using Weblate (Polish)
Currently translated at 95.2% (364 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2024-09-09 22:09:15 +00:00
199d912823 Update changelog for v3.5.2 2024-09-07 12:27:30 +00:00
089eff3152 Revert "chore(deps): update dependency electron-builder to v25"
This reverts commit fe4c89c349.
2024-09-07 20:22:27 +09:00
306ee8dba5 Bump version to 3.5.2 2024-09-07 19:09:15 +09:00
a4992bafb2 fix(synced-lyric): fix timestamp
- Close #2323
- Close #2379
2024-09-07 19:06:52 +09:00
5b004eedff fix(song-info): fix regex 2024-09-07 18:40:24 +09:00
2a66076d31 fix(synced-lyric): optimize logic 2024-09-07 18:37:37 +09:00
f48e46d29c chore(deps): update dependency eslint-plugin-import to v2.30.0 2024-09-07 18:29:22 +09:00
20296f5463 chore(deps): update dependency rollup to v4.21.2 2024-09-07 18:29:16 +09:00
fe4c89c349 chore(deps): update dependency electron-builder to v25 2024-09-07 18:29:09 +09:00
3640527c8c fix(synced-lyrics): LRCLIB returns 0 results if album is undefined
- inspired by #2381
2024-09-07 18:28:13 +09:00
3326582a16 chore(deps): update dependency electron to v32 2024-09-07 18:21:41 +09:00
5dcb9fe9ba fix(deps): update dependency i18next to v23.14.0 2024-09-07 18:19:15 +09:00
336fa1e6fd fix(deps): update dependency youtubei.js to v10.4.0 2024-09-07 18:19:09 +09:00
3679a109d6 chore(deps): update dependency esbuild to v0.23.1 2024-09-07 18:15:01 +09:00
5290ed3de2 chore(deps): update playwright monorepo to v1.47.0 2024-09-07 18:14:40 +09:00
fe5195714f chore(deps): update typescript-eslint monorepo to v8.4.0 (#2401)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-07 18:14:27 +09:00
8eb846262d chore(deps): update dependency @total-typescript/ts-reset to v0.6.1 (#2396)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-07 18:09:00 +09:00
e9a1c2a91f chore(deps): update dependency electron to v31.5.0 (#2397)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-07 18:08:41 +09:00
2d1f78b383 chore(deps): update dependency eslint-import-resolver-typescript to v3.6.3 (#2376)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-07 18:06:07 +09:00
1899064fd3 chore(deps): update dependency discord-api-types to v0.37.100 (#2394)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-07 18:06:00 +09:00
e0280e5fe2 fix(deps): update dependency electron-updater to v6.3.4 (#2395)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-07 18:05:54 +09:00
d577e0fba6 chore(deps): update dependency @babel/runtime to v7.25.6 (#2388)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-07 17:26:24 +09:00
37577c2f7f chore(deps): update dependency vite-plugin-inspect to v0.8.7 (#2389)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-07 17:26:16 +09:00
c880f0a4eb chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2024-09-05 21:09:15 +02:00
4875955914 chore(deps): update dependency discord-api-types to v0.37.99 (#2374)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-04 23:47:50 +09:00
5b28c780bd chore(deps): update dependency vite to v5.4.3 (#2377)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-04 23:47:42 +09:00
4db2674b15 chore(i18n): Translated using Weblate (Greek)
Currently translated at 52.6% (201 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/el/
2024-09-02 23:09:12 +00:00
Sen
a454a0163f chore(i18n): Translated using Weblate (Dutch)
Currently translated at 74.0% (283 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2024-08-31 21:09:31 +02:00
61eb28e780 fix: incorrect regex when splitting artistName (#2378)
Fixes the incorrect regex used to split a string in the form of `Name1 & Name2` or `Name1, Name2`.

Previously the regex was actually splitting on `Name1 &, Name2`...
2024-08-29 07:48:18 +09:00
e165e64952 chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 93.7% (358 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2024-08-28 13:09:22 +00:00
f380822e11 chore(deps): update dependency @babel/runtime to v7.25.4 (#2373)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-28 12:22:29 +09:00
6b1995145a synced-lyrics: make the lyrics search more reliable (#2343)
* fix: comparing multiple artists on a single track

* fix: get song info on startup

* chore: also split on commas

* chore: re-apply .toLowerCase() on the artist names

* chore: remove redundant code

* chore: attempt at improving the initial videodata

* oops

* eureka!

* stuff
2024-08-28 12:21:58 +09:00
9317e99f43 fix(deps): update dependency solid-js to v1.8.22 (#2354)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-28 12:20:37 +09:00
66d05d8683 chore(deps): update typescript-eslint monorepo to v8.3.0 (#2350)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-28 12:20:26 +09:00
545a3a4bb6 fix(deps): update dependency electron-debug to v4.0.1 (#2349)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-28 12:20:07 +09:00
04a6d16dbe chore(deps): update dependency electron to v31.4.0 (#2356)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-28 12:19:53 +09:00
3c36477b1e fix: hide native-controls on linux when in-app-menu is used (#2366) 2024-08-28 12:19:30 +09:00
c5c191492e fix: detect the upgrade btn using the icon (#2364) 2024-08-23 07:13:55 +09:00
b12e2f607c chore(i18n): Translated using Weblate (Filipino)
Currently translated at 86.6% (331 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fil/
2024-08-20 03:09:10 +00:00
1d77ad6de4 fix: exclude build-id files from rpm (#2361) 2024-08-19 07:46:05 +09:00
25bd26d7f3 chore(i18n): Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2024-08-17 12:09:10 +02:00
d11d0abe73 chore(i18n): Translated using Weblate (Japanese)
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2024-08-17 12:09:10 +02:00
8a643c465d chore(i18n): Translated using Weblate (Estonian)
Currently translated at 18.8% (72 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/et/
2024-08-15 22:09:31 +00:00
233673b8d8 chore(i18n): Translated using Weblate (Estonian)
Currently translated at 14.1% (54 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/et/
2024-08-13 21:09:13 +02:00
5a448fab31 chore(i18n): Translated using Weblate (Catalan)
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2024-08-13 21:09:12 +02:00
42e8262cda fix(deps): update dependency i18next to v23.12.3 (#2352)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-13 11:57:27 +09:00
f64769b1d3 fix(deps): update dependency @floating-ui/dom to v1.6.10 (#2340)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-12 12:12:08 +09:00
e12998761b fix(deps): update dependency electron-updater to v6.3.3 (#2347)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-12 12:11:55 +09:00
2e20fa83b8 chore(i18n): Translated using Weblate (German)
Currently translated at 99.2% (379 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2024-08-11 10:09:24 +00:00
5149757af3 chore(i18n): Translated using Weblate (German)
Currently translated at 99.2% (379 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2024-08-11 10:09:24 +00:00
655741f108 chore(i18n): Translated using Weblate (German)
Currently translated at 96.3% (368 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2024-08-10 11:41:12 +02:00
4e58571ad0 chore(i18n): Translated using Weblate (German)
Currently translated at 96.3% (368 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2024-08-10 11:41:12 +02:00
1e4a615b47 chore(i18n): Translated using Weblate (German)
Currently translated at 94.7% (362 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2024-08-10 11:39:20 +02:00
dedcf0c9ff fix(deps): update dependency solid-js to v1.8.20 (#2345)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-10 10:58:28 +09:00
a84a7d236a chore(deps): update dependency vite to v5.4.0 (#2342)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-10 10:54:05 +09:00
e56b4b21f0 chore(i18n): Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/
2024-08-09 16:09:15 +02:00
361f9e42bd chore(i18n): Translated using Weblate (Malay)
Currently translated at 19.6% (75 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2024-08-09 16:09:13 +02:00
918736d2ca chore(i18n): Translated using Weblate (German)
Currently translated at 94.2% (360 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2024-08-09 16:09:12 +02:00
8f3d5b08ac chore(i18n): Translated using Weblate (Russian)
Currently translated at 97.3% (372 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2024-08-08 00:09:19 +02:00
4ca327d801 chore(deps): update typescript-eslint monorepo to v8.0.1 (#2335)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-07 23:03:13 +09:00
8d0aa057ad fix(deps): update dependency @floating-ui/dom to v1.6.9 (#2337)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-07 23:02:23 +09:00
b7ffee089b chore(deps): update playwright monorepo to v1.46.0 (#2336)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-07 23:02:12 +09:00
d72b994f66 chore(README): Translation README to Russian and adding Synced Lyrics to main README (#2338)
* Translation of README.md to Russian and adding Synced Lyrics to default README.md

* Syntax fixes

* Sorting of Synced Lyrics Alphabetically
2024-08-07 23:01:49 +09:00
e6dafdb068 chore(i18n): Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/
2024-08-06 11:09:21 +02:00
14886dd4bd chore(i18n): Translated using Weblate (Catalan)
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2024-08-06 11:09:17 +02:00
c9f2f88bac chore(i18n): Translated using Weblate (Russian)
Currently translated at 97.3% (372 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2024-08-06 11:09:17 +02:00
1eabbc0bbe chore(i18n): Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2024-08-05 09:09:19 +02:00
32a572b35a fix(downloader): fix playabilityStatus 2024-08-04 16:33:28 +09:00
59a5679cbb fix(cache): use cacheNoArgs for better performance 2024-08-04 16:31:07 +09:00
ac51f798c3 fix(synced-lyric): fix album_name 2024-08-04 15:49:30 +09:00
7599cc694a Revert "fix(MPRIS): Prevents player to start with invalid MPRIS interface (#1996)"
This reverts commit eaf9d310aa.

Fix #2225
2024-08-04 15:26:14 +09:00
53595654b1 chore(adblocker): add comment 2024-08-04 14:50:14 +09:00
7656c41dbc fix(adblocker/inplayer): fix Response.prototype.json
fix #2310
2024-08-04 14:36:10 +09:00
ff0c5b87c9 chore(i18n): Translated using Weblate (Estonian)
Currently translated at 2.8% (11 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/et/
2024-08-03 22:09:19 +00:00
506c95740a chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 99.4% (380 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2024-08-03 22:09:18 +00:00
575a42e28a chore(i18n): Translated using Weblate (Indonesian)
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/id/
2024-08-03 22:09:17 +00:00
dcdc6a825f chore(i18n): Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2024-08-03 22:09:16 +00:00
0a41bb1cd6 chore(i18n): Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2024-08-03 22:09:16 +00:00
72a4736dc9 chore(i18n): Translated using Weblate (Greek)
Currently translated at 47.3% (181 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/el/
2024-08-03 22:09:15 +00:00
f2b1e6b6bf chore(deps): update dependency rollup to v4.20.0 (#2326)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-03 18:47:56 +09:00
bc0e28ad6d chore(i18n): Added translation using Weblate (Estonian) 2024-08-02 23:59:14 +02:00
8ebae91c02 chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 93.7% (358 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2024-08-02 23:59:13 +02:00
954ad90733 chore(i18n): Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2024-08-02 23:59:13 +02:00
5af0643788 chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2024-08-02 23:59:13 +02:00
be633ac1f2 chore(i18n): Translated using Weblate (Chinese (Traditional))
Currently translated at 99.7% (381 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2024-08-02 21:58:41 +02:00
0d047c1fd5 chore(i18n): Translated using Weblate (Chinese (Traditional))
Currently translated at 99.7% (381 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2024-08-02 21:58:41 +02:00
e8b1aca629 chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2024-08-02 21:58:41 +02:00
5b9bacf390 chore(i18n): Translated using Weblate (Filipino)
Currently translated at 85.3% (326 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fil/
2024-08-02 14:09:23 +02:00
ccd16f4a5f chore(i18n): Translated using Weblate (Chinese (Traditional))
Currently translated at 93.4% (357 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2024-08-02 14:09:22 +02:00
02e519dab3 chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2024-08-02 14:09:21 +02:00
473ea78f12 synced-lyrics: fix album name? 2024-08-01 15:46:53 +03:00
e7f366b770 Update changelog for v3.5.1 2024-08-01 11:49:06 +00:00
66816ac42d Bump version to 3.5.1 2024-08-01 20:39:44 +09:00
08b985f2ab chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (382 of 382 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2024-08-01 13:38:36 +02:00
747bde2136 fix(synced-lyrics): fix lyric load
fix #2295
2024-08-01 20:19:08 +09:00
eabc28b39f fix(wait-for-element): add 100ms timeout for improve performance 2024-08-01 20:19:08 +09:00
3537dc19ee chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 97.8% (358 of 366 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2024-08-01 10:57:05 +00:00
6afeb60557 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (366 of 366 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2024-08-01 10:57:04 +00:00
71115dedee chore(i18n): Translated using Weblate (Italian)
Currently translated at 100.0% (366 of 366 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2024-08-01 10:57:04 +00:00
8750b54f76 fix(synced-lyrics): fix i18n 2024-08-01 19:56:32 +09:00
482a1c5073 fix(deps): update dependency youtubei.js to v10.3.0 (#2306)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-01 19:27:58 +09:00
c8d516c40b fix: Window gets stuck offscreen in some instances (#2303)
Improved offscreen detection logic, fixes th-ch#1894
2024-08-01 19:27:01 +09:00
c1ad168c32 fix: Incorrect window size on multi-monitor scaled displays (#2302)
see discussion on th-ch#2258
2024-08-01 19:26:37 +09:00
5f5be5d02f chore(deps): update dependency rollup to v4.19.2 (#2304)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-01 19:25:59 +09:00
61ef56dccc chore: enable sourcemaps in dev 2024-08-01 11:02:21 +03:00
a73b5acc75 chore(deps): update typescript-eslint monorepo to v8 (major) (#2297)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-01 16:37:08 +09:00
877573532c ts-fix: disambiguate ElectronStore typings 2024-08-01 10:10:52 +03:00
7b033b5caf fix(ambient-mode): fix ambient-mode not working for videos after restart (#2294)
* Fix Ambient Mode not working for videos after restart (#2255)

This should fix https://github.com/th-ch/youtube-music/issues/1641

* fix: fix waitForElement

---------

Co-authored-by: craftgeil <80261988+craftgeil@users.noreply.github.com>
2024-07-31 22:08:45 +09:00
8924ec29d3 fix(deps): update dependency @xhayper/discord-rpc to v1.2.0 (#2291)
* fix(deps): update dependency @xhayper/discord-rpc to v1.2.0

* fix: discord-rpc

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: JellyBrick <shlee1503@naver.com>
2024-07-31 21:57:37 +09:00
23e688aaf8 Update changelog for v3.5.0 2024-07-31 12:04:22 +00:00
9b3cbe8e01 Bump version to 3.5.0 2024-07-31 20:53:02 +09:00
67a89e8ed4 chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (366 of 366 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2024-07-31 13:51:24 +02:00
464a2b94ea fix: bump electron-builder version to 6.3.2 2024-07-31 20:37:38 +09:00
9357a15116 fix(synced-lyrics): fix type error 2024-07-31 20:32:34 +09:00
ee820bb01c Delete test-results directory 2024-07-31 19:55:51 +09:00
6b81735811 chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (357 of 357 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2024-07-31 12:54:43 +02:00
8ce91b143a plugin: Synced Lyrics (#2207)
* Added Plugin File

* Added Logic

* Known issue

* Finished Backend part

* Before cleanup

* Added Style
Removed log

* Fixed time and visibility issues

* Changed lyrics style

* Changed way lyrics are selected

* Fix

* Added style lyrics options

* Cleanup

* Fix lyrics styling
Changed how lyrics status are changed

* Moved code to make file more readable

* Change Tab Size

* Fixed issue with overlapping lyrics

* Removed debug console.log

* Added style adaptation for music videos

* Changed file indent

* Revered back to original pnpm file

* Removed unnecessary option

* Fix lyrics status bug
Removed leftover logs

* Started to implement fetching for genius lyrics

* feat(synced-lyrics): add `addedVersion` field

* Made changes according to feedbacks

* fix: add a delay of 300ms to the current time

- Since the transition takes 300ms, we need to add a delay of 300ms to the current time

* Removed test about genius.com scraping

* Removed 300ms delay

* chore: cleaned up the code

* Specified path and variable

* chore: always enable lyrics tab

* chore: use SolidJS to render the lyrics

* chore: remove useless signal

* chore: feature-parity with original PR (+some nice stuff)

* recreate lock file

* show json decode error

* feat(synced-lyrics): improve ui
- Change type assertion code
- Replace span to `yt-formatted-string`
- Add refetch button

* chore: make the lyric styling a solidjs effect

* feat: i18n

* chore: apply suggestion

---------

Co-authored-by: Su-Yong <simssy2205@gmail.com>
Co-authored-by: JellyBrick <shlee1503@naver.com>
Co-authored-by: Angelos Bouklis <53124886+ArjixWasTaken@users.noreply.github.com>
2024-07-31 19:54:21 +09:00
116dbad9bc chore(deps): update dependency electron to v31.3.1 (#2290)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-31 19:52:47 +09:00
977af3d617 chore(deps): update typescript-eslint monorepo to v7.18.0 (#2292)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-31 19:52:38 +09:00
6da8defc73 chore(i18n): Translated using Weblate (Sinhala)
Currently translated at 4.4% (16 of 357 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/si/
2024-07-29 01:09:20 +00:00
0e93a963e1 chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (357 of 357 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2024-07-29 01:09:19 +00:00
1e98b2e75a fix(deps): update dependency youtubei.js to v10.2.0 (#2285)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-29 01:30:01 +09:00
6f5f13a840 chore(deps): update dependency electron to v31.3.0 (#2282)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-28 14:10:07 +00:00
822bcedadf chore(deps): update typescript-eslint monorepo to v7.17.0 (#2283)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-28 14:09:48 +00:00
2b6aea82c3 fix(deps): update dependency solid-js to v1.8.19 (#2280)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-28 19:21:49 +09:00
4f4efb407e fix(deps): update dependency @xhayper/discord-rpc to v1.1.4 (#2279)
* fix(deps): update dependency @xhayper/discord-rpc to v1.1.4

* Update and rename @xhayper__discord-rpc@1.1.2.patch to @xhayper__discord-rpc@1.1.4.patch

* Update package.json

* fix: update pnpm-lock.yaml

* fix: use Listening instead of Playing

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: JellyBrick <shlee1503@naver.com>
2024-07-28 19:21:35 +09:00
6159e0e652 chore(deps): update dependency @babel/runtime to v7.25.0 (#2281)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-28 19:07:01 +09:00
3957e06174 fix(deps): update dependency @floating-ui/dom to v1.6.8 (#2278)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-28 19:06:26 +09:00
c78f823b9b Fix: Incorrect window size on scaled displays (#2258)
fix th-ch#1716
2024-07-28 19:02:08 +09:00
1be3bb360e chore(deps): update dependency vite-plugin-resolve to v2.5.2 (#2276)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-28 15:06:22 +09:00
ba2afd2652 chore(deps): update playwright monorepo to v1.45.3 (#2277)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-28 15:06:07 +09:00
5e283c9ea5 fix(deps): update dependency deepmerge-ts to v7.1.0 (#2263)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-28 14:59:23 +09:00
ddb1c56111 chore(deps): update dependency typescript to v5.5.4 (#2274)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-28 14:59:13 +09:00
ebd167f3f2 chore(deps): update dependency vite to v5.3.5 (#2275)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-28 14:55:57 +09:00
178a62b9d3 fix(deps): update dependency i18next to v23.12.2 (#2260)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-28 14:46:26 +09:00
f98a2cf766 chore(deps): update dependency discord-api-types to v0.37.93 (#2273)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-28 14:46:06 +09:00
fdbe6f7331 chore(deps): update dependency rollup to v4.19.1 (#2261)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-28 14:45:54 +09:00
57c2cdc91e chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 100.0% (357 of 357 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2024-07-26 18:09:17 +02:00
0f5074f8ab chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (357 of 357 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2024-07-26 18:09:13 +02:00
661396226d fix(deps): update dependency custom-electron-prompt to v1.5.8 (#2262)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-26 12:42:17 +09:00
36f27fe2e6 chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (357 of 357 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2024-07-25 15:09:16 +02:00
adf1ce4bc7 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (357 of 357 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2024-07-22 14:09:21 +02:00
43b4b8df5e chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (357 of 357 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2024-07-22 14:09:20 +02:00
4a8440c281 chore(i18n): Translated using Weblate (Catalan)
Currently translated at 100.0% (357 of 357 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2024-07-20 18:09:24 +02:00
32fe9fcffe chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (357 of 357 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2024-07-20 18:09:22 +02:00
a9896845da chore(i18n): Added translation using Weblate (Catalan) 2024-07-19 17:02:32 +02:00
a59aa07334 chore(i18n): Translated using Weblate (Filipino)
Currently translated at 83.7% (299 of 357 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fil/
2024-07-19 10:09:32 +02:00
e07d7395e7 chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (357 of 357 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2024-07-19 10:09:31 +02:00
9bb6f32ece chore(i18n): Translated using Weblate (Czech)
Currently translated at 96.3% (344 of 357 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2024-07-19 10:09:30 +02:00
ccb19a0dc9 feat(adblocker): add new option AdSpeedup (#2235)
* Ad speedup code

* And ad-speedup translations

* Update index.ts

* fix error

* Update build.yml

* add AdSpeedup as adBlock option

* remove it as own plugin

* remove console.log

* add semicolons
2024-07-18 13:16:46 +09:00
64fb6c2597 fix: disable multi-plane format for software video (#2254) 2024-07-18 13:15:26 +09:00
73c3e355fe chore(deps): update dependency eslint-plugin-prettier to v5.2.1 (#2253)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-18 03:42:41 +09:00
fc7a504643 chore(deps): update dependency vite to v5.3.4 (#2243)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-18 03:42:34 +09:00
764dc0f895 chore(deps): update typescript-eslint monorepo to v7.16.1 (#2239)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-18 03:42:26 +09:00
9f33f49ec4 chore(deps): update playwright monorepo to v1.45.2 (#2244)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-18 03:32:19 +09:00
87ae6d29bb chore(deps): update dependency vite-plugin-inspect to v0.8.5 (#2252)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-18 03:31:55 +09:00
093c8e3ca6 fix(deps): update dependency semver to v7.6.3 (#2250)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-18 03:29:19 +09:00
fec26a010d chore(deps): update dependency electron to v31.2.1 (#2241)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-17 18:08:17 +09:00
5d8aaccc55 chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 4.5% (16 of 355 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2024-07-17 08:09:14 +00:00
cda03078a9 chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (355 of 355 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2024-07-16 02:46:56 +02:00
9c139b96f4 chore(i18n): Translated using Weblate (French)
Currently translated at 98.8% (351 of 355 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2024-07-16 02:46:55 +02:00
9b2816c156 chore(i18n): Translated using Weblate (Finnish)
Currently translated at 80.8% (287 of 355 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fi/
2024-07-15 19:09:19 +00:00
b1b8847134 chore(i18n): Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (355 of 355 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2024-07-15 19:09:19 +00:00
bf9e698288 chore(i18n): Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (355 of 355 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2024-07-15 19:09:18 +00:00
28e8a1c5dd chore(i18n): Translated using Weblate (Polish)
Currently translated at 99.7% (354 of 355 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2024-07-15 19:09:17 +00:00
18e0b1b863 Update changelog for v3.4.1 2024-07-14 15:26:58 +00:00
02e2fb6a83 Bump version to 3.4.1 2024-07-15 00:18:37 +09:00
91bee4880e chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (355 of 355 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2024-07-14 17:15:57 +02:00
7de7303ebb fix(mpris): fix mpris position
- fix #2225
2024-07-15 00:14:49 +09:00
363d869cff fix(deb): fix depends
- fix #1983
2024-07-14 23:48:15 +09:00
2512af80af fix: fix touchbar icon
- fix #2183
2024-07-14 23:19:06 +09:00
887979932c fix: fix "Starting page"
- fix #1822
2024-07-14 22:59:05 +09:00
eeaaf2f158 fix: fix album actions
- fix #2202
2024-07-14 22:50:24 +09:00
e91e995b95 fix: fix playback slider
- fix #2045
2024-07-14 22:32:56 +09:00
49dd2ecac6 fix(deps): update dependency i18next to v23.12.1 (#2230)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-14 22:09:44 +09:00
06f419abc4 Bump version to 3.4.0 2024-07-14 22:08:17 +09:00
2c29461e61 fix(downloader): update types 2024-07-14 22:05:21 +09:00
a9b9e74477 chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (355 of 355 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2024-07-14 15:05:05 +02:00
30848b7c4a feat(downloader): New option to download on finish (#1964)
Co-authored-by: JellyBrick <shlee1503@naver.com>
2024-07-14 22:00:40 +09:00
83023c19a6 chore(i18n): Translated using Weblate (Romanian)
Currently translated at 100.0% (346 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ro/
2024-07-14 11:09:21 +00:00
45931a25b0 fix: rollback eslint version to v8 2024-07-14 19:24:46 +09:00
98d4ff83b1 chore(deps): update typescript-eslint monorepo to v8.0.0-alpha.42 (#2228)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-14 16:58:05 +09:00
35f1d75832 chore(deps): update dependency eslint to v9.7.0 (#2226)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-13 11:40:56 +09:00
cbbba6ec76 chore(deps): update dependency @babel/runtime to v7.24.8 (#2221)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-12 21:03:22 +09:00
35383e4730 chore(deps): update dependency node-gyp to v10.2.0 (#2216)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-12 20:58:37 +09:00
b7029cfc60 chore(deps): update dependency ws to v8.18.0 (#2217)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-11 23:32:24 +09:00
d8328e0ad5 chore(deps): update dependency glob to v11 (#2219)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-11 23:32:05 +09:00
7ccb72d399 chore(deps): update dependency esbuild to v0.23.0 (#2215)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-11 23:27:28 +09:00
5108f19ee5 chore(deps): update dependency electron to v31.2.0 (#2214)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-11 23:27:13 +09:00
041574570f fix(deps): update dependency youtubei.js to v10.1.0 (#2218)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-11 16:44:14 +09:00
9505195835 chore(i18n): Translated using Weblate (Malay)
Currently translated at 8.0% (28 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2024-07-11 06:09:18 +00:00
b33f5ff94d chore(deps): update playwright monorepo to v1.45.1 (#2212)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 19:18:51 +09:00
097f488ba0 chore(deps): update typescript-eslint monorepo to v8.0.0-alpha.41 (#2213)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 19:18:39 +09:00
521d1d8ee7 chore(deps): update dependency rollup to v4.18.1 (#2210)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 19:16:22 +09:00
f38ce093f5 chore(deps): update dependency eslint to v9.6.0 (#2192)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 18:33:38 +09:00
2e63985ed3 chore(deps): update dependency vite to v5.3.3 (#2211)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 18:30:38 +09:00
a22d08e983 chore(deps): update dependency glob to v10.4.5 (#2205)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 18:29:38 +09:00
d1b998aebd chore(deps): update dependency discord-api-types to v0.37.92 (#2204)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 18:24:13 +09:00
7f598b5856 fix(deps): update dependency solid-js to v1.8.18 (#2189)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 18:23:49 +09:00
373e27ac5b chore(deps): update dependency typescript to v5.5.3 (#2206)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-10 18:23:21 +09:00
dcd53a9234 chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 94.5% (327 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2024-07-07 21:09:22 +02:00
c59b11b63b chore(deps): update dependency electron to v31.1.0 (#2190)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-07 22:25:20 +09:00
4d8fd8718f chore(deps): update typescript-eslint monorepo to v8.0.0-alpha.40 (#2193)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-07 22:25:03 +09:00
f0c4d1da36 fix(deps): update dependency @floating-ui/dom to v1.6.7 (#2196)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-07 22:23:56 +09:00
79c669e7c1 chore(i18n): Translated using Weblate (Finnish)
Currently translated at 82.6% (286 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fi/
2024-07-05 01:09:19 +02:00
e8156fc0fe chore(i18n): Translated using Weblate (Finnish)
Currently translated at 82.6% (286 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fi/
2024-07-05 01:09:19 +02:00
348c70dca4 chore(i18n): Translated using Weblate (Finnish)
Currently translated at 64.1% (222 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fi/
2024-07-04 00:47:01 +02:00
3439dded3b chore(i18n): Translated using Weblate (Finnish)
Currently translated at 64.1% (222 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fi/
2024-07-04 00:47:01 +02:00
2ee0101e97 chore(i18n): Added translation using Weblate (Finnish) 2024-07-03 10:54:29 +02:00
6a037083dd chore(deps): update dependency vite to v5.3.2 (#2188)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-29 09:46:54 +09:00
1d1705e471 chore(deps): update dependency discord-api-types to v0.37.91 (#2187)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-29 09:42:23 +09:00
0f7fe74d40 chore(deps): update typescript-eslint monorepo to v8.0.0-alpha.34 (#2184)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-29 09:42:11 +09:00
d9f24d2c4e fix(deps): update dependency @floating-ui/dom to v1.6.6 (#2182)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-29 09:41:57 +09:00
7b6a7377a8 chore(deps): update playwright monorepo to v1.45.0 (#2181)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-29 09:41:09 +09:00
bd8468a8c1 fix(deps): update dependency ts-morph to v23 (#2180)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-29 09:40:54 +09:00
aec088f95d chore(deps): update dependency electron-vite to v2.3.0 (#2178)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-29 09:40:31 +09:00
4b12b43f57 chore(i18n): Translated using Weblate (Arabic)
Currently translated at 28.9% (100 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2024-06-28 14:09:24 +02:00
f47287de94 chore(i18n): Translated using Weblate (Thai)
Currently translated at 78.9% (273 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/th/
2024-06-28 14:09:23 +02:00
58317f4c10 chore(i18n): Translated using Weblate (Lithuanian)
Currently translated at 88.1% (305 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lt/
2024-06-23 22:09:20 +02:00
c0aae7b2ac fix(deps): update dependency conf to v13.0.1 (#2175)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-23 16:43:25 +09:00
76547ad602 chore(deps): update dependency glob to v10.4.2 (#2168)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-22 09:49:13 +09:00
8b128273c8 chore(deps): update dependency discord-api-types to v0.37.90 (#2167)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-22 08:59:25 +09:00
25d1127b21 chore(deps): update dependency typescript to v5.5.2 (#2173)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-22 08:58:53 +09:00
b3ab08b354 chore(deps): update dependency electron to v31.0.2 (#2170)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-22 08:56:45 +09:00
2ef8b4f14c chore(i18n): Translated using Weblate (Filipino)
Currently translated at 83.2% (288 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fil/
2024-06-21 13:09:24 +02:00
b39baf6d88 chore(i18n): Translated using Weblate (Thai)
Currently translated at 74.5% (258 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/th/
2024-06-21 13:09:23 +02:00
40f0b9b852 chore(i18n): Translated using Weblate (Slovenian)
Currently translated at 43.9% (152 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sl/
2024-06-18 19:09:35 +00:00
3fe8115f32 chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 100.0% (346 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2024-06-18 19:09:34 +00:00
47d3b34e4b chore(i18n): Added translation using Weblate (Slovenian) 2024-06-18 16:15:21 +02:00
d0889bb622 chore(deps): update dependency ws to v8.17.1 (#2164)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-18 16:22:45 +09:00
d6a7cbfa6f chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (346 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2024-06-17 09:09:27 +00:00
c6541b6897 chore(deps): update dependency eslint to v9.5.0 (#2162)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-16 13:44:56 +09:00
865578037b fix(deps): update dependency youtubei.js to v10 (#2136)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-16 13:43:51 +09:00
d4176eeb8a chore(deps): update dependency discord-api-types to v0.37.89 (#2153)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-16 13:43:35 +09:00
b88bbbc680 chore(deps): update dependency vite to v5.3.1 (#2154)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-16 13:43:06 +09:00
67aaccce86 fix(deps): update dependency electron-store to v10 (#2157)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-16 13:42:47 +09:00
b95b69bf50 fix(deps): update dependency conf to v13 (#2156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-16 13:40:13 +09:00
894531fd93 chore(i18n): Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/
2024-06-14 04:09:29 +00:00
8a20566e0f chore(i18n): Translated using Weblate (Filipino)
Currently translated at 82.6% (286 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fil/
2024-06-14 04:09:27 +00:00
253325a3cf chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 1.1% (4 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2024-06-14 04:09:20 +00:00
ee6716a0eb chore(i18n): Translated using Weblate (Indonesian)
Currently translated at 100.0% (346 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/id/
2024-06-14 04:09:20 +00:00
8fe5450ace chore(i18n): Translated using Weblate (Japanese)
Currently translated at 100.0% (346 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2024-06-14 04:09:19 +00:00
1bb36b38bc chore(deps): update dependency electron to v31.0.1 (#2148)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-13 17:09:51 +09:00
25cec993bc chore(i18n): Translated using Weblate (Czech)
Currently translated at 98.5% (341 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2024-06-12 17:09:11 +00:00
c744619664 chore(i18n): Translated using Weblate (Italian)
Currently translated at 100.0% (346 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2024-06-11 18:09:14 +02:00
451d30517e chore(i18n): Translated using Weblate (Czech)
Currently translated at 91.3% (316 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2024-06-11 18:09:13 +02:00
dbb345ba1f chore(deps): update dependency discord-api-types to v0.37.88 (#2138)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 10:27:46 +09:00
c60edf9718 chore(deps): update typescript-eslint monorepo to v8.0.0-alpha.30 (#2139)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 10:27:03 +09:00
bd4e3a91c8 chore(deps): update dependency electron to v31 (#2141)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 10:26:52 +09:00
0f8b586b75 chore(deps): update dependency esbuild to v0.21.5 (#2135)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-11 10:26:27 +09:00
262c17a5bd chore(i18n): Translated using Weblate (Japanese)
Currently translated at 99.4% (344 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2024-06-10 15:09:22 +02:00
542cb916b5 chore(deps): update typescript-eslint monorepo to v8.0.0-alpha.29 (#2132)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-09 20:40:36 +09:00
2627ebd675 Update changelog for v3.3.12 2024-06-08 11:04:55 +00:00
89ed7d2345 Bump version to 3.3.12 2024-06-08 19:56:02 +09:00
3c4abc1418 hotfix: Revert "chore(deps): update dependencies @cliqz/adblocker-electron, @cliqz/adblocker-electron-preload"
This reverts commit 680f4143f5.
2024-06-08 19:51:38 +09:00
de224444c2 Update changelog for v3.3.11 2024-06-08 05:11:16 +00:00
e9ae2d44c9 Bump version to 3.3.11 2024-06-08 14:01:49 +09:00
680f4143f5 chore(deps): update dependencies @cliqz/adblocker-electron, @cliqz/adblocker-electron-preload 2024-06-08 12:45:24 +09:00
23b553ea4b Revert "fix(deps): update dependency @cliqz/adblocker-electron to v1.27.10" (#2129)
This reverts commit d97aa1a8a0.
2024-06-08 11:52:15 +09:00
e2a91022fd chore(deps): update dependency vite to v5.2.13 (#2127)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-08 11:43:10 +09:00
d97aa1a8a0 fix(deps): update dependency @cliqz/adblocker-electron to v1.27.10 2024-06-07 21:18:57 +09:00
ede11307ef fix(menu): fix menubar items doesn't rendered
resolve #2113
2024-06-07 21:16:48 +09:00
b74c1a0207 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 100.0% (346 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2024-06-07 13:09:20 +02:00
104c1284f6 chore(deps): update dependency electron to v30.1.0 (#2126)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-07 19:21:03 +09:00
8af1b36551 fix(deps): update dependency deepmerge-ts to v7.0.3 (#2125)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-07 19:19:44 +09:00
ce5421ffce chore(deps): update dependency @babel/runtime to v7.24.7 (#2124)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-07 19:19:19 +09:00
98b1fd8787 chore(deps): update typescript-eslint monorepo to v8.0.0-alpha.28 (#2121)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-07 19:16:36 +09:00
ed5f1ecde3 fix(deps): update dependency electron-updater to v6.2.1 (#2120)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-07 19:16:20 +09:00
efbd9922fd chore(deps): update dependency discord-api-types to v0.37.87 (#2119)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-07 19:14:10 +09:00
463bc2c976 chore(i18n): Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (346 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2024-06-05 18:09:13 +00:00
e71a70d25c chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (346 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2024-06-05 18:09:13 +00:00
4ae9a2820e chore(i18n): Translated using Weblate (Nepali)
Currently translated at 100.0% (346 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ne/
2024-06-04 06:09:19 +00:00
3ac1cc9204 fix(deps): update dependency deepmerge-ts to v7.0.2 (#2118)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-03 19:06:50 +09:00
2938c93803 chore(deps): update typescript-eslint monorepo to v8.0.0-alpha.25 (#2114)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-03 19:02:38 +09:00
7e8d31172c chore(i18n): Translated using Weblate (Nepali)
Currently translated at 21.0% (73 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ne/
2024-06-03 07:09:16 +02:00
e0353a88ce chore(i18n): Translated using Weblate (Sinhala)
Currently translated at 2.0% (7 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/si/
2024-06-03 07:09:15 +02:00
635f3334a6 chore(i18n): Translated using Weblate (Thai)
Currently translated at 68.7% (238 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/th/
2024-06-03 07:09:15 +02:00
7800e106cb chore(i18n): Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (346 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2024-06-03 07:09:14 +02:00
e436e6eae0 chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (346 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2024-06-03 07:09:13 +02:00
0c24b70f23 chore(i18n): Added translation using Weblate (Nepali) 2024-06-03 06:04:30 +02:00
2693a1598a chore(i18n): Added translation using Weblate (Sinhala) 2024-06-02 17:09:31 +02:00
7a87e90edf chore(i18n): Added translation using Weblate (Arabic) 2024-06-02 08:29:33 +02:00
d333fc1075 Update changelog for v3.3.10 2024-06-02 03:56:07 +00:00
1f99db3217 Bump version to 3.3.10 2024-06-02 12:49:41 +09:00
4fa9762a50 fix(deps): bump deps 2024-06-02 12:47:32 +09:00
1e5bea85b3 fix(deps): bump @typescript-eslint/eslint-plugin version to 8.0.0-alpha.24
ESLint v9
2024-06-02 12:33:29 +09:00
739518a6fd fix(adblocker): fix blank screen
- Revert @cliqz/adblocker-electron version from 1.27.3 to 1.27.1

- fix #2103
- fix #2105
2024-06-02 12:30:17 +09:00
24b0ae2c6b chore(i18n): Translated using Weblate (Croatian)
Currently translated at 1.4% (5 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2024-06-02 05:16:48 +02:00
dae6fc9149 chore(i18n): Translated using Weblate (Croatian)
Currently translated at 0.5% (2 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2024-06-02 03:20:31 +02:00
25958a7bb1 chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 90.4% (313 of 346 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2024-06-02 03:20:30 +02:00
8b901789dd chore(i18n): Added translation using Weblate (Croatian) 2024-06-01 16:10:33 +02:00
09a582192f Update changelog for v3.3.9 2024-06-01 01:14:52 +00:00
403 changed files with 57891 additions and 16046 deletions

View File

@ -1 +0,0 @@
.eslintrc.js

View File

@ -1,80 +0,0 @@
module.exports = {
extends: [
'eslint:recommended',
'plugin:import/recommended',
'plugin:import/typescript',
'plugin:@typescript-eslint/eslint-recommended',
'plugin:@typescript-eslint/recommended',
'plugin:@typescript-eslint/recommended-requiring-type-checking',
],
plugins: ['prettier', '@typescript-eslint', 'import'],
parser: '@typescript-eslint/parser',
parserOptions: {
project: './tsconfig.json',
tsconfigRootDir: __dirname,
sourceType: 'module',
ecmaVersion: 'latest'
},
rules: {
'arrow-parens': ['error', 'always'],
'object-curly-spacing': ['error', 'always'],
'@typescript-eslint/no-floating-promises': 'off',
'@typescript-eslint/no-misused-promises': ['off', { checksVoidReturn: false }],
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
"@typescript-eslint/no-non-null-assertion": "off",
'import/first': 'error',
'import/newline-after-import': 'error',
'import/no-default-export': 'off',
'import/no-duplicates': 'error',
'import/no-unresolved': ['error', { ignore: ['^virtual:', '\\?inline$', '\\?raw$', '\\?asset&asarUnpack'] }],
'import/order': [
'error',
{
'groups': ['builtin', 'external', ['internal', 'index', 'sibling'], 'parent', 'type'],
'newlines-between': 'always-and-inside-groups',
'alphabetize': {order: 'ignore', caseInsensitive: false}
}
],
'import/prefer-default-export': 'off',
'camelcase': ['error', {properties: 'never'}],
'class-methods-use-this': 'off',
'lines-around-comment': [
'error',
{
beforeBlockComment: false,
afterBlockComment: false,
beforeLineComment: false,
afterLineComment: false,
},
],
'max-len': 'off',
'no-mixed-operators': 'error',
'no-multi-spaces': ['error', {ignoreEOLComments: true}],
'no-tabs': 'error',
'no-void': 'error',
'no-empty': 'off',
'prefer-promise-reject-errors': 'off',
'quotes': ['error', 'single', {
avoidEscape: true,
allowTemplateLiterals: false,
}],
'quote-props': ['error', 'consistent'],
'semi': ['error', 'always'],
},
env: {
browser: true,
node: true,
es6: true,
},
ignorePatterns: ['dist', 'node_modules'],
root: true,
settings: {
'import/parsers': {
'@typescript-eslint/parser': ['.ts']
},
'import/resolver': {
typescript: {},
exports: {},
},
},
};

View File

@ -1,5 +1,5 @@
name: Bug Report
description: Report a YouTube Music bug
description: Report a Pear Desktop bug
title: "[Bug]: "
labels: "bug :beetle:"
body:
@ -8,17 +8,17 @@ body:
label: Preflight Checklist
description: Please ensure you've completed all of the following.
options:
- label: I use the latest version of YouTube Music (Application).
- label: I use the latest version of Pear Desktop (Application).
required: true
- label: I have searched the [issue tracker](https://github.com/th-ch/youtube-music/issues) for a bug report that matches the one I want to file, without success.
- label: I have searched the [issue tracker](https://github.com/pear-devs/pear-desktop/issues) for a bug report that matches the one I want to file, without success.
required: true
- label: I understand that **th-ch/youtube-music has NO affiliation with Google or YouTube**
- label: I understand that **pear-devs/pear-desktop has NO affiliation with Google or YouTube**
required: true
- type: input
attributes:
label: YouTube Music (Application) Version
label: Pear Desktop (Application) Version
description: |
What version of the YouTube Music Application are you using?
What version of the Pear Desktop Application are you using?
Note: Please check if this issue is reproducible with the latest stable release.
placeholder: 2.0.0
@ -28,7 +28,7 @@ body:
attributes:
label: Checklists
options:
- label: I use the portable version of the YouTube Music Application.
- label: I use the portable version of the Pear Desktop Application.
- label: I can reproduce this issue in the [official version of (WEB) YTM](https://music.youtube.com).
- type: dropdown
attributes:
@ -60,8 +60,8 @@ body:
required: true
- type: input
attributes:
label: Last Known Working YouTube Music (Application) version
description: (If applicable) What is the last version of YouTube Music this worked in?
label: Last Known Working Pear Desktop (Application) version
description: (If applicable) What is the last version of Pear Desktop this worked in?
placeholder: 1.20.0
- type: textarea
attributes:
@ -92,4 +92,4 @@ body:
- type: textarea
attributes:
label: Additional Information
description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here.
description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here.

View File

@ -1,5 +1,5 @@
name: Feature Request
description: Suggest an idea for YouTube Music
description: Suggest an idea for Pear Desktop
title: "[Feature Request]: "
labels: "enhancement :sparkles:"
body:
@ -8,9 +8,9 @@ body:
label: Preflight Checklist
description: Please ensure you've completed all of the following.
options:
- label: I use the latest version of YouTube Music (Application).
- label: I use the latest version of Pear Desktop (Application).
required: true
- label: I have searched the [issue tracker](https://github.com/th-ch/youtube-music/issues) for a feature request that matches the one I want to file, without success.
- label: I have searched the [issue tracker](https://github.com/pear-devs/pear-desktop/issues) for a feature request that matches the one I want to file, without success.
required: true
- type: textarea
attributes:

View File

@ -1,4 +1,4 @@
name: Build YouTube Music
name: Build Pear Desktop
on:
push:
@ -6,11 +6,12 @@ on:
pull_request:
env:
NODE_VERSION: "20.x"
NODE_VERSION: "22.x"
jobs:
build:
name: Build YouTube Music
if: github.event.pull_request.draft == false
name: Build Pear Desktop
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
@ -18,24 +19,24 @@ jobs:
os: [ macos-latest, ubuntu-latest, windows-latest ]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Install pnpm
uses: pnpm/action-setup@v2
uses: pnpm/action-setup@v4
with:
version: 9
version: 10
run_install: false
- name: Setup NodeJS
if: startsWith(matrix.os, 'macOS') != true
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
- name: Setup NodeJS for macOS
if: startsWith(matrix.os, 'macOS')
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
@ -44,28 +45,34 @@ jobs:
# Only vite build without release if it is a fork, or it is a pull-request
- name: Vite Build
if: github.repository == 'th-ch/youtube-music' && github.event_name == 'pull_request'
if: github.repository == 'pear-devs/pear-desktop' && github.event_name == 'pull_request'
run: |
pnpm build
# Build and release if it's the main repository and is not pull-request
- name: Build and release on Mac
if: startsWith(matrix.os, 'macOS') && (github.repository == 'th-ch/youtube-music' && github.event_name != 'pull_request')
if: startsWith(matrix.os, 'macOS') && (github.repository == 'pear-devs/pear-desktop' && github.event_name != 'pull_request')
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
pnpm release:mac
- name: Build and release on Linux
if: startsWith(matrix.os, 'ubuntu') && (github.repository == 'th-ch/youtube-music' && github.event_name != 'pull_request')
if: startsWith(matrix.os, 'ubuntu') && (github.repository == 'pear-devs/pear-desktop' && github.event_name != 'pull_request')
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
sudo snap install snapcraft --classic
sudo apt update
sudo apt install -y flatpak flatpak-builder
sudo flatpak remote-add --if-not-exists --system flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y flathub org.freedesktop.Platform/x86_64/24.08
sudo flatpak install -y flathub org.freedesktop.Sdk/x86_64/24.08
sudo flatpak install -y flathub org.electronjs.Electron2.BaseApp/x86_64/24.08
pnpm release:linux
- name: Build and release on Windows
if: startsWith(matrix.os, 'windows') && (github.repository == 'th-ch/youtube-music' && github.event_name != 'pull_request')
if: startsWith(matrix.os, 'windows') && (github.repository == 'pear-devs/pear-desktop' && github.event_name != 'pull_request')
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
@ -81,30 +88,30 @@ jobs:
release:
runs-on: ubuntu-latest
name: Release YouTube Music
if: github.repository == 'th-ch/youtube-music' && github.ref == 'refs/heads/master'
name: Release Pear Desktop
if: github.repository == 'pear-devs/pear-desktop' && github.ref == 'refs/heads/master'
needs: build
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Install pnpm
uses: pnpm/action-setup@v2
uses: pnpm/action-setup@v4
with:
version: 9
version: 10
run_install: false
- name: Setup NodeJS
if: startsWith(matrix.os, 'macOS') != true
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
- name: Setup NodeJS for macOS
if: startsWith(matrix.os, 'macOS')
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
@ -143,11 +150,11 @@ jobs:
name: ${{ env.VERSION_TAG }}
replacebody: true
body: |
See [changelog](https://github.com/th-ch/youtube-music/blob/master/changelog.md#${{ env.CHANGELOG_ANCHOR }}) for the list of updates and the full diff.
See [changelog](https://github.com/pear-devs/pear-desktop/blob/master/changelog.md#${{ env.CHANGELOG_ANCHOR }}) for the list of updates and the full diff.
Thanks to all contributors! 🏅
(Note for Windows: `YouTube-Music-Web-Setup-${{ env.VERSION_TAG }}.exe` is an installer, and `YouTube-Music-${{ env.VERSION_TAG }}.exe` is a portable version)
(Note for Windows: `Pear-Desktop-Web-Setup-${{ env.VERSION_TAG }}.exe` is an installer, and `Pear-Desktop-${{ env.VERSION_TAG }}.exe` is a portable version)
- name: Update changelog
if: ${{ env.VERSION_HASH == '' }}
@ -156,7 +163,7 @@ jobs:
- name: Commit changelog
if: ${{ env.VERSION_HASH == '' }}
uses: stefanzweifel/git-auto-commit-action@v5
uses: stefanzweifel/git-auto-commit-action@v6
with:
commit_message: Update changelog for ${{ env.VERSION_TAG }}
file_pattern: "changelog.md"

View File

@ -12,9 +12,11 @@ permissions:
jobs:
dependency-review:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- name: "Checkout Repository"
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: "Dependency Review"
uses: actions/dependency-review-action@v4

147
.github/workflows/pr-build-artifacts.yml vendored Normal file
View File

@ -0,0 +1,147 @@
name: Build PR Artifacts
on:
pull_request:
types: [opened, synchronize, reopened]
env:
NODE_VERSION: "22.x"
jobs:
check-permissions:
if: github.event.pull_request.draft == false
name: Check if user has write access
runs-on: ubuntu-latest
outputs:
has-write-access: ${{ steps.check.outputs.require-result }}
steps:
- name: Check user permission
id: check
uses: actions-cool/check-user-permission@v2
with:
require: write
username: ${{ github.event.pull_request.user.login }}
build:
name: Build ${{ matrix.os }}
needs: check-permissions
if: needs.check-permissions.outputs.has-write-access == 'true'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v5
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
run_install: false
- name: Setup NodeJS
if: startsWith(matrix.os, 'macOS') != true
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
- name: Setup NodeJS for macOS
if: startsWith(matrix.os, 'macOS')
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build on macOS
if: startsWith(matrix.os, 'macOS')
run: |
pnpm dist:mac
pnpm dist:mac:arm64
- name: Install Linux dependencies
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo snap install snapcraft --classic
sudo apt update
sudo apt install -y flatpak flatpak-builder
sudo flatpak remote-add --if-not-exists --system flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y flathub org.freedesktop.Platform/x86_64/24.08
sudo flatpak install -y flathub org.freedesktop.Sdk/x86_64/24.08
sudo flatpak install -y flathub org.electronjs.Electron2.BaseApp/x86_64/24.08
- name: Build on Linux
if: startsWith(matrix.os, 'ubuntu')
run: |
pnpm dist:linux
pnpm dist:linux:deb-arm64
pnpm dist:linux:rpm-arm64
- name: Build on Windows
if: startsWith(matrix.os, 'windows')
run: |
pnpm dist:win
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts-${{ matrix.os }}
path: pack/
retention-days: 7
if-no-files-found: error
comment:
name: Comment on PR
needs: [check-permissions, build]
if: always() && needs.check-permissions.outputs.has-write-access == 'true'
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Create comment
uses: actions/github-script@v7
with:
script: |
const runId = context.runId;
const runUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${runId}`;
const buildResult = '${{ needs.build.result }}';
let comment;
if (buildResult === 'success') {
comment = `## 🚀 Build Artifacts Ready!
The builds have completed successfully. You can download the artifacts from the workflow run:
**[📦 Download Artifacts](${runUrl})**
### Available builds:
- **Windows**: \`build-artifacts-windows-latest\`
- **macOS**: \`build-artifacts-macos-latest\`
- **Linux**: \`build-artifacts-ubuntu-latest\`
*Note: Artifacts are available for 7 days.*`;
} else if (buildResult === 'failure') {
comment = `## ❌ Build Failed
Unfortunately, one or more builds failed. Please check the workflow run for details:
**[View Workflow Run](${runUrl})**`;
} else {
comment = `## ⚠️ Build Status: ${buildResult}
The build process completed with status: **${buildResult}**
**[View Workflow Run](${runUrl})**`;
}
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment
});

42
.github/workflows/reviewdog.yml vendored Normal file
View File

@ -0,0 +1,42 @@
name: reviewdog
on: [pull_request_target]
env:
NODE_VERSION: "22.x"
jobs:
eslint:
if: github.event.pull_request.draft == false
name: runner / eslint
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
checks: write
steps:
- uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
run_install: false
- name: Setup NodeJS
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- uses: reviewdog/action-eslint@v1.34.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review # Change reporter.
eslint_flags: './src'
fail_level: error

View File

@ -20,11 +20,11 @@ jobs:
TAG_NAME: ${{ inputs.tag_name || github.event.release.tag_name }}
run: echo "WINGET_TAG_NAME=$(echo ${TAG_NAME#v})" >> $GITHUB_ENV
- name: Submit package to Windows Package Manager Community Repository
uses: vedantmgoyal2009/winget-releaser@v2
uses: vedantmgoyal2009/winget-releaser@main
with:
identifier: th-ch.YouTubeMusic
installers-regex: '^YouTube-Music-Web-Setup-[\d\.]+\.exe$'
identifier: pear-devs.PearDesktop
installers-regex: '^Pear-Desktop-Web-Setup-[\d\.]+\.exe$'
version: ${{ env.WINGET_TAG_NAME }}
release-tag: ${{ inputs.tag_name || github.event.release.tag_name }}
token: ${{ secrets.WINGET_ACC_TOKEN }}
fork-user: youtube-music-winget
fork-user: pear-desktop-winget

3
.gitignore vendored
View File

@ -1,7 +1,6 @@
node_modules
/dist
/pack
electron-builder.yml
.vscode/settings.json
.idea
@ -13,3 +12,5 @@ electron-builder.yml
!.yarn/sdks
!.yarn/versions
.vite-inspect
.DS_Store

View File

@ -1,5 +1,7 @@
{
"tabWidth": 2,
"useTabs": false,
"singleQuote": true
"singleQuote": true,
"trailingComma": "all",
"quoteProps": "consistent"
}

197
README.md
View File

@ -1,44 +1,39 @@
<div align="center">
# YouTube Music
# :pear: Pear Desktop
[![GitHub release](https://img.shields.io/github/release/th-ch/youtube-music.svg?style=for-the-badge&logo=youtube-music)](https://github.com/th-ch/youtube-music/releases/)
[![GitHub license](https://img.shields.io/github/license/th-ch/youtube-music.svg?style=for-the-badge)](https://github.com/th-ch/youtube-music/blob/master/LICENSE)
[![eslint code style](https://img.shields.io/badge/code_style-eslint-5ed9c7.svg?style=for-the-badge)](https://github.com/th-ch/youtube-music/blob/master/.eslintrc.js)
[![Build status](https://img.shields.io/github/actions/workflow/status/th-ch/youtube-music/build.yml?branch=master&style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/)
[![GitHub All Releases](https://img.shields.io/github/downloads/th-ch/youtube-music/total?style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/)
[![AUR](https://img.shields.io/aur/version/youtube-music-bin?color=blueviolet&style=for-the-badge&logo=youtube-music)](https://aur.archlinux.org/packages/youtube-music-bin)
[![Known Vulnerabilities](https://snyk.io/test/github/th-ch/youtube-music/badge.svg)](https://snyk.io/test/github/th-ch/youtube-music)
[![GitHub release](https://img.shields.io/github/release/pear-devs/pear-desktop.svg?style=for-the-badge)](https://github.com/pear-devs/pear-desktop/releases/)
[![GitHub license](https://img.shields.io/github/license/pear-devs/pear-desktop.svg?style=for-the-badge)](https://github.com/pear-devs/pear-desktop/blob/master/license)
[![eslint code style](https://img.shields.io/badge/code_style-eslint-5ed9c7.svg?style=for-the-badge)](https://github.com/pear-devs/pear-desktop/blob/master/eslint.config.mjs)
[![Build status](https://img.shields.io/github/actions/workflow/status/pear-devs/pear-desktop/build.yml?branch=master&style=for-the-badge)](https://GitHub.com/pear-devs/pear-desktop/releases/)
[![GitHub All Releases](https://img.shields.io/github/downloads/pear-devs/pear-desktop/total?style=for-the-badge)](https://GitHub.com/pear-devs/pear-desktop/releases/)
<!--[![AUR](https://img.shields.io/aur/version/pear-desktop-bin?color=blueviolet&style=for-the-badge)](https://aur.archlinux.org/packages/pear-desktop-bin)-->
[![Known Vulnerabilities](https://snyk.io/test/github/pear-devs/pear-desktop/badge.svg)](https://snyk.io/test/github/pear-devs/pear-desktop)
</div>
![Screenshot](web/screenshot.jpg "Screenshot")
<!--![Screenshot](web/screenshot.png "Screenshot")-->
- Native look & feel extension
<div align="center">
<a href="https://github.com/th-ch/youtube-music/releases/latest">
<img src="web/youtube-music.svg" width="400" height="100" alt="YouTube Music SVG">
</a>
</div>
Read this in other languages: [🇰🇷](./docs/readme/README-ko.md), [🇮🇸](./docs/readme/README-is.md), [🇨🇱 🇪🇸](./docs/readme/README-es.md)
**Electron wrapper around YouTube Music featuring:**
- Native look & feel, aims at keeping the original interface
- Framework for custom plugins: change YouTube Music to your needs (style, content, features), enable/disable plugins in
one click
## Demo Image
| Player Screen (album color theme & ambient light) |
|:---------------------------------------------------------------------------------------------------------:|
|![Screenshot1](https://github.com/th-ch/youtube-music/assets/16558115/53efdf73-b8fa-4d7b-a235-b96b91ea77fc)|
> [!IMPORTANT]
> ⚠️ Disclaimer
>
> **No Affiliation**
>
> This project, and its contributors, are not affiliated with, authorized by, endorsed by, or in any way officially connected with Google LLC, YouTube, or any of their subsidiaries or affiliates. **This is an independent, non-profit, and unofficial extension developed by a team of volunteers with the goal of providing a desktop experience.**
>
> **Trademarks**
>
> The names "Google" and "YouTube Music", as well as related names, marks, emblems, and images, are registered trademarks of their respective owners. Any use of these trademarks is for identification and reference purposes only and does not imply any association with the trademark holder. We have no intention of infringing upon these trademarks or causing harm to the trademark holders.
>
> **Limitation of Liability**
>
> This application (extension) is provided "AS IS", and you use it at your own risk. In no event shall the developers or contributors be liable for any claim, damages, or other liability, including any legal consequences, arising from, out of, or in connection with the software or the use or other dealings in the software. The responsibility for any and all outcomes of using this software rests entirely with the user.
## Content
- [Features](#features)
- [Available plugins](#available-plugins)
- [Translation](#translation)
- [Download](#download)
- [Arch Linux](#arch-linux)
@ -56,166 +51,63 @@ Read this in other languages: [🇰🇷](./docs/readme/README-ko.md), [🇮🇸]
- [License](#license)
- [FAQ](#faq)
## Features:
- **Auto confirm when paused** (Always Enabled): disable
the ["Continue Watching?"](https://user-images.githubusercontent.com/61631665/129977894-01c60740-7ec6-4bf0-9a2c-25da24491b0e.png)
popup that pause music after a certain time
- And more ...
## Available plugins:
- **Ad Blocker**: Block all ads and tracking out of the box
- **Album Actions**: Adds Undislike, Dislike, Like, and Unlike buttons to apply this to all songs in a playlist or album
- **Album Color Theme**: Applies a dynamic theme and visual effects based on the album color palette
- **Ambient Mode**: Applies a lighting effect by casting gentle colors from the video, into your screens background
- **Audio Compressor**: Apply compression to audio (lowers the volume of the loudest parts of the signal and raises the
volume of the softest parts)
- **Blur Navigation Bar**: makes navigation bar transparent and blurry
- **Bypass Age Restrictions**: bypass YouTube's age verification
- **Captions Selector**: Enable captions
- **Compact Sidebar**: Always set the sidebar in compact mode
- **Crossfade**: Crossfade between songs
- **Disable Autoplay**: Makes every song start in "paused" mode
- **[Discord](https://discord.com/) Rich Presence**: Show your friends what you listen to
with [Rich Presence](https://user-images.githubusercontent.com/28219076/104362104-a7a0b980-5513-11eb-9744-bb89eabe0016.png)
- **Downloader**: downloads
MP3 [directly from the interface](https://user-images.githubusercontent.com/61631665/129977677-83a7d067-c192-45e1-98ae-b5a4927393be.png) [(youtube-dl)](https://github.com/ytdl-org/youtube-dl)
- **Exponential Volume**: Makes the volume
slider [exponential](https://greasyfork.org/en/scripts/397686-youtube-music-fix-volume-ratio/) so it's easier to
select lower volumes
- **In-App Menu**: [gives bars a fancy, dark look](https://user-images.githubusercontent.com/78568641/112215894-923dbf00-8c29-11eb-95c3-3ce15db27eca.png)
> (see [this post](https://github.com/th-ch/youtube-music/issues/410#issuecomment-952060709) if you have problem
accessing the menu after enabling this plugin and hide-menu option)
- **Scrobbler**: Adds scrobbling support for [Last.fm](https://www.last.fm/) and [ListenBrainz](https://listenbrainz.org/)
- **Lumia Stream**: Adds [Lumia Stream](https://lumiastream.com/) support
- **Lyrics Genius**: Adds lyrics support for most songs
- **Music Together**: Share a playlist with others. When the host plays a song, everyone else will hear the same song
- **Navigation**: Next/Back navigation arrows directly integrated in the interface, like in your favorite browser
- **No Google Login**: Remove Google login buttons and links from the interface
- **Notifications**: Display a notification when a song starts
playing ([interactive notifications](https://user-images.githubusercontent.com/78568641/114102651-63ce0e00-98d0-11eb-9dfe-c5a02bb54f9c.png)
are available on windows)
- **Picture-in-picture**: allows to switch the app to picture-in-picture mode
- **Playback Speed**: Listen fast, listen
slow! [Adds a slider that controls song speed](https://user-images.githubusercontent.com/61631665/129976003-e55db5ba-bf42-448c-a059-26a009775e68.png)
- **Precise Volume**: Control the volume precisely using mousewheel/hotkeys, with a custom hud and customizable volume
steps
- **Shortcuts (& MPRIS)**: Allows setting global hotkeys for playback (play/pause/next/previous) +
disable [media osd](https://user-images.githubusercontent.com/84923831/128601225-afa38c1f-dea8-4209-9f72-0f84c1dd8b54.png)
by overriding media keys + enable Ctrl/CMD + F to search + enable linux mpris support for
mediakeys + [custom hotkeys](https://github.com/Araxeus/youtube-music/blob/1e591d6a3df98449bcda6e63baab249b28026148/providers/song-controls.js#L13-L50)
for [advanced users](https://github.com/th-ch/youtube-music/issues/106#issuecomment-952156902)
- **Skip Disliked Song**: Skips disliked songs
- **Skip Silences**: Automatically skip silenced sections
- [**SponsorBlock**](https://github.com/ajayyy/SponsorBlock): Automatically Skips non-music parts like intro/outro or
parts of music videos where the song isn't playing
- **Taskbar Media Control**: Control playback from
your [Windows taskbar](https://user-images.githubusercontent.com/78568641/111916130-24a35e80-8a82-11eb-80c8-5021c1aa27f4.png)
- **TouchBar**: Custom TouchBar layout for macOS
- **Tuna OBS**: Integration with [OBS](https://obsproject.com/)'s
plugin [Tuna](https://obsproject.com/forum/resources/tuna.843/)
- **Video Quality Changer**: Allows changing the video quality with
a [button](https://user-images.githubusercontent.com/78568641/138574366-70324a5e-2d64-4f6a-acdd-dc2a2b9cecc5.png) on
the video overlay
- **Video Toggle**: Adds
a [button](https://user-images.githubusercontent.com/28893833/173663950-63e6610e-a532-49b7-9afa-54cb57ddfc15.png) to
switch between Video/Song mode. can also optionally remove the whole video tab
- **Visualizer**: Different music visualizers
## Translation
You can help with translation on [Hosted Weblate](https://hosted.weblate.org/projects/youtube-music/).
You can help with translation on [Hosted Weblate](https://bit.ly/48n5YF7).
<a href="https://hosted.weblate.org/engage/youtube-music/">
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/multi-auto.svg" alt="translation status" />
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/287x66-black.png" alt="translation status 2" />
<a href="https://bit.ly/48n5YF7/">
<img src="https://bit.ly/4q83L6S" alt="translation status" />
<img src="https://bit.ly/4h3zBxo" alt="translation status 2" />
</a>
## Download
You can check out the [latest release](https://github.com/th-ch/youtube-music/releases/latest) to quickly find the
You can check out the [latest release](https://github.com/pear-devs/pear-desktop/releases/latest) to quickly find the
latest version.
### Arch Linux
Install the [`youtube-music-bin`](https://aur.archlinux.org/packages/youtube-music-bin) package from the AUR. For AUR installation instructions, take a look at
Install the [`pear-desktop`](https://aur.archlinux.org/packages/pear-desktop) package from the AUR. For AUR installation instructions, take a look at
this [wiki page](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages).
### macOS
You can install the app using Homebrew (see the [cask definition](https://github.com/th-ch/homebrew-youtube-music)):
You can install the app using Homebrew (see the [cask definition](https://github.com/pear-devs/pear-desktop-homebrew)):
```bash
brew install th-ch/youtube-music/youtube-music
brew install pear-devs/pear-desktop
```
If you install the app manually and get an error "is damaged and cant be opened." when launching the app, run the following in the Terminal:
```bash
xattr -cr /Applications/YouTube\ Music.app
/usr/bin/xattr -cr /Applications/Pear\ Desktop.app
```
### Windows
You can use the [Scoop package manager](https://scoop.sh) to install the `youtube-music` package from
You can use the [Scoop package manager](https://scoop.sh) to install the `pear-desktop` package from
the [`extras` bucket](https://github.com/ScoopInstaller/Extras).
```bash
scoop bucket add extras
scoop install extras/youtube-music
scoop install extras/pear-desktop
```
Alternately you can use [Winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/), Windows 11s
official CLI package manager to install the `th-ch.YouTubeMusic` package.
official CLI package manager to install the `pear-devs.pear-desktop` package.
*Note: Microsoft Defender SmartScreen might block the installation since it is from an "unknown publisher". This is also
true for the manual installation when trying to run the executable(.exe) after a manual download here on github (same
file).*
```bash
winget install th-ch.YouTubeMusic
winget install pear-devs.pear-desktop
```
#### How to install without a network connection? (in Windows)
- Download the `*.nsis.7z` file for _your device architecture_ in [release page](https://github.com/th-ch/youtube-music/releases/latest).
- Download the `*.nsis.7z` file for _your device architecture_ in [release page](https://github.com/pear-devs/pear-desktop/releases/latest).
- `x64` for 64-bit Windows
- `ia32` for 32-bit Windows
- `arm64` for ARM64 Windows
@ -232,8 +124,8 @@ Some predefined themes are available in https://github.com/kerichdev/themes-for-
## Dev
```bash
git clone https://github.com/th-ch/youtube-music
cd youtube-music
git clone https://github.com/pear-devs/pear-desktop
cd pear-desktop
pnpm install --frozen-lockfile
pnpm dev
```
@ -298,7 +190,7 @@ export default createPlugin({
console.log(await context.ipc.invoke('some-event'));
},
// Only renderer available hook
onPlayerApiReady(api: YoutubePlayer, context: RendererContext) {
onPlayerApiReady(api, context) {
// set plugin config easily
context.setConfig({ myConfig: api.getVolume() });
},
@ -327,7 +219,7 @@ import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Plugin Label',
restartNeeded: true, // if value is true, ytmusic will show a restart dialog
restartNeeded: true, // if value is true, pear-desktop will show a restart dialog
config: {
enabled: false,
}, // your custom config
@ -348,8 +240,7 @@ export default createPlugin({
enabled: false,
}, // your custom config
renderer() {
// Remove the login button
document.querySelector(".sign-in-link.ytmusic-nav-bar").remove();
console.log('hello from renderer');
} // define renderer hook
});
```
@ -390,7 +281,7 @@ Uses [Playwright](https://playwright.dev/) to test the app.
## License
MIT © [th-ch](https://github.com/th-ch/youtube-music)
MIT © [pear-devs](https://github.com/pear-devs/pear-desktop)
## FAQ

View File

@ -2,7 +2,7 @@
<html>
<head>
<meta charset="utf-8" />
<title>Cannot load YouTube Music</title>
<title>Cannot load Pear Desktop</title>
<style>
body {
background: #000;
@ -43,7 +43,7 @@
<body>
<div class="container">
<p>Cannot load YouTube Music… Internet disconnected?</p>
<p>Cannot load Pear Desktop… Internet disconnected?</p>
<a class="button" href="#" onclick="reload()">Retry</a>
</div>
</body>

Binary file not shown.

View File

@ -0,0 +1,35 @@
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_d_18_2)">
<circle cx="512" cy="512" r="410" fill="url(#paint0_linear_18_2)"/>
<circle cx="512" cy="512" r="402" stroke="url(#paint1_radial_18_2)" stroke-opacity="0.5" stroke-width="16"/>
</g>
<path d="M675 505.072C680.333 508.152 680.333 515.849 675 518.928L436.5 656.626C431.167 659.705 424.5 655.857 424.5 649.698V374.302C424.5 368.24 430.96 364.415 436.249 367.234L436.5 367.374L675 505.072Z" fill="url(#paint2_linear_18_2)" stroke="url(#paint3_linear_18_2)" stroke-width="8" stroke-linejoin="round"/>
<defs>
<filter id="filter0_d_18_2" x="78" y="90" width="868" height="868" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="12"/>
<feGaussianBlur stdDeviation="12"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.866667 0 0 0 0 0.141176 0 0 0 0 0.462745 0 0 0 0.4 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_18_2"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_18_2" result="shape"/>
</filter>
<linearGradient id="paint0_linear_18_2" x1="102" y1="102" x2="922" y2="922" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF632F"/>
<stop offset="1" stop-color="#DC148C"/>
</linearGradient>
<radialGradient id="paint1_radial_18_2" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(512 512) rotate(45) scale(579.828)">
<stop offset="0.68" stop-color="white" stop-opacity="0"/>
<stop offset="0.72" stop-color="white"/>
</radialGradient>
<linearGradient id="paint2_linear_18_2" x1="512" y1="329" x2="512" y2="695" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="white" stop-opacity="0.4"/>
</linearGradient>
<linearGradient id="paint3_linear_18_2" x1="512" y1="329" x2="512" y2="695" gradientUnits="userSpaceOnUse">
<stop stop-color="white" stop-opacity="0"/>
<stop offset="1" stop-color="white" stop-opacity="0.5"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,67 @@
{
"fill" : {
"linear-gradient" : [
"display-p3:1.00000,1.00000,1.00000,1.00000",
"srgb:0.84314,0.84314,0.84314,1.00000"
],
"orientation" : {
"start" : {
"x" : 0.5,
"y" : 0
},
"stop" : {
"x" : 0.5,
"y" : 0.7
}
}
},
"groups" : [
{
"blur-material" : null,
"hidden" : false,
"layers" : [
{
"blend-mode-specializations" : [
{
"appearance" : "dark",
"value" : "normal"
}
],
"image-name" : "SVG Image.svg",
"name" : "transparent-icon",
"opacity-specializations" : [
{
"value" : 1
},
{
"appearance" : "dark",
"value" : 1
}
]
}
],
"name" : "group",
"opacity-specializations" : [
{
"appearance" : "dark",
"value" : 0.8
}
],
"shadow" : {
"kind" : "layer-color",
"opacity" : 0.5
},
"specular" : true,
"translucency" : {
"enabled" : false,
"value" : 0.5
}
}
],
"supported-platforms" : {
"circles" : [
"watchOS"
],
"squares" : "shared"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 931 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 353 KiB

After

Width:  |  Height:  |  Size: 36 KiB

BIN
assets/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 KiB

40
assets/icon.svg Normal file
View File

@ -0,0 +1,40 @@
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_d_18_2)">
<circle cx="512" cy="512" r="410" fill="url(#paint0_linear_18_2)" />
<circle cx="512" cy="512" r="402" stroke="url(#paint1_radial_18_2)" stroke-opacity="0.5" stroke-width="16" />
</g>
<path
d="M675 505.072C680.333 508.152 680.333 515.849 675 518.928L436.5 656.626C431.167 659.705 424.5 655.857 424.5 649.698V374.302C424.5 368.24 430.96 364.415 436.249 367.234L436.5 367.374L675 505.072Z"
fill="url(#paint2_linear_18_2)" stroke="url(#paint3_linear_18_2)" stroke-width="8" stroke-linejoin="round" />
<defs>
<filter id="filter0_d_18_2" x="78" y="90" width="868" height="868" filterUnits="userSpaceOnUse"
color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix" />
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
result="hardAlpha" />
<feOffset dy="12" />
<feGaussianBlur stdDeviation="12" />
<feComposite in2="hardAlpha" operator="out" />
<feColorMatrix type="matrix" values="0 0 0 0 0.866667 0 0 0 0 0.141176 0 0 0 0 0.462745 0 0 0 0.4 0" />
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_18_2" />
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_18_2" result="shape" />
</filter>
<linearGradient id="paint0_linear_18_2" x1="102" y1="102" x2="922" y2="922" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF632F" />
<stop offset="1" stop-color="#DC148C" />
</linearGradient>
<radialGradient id="paint1_radial_18_2" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse"
gradientTransform="translate(512 512) rotate(45) scale(579.828)">
<stop offset="0.68" stop-color="white" stop-opacity="0" />
<stop offset="0.72" stop-color="white" />
</radialGradient>
<linearGradient id="paint2_linear_18_2" x1="512" y1="329" x2="512" y2="695" gradientUnits="userSpaceOnUse">
<stop stop-color="white" />
<stop offset="1" stop-color="white" stop-opacity="0.4" />
</linearGradient>
<linearGradient id="paint3_linear_18_2" x1="512" y1="329" x2="512" y2="695" gradientUnits="userSpaceOnUse">
<stop stop-color="white" stop-opacity="0" />
<stop offset="1" stop-color="white" stop-opacity="0.5" />
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

607
assets/mdui.css Normal file
View File

@ -0,0 +1,607 @@
:root {
--mdui-breakpoint-xs: 0px;
--mdui-breakpoint-sm: 600px;
--mdui-breakpoint-md: 840px;
--mdui-breakpoint-lg: 1080px;
--mdui-breakpoint-xl: 1440px;
--mdui-breakpoint-xxl: 1920px;
}
:root {
--mdui-color-primary-light: 103, 80, 164;
--mdui-color-primary-container-light: 234, 221, 255;
--mdui-color-on-primary-light: 255, 255, 255;
--mdui-color-on-primary-container-light: 33, 0, 94;
--mdui-color-inverse-primary-light: 208, 188, 255;
--mdui-color-secondary-light: 98, 91, 113;
--mdui-color-secondary-container-light: 232, 222, 248;
--mdui-color-on-secondary-light: 255, 255, 255;
--mdui-color-on-secondary-container-light: 30, 25, 43;
--mdui-color-tertiary-light: 125, 82, 96;
--mdui-color-tertiary-container-light: 255, 216, 228;
--mdui-color-on-tertiary-light: 255, 255, 255;
--mdui-color-on-tertiary-container-light: 55, 11, 30;
--mdui-color-surface-light: 254, 247, 255;
--mdui-color-surface-dim-light: 222, 216, 225;
--mdui-color-surface-bright-light: 254, 247, 255;
--mdui-color-surface-container-lowest-light: 255, 255, 255;
--mdui-color-surface-container-low-light: 247, 242, 250;
--mdui-color-surface-container-light: 243, 237, 247;
--mdui-color-surface-container-high-light: 236, 230, 240;
--mdui-color-surface-container-highest-light: 230, 224, 233;
--mdui-color-surface-variant-light: 231, 224, 236;
--mdui-color-on-surface-light: 28, 27, 31;
--mdui-color-on-surface-variant-light: 73, 69, 78;
--mdui-color-inverse-surface-light: 49, 48, 51;
--mdui-color-inverse-on-surface-light: 244, 239, 244;
--mdui-color-background-light: 254, 247, 255;
--mdui-color-on-background-light: 28, 27, 31;
--mdui-color-error-light: 179, 38, 30;
--mdui-color-error-container-light: 249, 222, 220;
--mdui-color-on-error-light: 255, 255, 255;
--mdui-color-on-error-container-light: 65, 14, 11;
--mdui-color-outline-light: 121, 116, 126;
--mdui-color-outline-variant-light: 196, 199, 197;
--mdui-color-shadow-light: 0, 0, 0;
--mdui-color-surface-tint-color-light: 103, 80, 164;
--mdui-color-scrim-light: 0, 0, 0;
--mdui-color-primary-dark: 208, 188, 255;
--mdui-color-primary-container-dark: 79, 55, 139;
--mdui-color-on-primary-dark: 55, 30, 115;
--mdui-color-on-primary-container-dark: 234, 221, 255;
--mdui-color-inverse-primary-dark: 103, 80, 164;
--mdui-color-secondary-dark: 204, 194, 220;
--mdui-color-secondary-container-dark: 74, 68, 88;
--mdui-color-on-secondary-dark: 51, 45, 65;
--mdui-color-on-secondary-container-dark: 232, 222, 248;
--mdui-color-tertiary-dark: 239, 184, 200;
--mdui-color-tertiary-container-dark: 99, 59, 72;
--mdui-color-on-tertiary-dark: 73, 37, 50;
--mdui-color-on-tertiary-container-dark: 255, 216, 228;
--mdui-color-surface-dark: 20, 18, 24;
--mdui-color-surface-dim-dark: 20, 18, 24;
--mdui-color-surface-bright-dark: 59, 56, 62;
--mdui-color-surface-container-lowest-dark: 15, 13, 19;
--mdui-color-surface-container-low-dark: 29, 27, 32;
--mdui-color-surface-container-dark: 33, 31, 38;
--mdui-color-surface-container-high-dark: 43, 41, 48;
--mdui-color-surface-container-highest-dark: 54, 52, 59;
--mdui-color-surface-variant-dark: 73, 69, 79;
--mdui-color-on-surface-dark: 230, 225, 229;
--mdui-color-on-surface-variant-dark: 202, 196, 208;
--mdui-color-inverse-surface-dark: 230, 225, 229;
--mdui-color-inverse-on-surface-dark: 49, 48, 51;
--mdui-color-background-dark: 20, 18, 24;
--mdui-color-on-background-dark: 230, 225, 229;
--mdui-color-error-dark: 242, 184, 181;
--mdui-color-error-container-dark: 140, 29, 24;
--mdui-color-on-error-dark: 96, 20, 16;
--mdui-color-on-error-container-dark: 249, 222, 220;
--mdui-color-outline-dark: 147, 143, 153;
--mdui-color-outline-variant-dark: 68, 71, 70;
--mdui-color-shadow-dark: 0, 0, 0;
--mdui-color-surface-tint-color-dark: 208, 188, 255;
--mdui-color-scrim-dark: 0, 0, 0;
}
.mdui-theme-dark,
:root {
color-scheme: dark;
--mdui-color-primary: var(--mdui-color-primary-dark);
--mdui-color-primary-container: var(--mdui-color-primary-container-dark);
--mdui-color-on-primary: var(--mdui-color-on-primary-dark);
--mdui-color-on-primary-container: var(
--mdui-color-on-primary-container-dark
);
--mdui-color-inverse-primary: var(--mdui-color-inverse-primary-dark);
--mdui-color-secondary: var(--mdui-color-secondary-dark);
--mdui-color-secondary-container: var(--mdui-color-secondary-container-dark);
--mdui-color-on-secondary: var(--mdui-color-on-secondary-dark);
--mdui-color-on-secondary-container: var(
--mdui-color-on-secondary-container-dark
);
--mdui-color-tertiary: var(--mdui-color-tertiary-dark);
--mdui-color-tertiary-container: var(--mdui-color-tertiary-container-dark);
--mdui-color-on-tertiary: var(--mdui-color-on-tertiary-dark);
--mdui-color-on-tertiary-container: var(
--mdui-color-on-tertiary-container-dark
);
--mdui-color-surface: var(--mdui-color-surface-dark);
--mdui-color-surface-dim: var(--mdui-color-surface-dim-dark);
--mdui-color-surface-bright: var(--mdui-color-surface-bright-dark);
--mdui-color-surface-container-lowest: var(
--mdui-color-surface-container-lowest-dark
);
--mdui-color-surface-container-low: var(
--mdui-color-surface-container-low-dark
);
--mdui-color-surface-container: var(--mdui-color-surface-container-dark);
--mdui-color-surface-container-high: var(
--mdui-color-surface-container-high-dark
);
--mdui-color-surface-container-highest: var(
--mdui-color-surface-container-highest-dark
);
--mdui-color-surface-variant: var(--mdui-color-surface-variant-dark);
--mdui-color-on-surface: var(--mdui-color-on-surface-dark);
--mdui-color-on-surface-variant: var(--mdui-color-on-surface-variant-dark);
--mdui-color-inverse-surface: var(--mdui-color-inverse-surface-dark);
--mdui-color-inverse-on-surface: var(--mdui-color-inverse-on-surface-dark);
--mdui-color-background: var(--mdui-color-background-dark);
--mdui-color-on-background: var(--mdui-color-on-background-dark);
--mdui-color-error: var(--mdui-color-error-dark);
--mdui-color-error-container: var(--mdui-color-error-container-dark);
--mdui-color-on-error: var(--mdui-color-on-error-dark);
--mdui-color-on-error-container: var(--mdui-color-on-error-container-dark);
--mdui-color-outline: var(--mdui-color-outline-dark);
--mdui-color-outline-variant: var(--mdui-color-outline-variant-dark);
--mdui-color-shadow: var(--mdui-color-shadow-dark);
--mdui-color-surface-tint-color: var(--mdui-color-surface-tint-color-dark);
--mdui-color-scrim: var(--mdui-color-scrim-dark);
color: rgb(var(--mdui-color-on-background));
background-color: rgb(var(--mdui-color-background));
}
:root {
--mdui-elevation-level0: none;
--mdui-elevation-level1: 0 0.5px 1.5px 0 rgba(var(--mdui-color-shadow), 19%),
0 0 1px 0 rgba(var(--mdui-color-shadow), 3.9%);
--mdui-elevation-level2: 0 0.85px 3px 0 rgba(var(--mdui-color-shadow), 19%),
0 0.25px 1px 0 rgba(var(--mdui-color-shadow), 3.9%);
--mdui-elevation-level3: 0 1.25px 5px 0 rgba(var(--mdui-color-shadow), 19%),
0 0.3333px 1.5px 0 rgba(var(--mdui-color-shadow), 3.9%);
--mdui-elevation-level4: 0 1.85px 6.25px 0 rgba(var(--mdui-color-shadow), 19%),
0 0.5px 1.75px 0 rgba(var(--mdui-color-shadow), 3.9%);
--mdui-elevation-level5: 0 2.75px 9px 0 rgba(var(--mdui-color-shadow), 19%),
0 0.25px 3px 0 rgba(var(--mdui-color-shadow), 3.9%);
}
:root {
--mdui-motion-easing-linear: cubic-bezier(0, 0, 1, 1);
--mdui-motion-easing-standard: cubic-bezier(0.2, 0, 0, 1);
--mdui-motion-easing-standard-accelerate: cubic-bezier(0.3, 0, 1, 1);
--mdui-motion-easing-standard-decelerate: cubic-bezier(0, 0, 0, 1);
--mdui-motion-easing-emphasized: var(--mdui-motion-easing-standard);
--mdui-motion-easing-emphasized-accelerate: cubic-bezier(0.3, 0, 0.8, 0.15);
--mdui-motion-easing-emphasized-decelerate: cubic-bezier(0.05, 0.7, 0.1, 1);
--mdui-motion-duration-short1: 50ms;
--mdui-motion-duration-short2: 100ms;
--mdui-motion-duration-short3: 150ms;
--mdui-motion-duration-short4: 200ms;
--mdui-motion-duration-medium1: 250ms;
--mdui-motion-duration-medium2: 300ms;
--mdui-motion-duration-medium3: 350ms;
--mdui-motion-duration-medium4: 400ms;
--mdui-motion-duration-long1: 450ms;
--mdui-motion-duration-long2: 500ms;
--mdui-motion-duration-long3: 550ms;
--mdui-motion-duration-long4: 600ms;
--mdui-motion-duration-extra-long1: 700ms;
--mdui-motion-duration-extra-long2: 800ms;
--mdui-motion-duration-extra-long3: 900ms;
--mdui-motion-duration-extra-long4: 1000ms;
}
.mdui-prose {
line-height: 1.75;
word-wrap: break-word;
}
.mdui-prose :first-child {
margin-top: 0;
}
.mdui-prose :last-child {
margin-bottom: 0;
}
.mdui-prose code,
.mdui-prose kbd,
.mdui-prose pre,
.mdui-prose pre tt,
.mdui-prose samp {
font-family: Consolas, Courier, 'Courier New', monospace;
}
.mdui-prose caption {
text-align: left;
}
.mdui-prose [draggable='true'],
.mdui-prose [draggable] {
cursor: move;
}
.mdui-prose [draggable='false'] {
cursor: inherit;
}
.mdui-prose dl,
.mdui-prose form,
.mdui-prose ol,
.mdui-prose p,
.mdui-prose ul {
margin-top: 1.25em;
margin-bottom: 1.25em;
}
.mdui-prose a {
text-decoration: none;
outline: 0;
color: rgb(var(--mdui-color-primary));
}
.mdui-prose a:focus,
.mdui-prose a:hover {
border-bottom: 0.0625rem solid rgb(var(--mdui-color-primary));
}
.mdui-prose small {
font-size: 0.875em;
}
.mdui-prose strong {
font-weight: 600;
}
.mdui-prose blockquote {
margin: 1.6em 2em;
padding-left: 1em;
border-left: 0.25rem solid rgb(var(--mdui-color-surface-variant));
}
@media only screen and (max-width: 599.98px) {
.mdui-prose blockquote {
margin: 1.6em 0;
}
}
.mdui-prose blockquote footer {
font-size: 86%;
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose mark {
color: inherit;
background-color: rgb(var(--mdui-color-secondary-container));
border-bottom: 0.0625rem solid rgb(var(--mdui-color-secondary));
margin: 0 0.375rem;
padding: 0.125rem;
}
.mdui-prose h1,
.mdui-prose h2,
.mdui-prose h3,
.mdui-prose h4,
.mdui-prose h5,
.mdui-prose h6 {
font-weight: 400;
}
.mdui-prose h1 small,
.mdui-prose h2 small,
.mdui-prose h3 small,
.mdui-prose h4 small,
.mdui-prose h5 small,
.mdui-prose h6 small {
font-weight: inherit;
font-size: 65%;
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose h1 strong,
.mdui-prose h2 strong,
.mdui-prose h3 strong,
.mdui-prose h4 strong,
.mdui-prose h5 strong,
.mdui-prose h6 strong {
font-weight: 600;
}
.mdui-prose h1 {
font-size: 2.5em;
margin-top: 0;
margin-bottom: 1.25em;
line-height: 1.1111;
}
.mdui-prose h2 {
font-size: 1.875em;
margin-top: 2.25em;
margin-bottom: 1.125em;
line-height: 1.3333;
}
.mdui-prose h3 {
font-size: 1.5em;
margin-top: 2em;
margin-bottom: 1em;
line-height: 1.6;
}
.mdui-prose h4 {
font-size: 1.25em;
margin-top: 1.875em;
margin-bottom: 0.875em;
line-height: 1.5;
}
.mdui-prose h2 + *,
.mdui-prose h3 + *,
.mdui-prose h4 + *,
.mdui-prose hr + * {
margin-top: 0;
}
.mdui-prose code,
.mdui-prose kbd {
font-size: 0.875em;
color: rgb(var(--mdui-color-on-surface-container));
background-color: rgba(var(--mdui-color-surface-variant), 0.28);
padding: 0.125rem 0.375rem;
border-radius: var(--mdui-shape-corner-extra-small);
}
.mdui-prose kbd {
font-size: 0.9em;
}
.mdui-prose abbr[title] {
text-decoration: none;
cursor: help;
border-bottom: 0.0625rem dotted rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose ins,
.mdui-prose u {
text-decoration: none;
border-bottom: 0.0625rem solid rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose del {
text-decoration: line-through;
}
.mdui-prose hr {
margin-top: 3em;
margin-bottom: 3em;
border: none;
border-bottom: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
}
.mdui-prose pre {
margin-top: 1.7143em;
margin-bottom: 1.7143em;
}
.mdui-prose pre code {
padding: 0.8571em 1.1429em;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
background-color: rgb(var(--mdui-color-surface-container));
color: rgb(var(--mdui-color-on-surface-container));
border-radius: var(--mdui-shape-corner-extra-small);
}
.mdui-prose ol,
.mdui-prose ul {
padding-left: 1.625em;
}
.mdui-prose ul {
list-style-type: disc;
}
.mdui-prose ol {
list-style-type: decimal;
}
.mdui-prose ol[type='A'] {
list-style-type: upper-alpha;
}
.mdui-prose ol[type='a'] {
list-style-type: lower-alpha;
}
.mdui-prose ol[type='I'] {
list-style-type: upper-roman;
}
.mdui-prose ol[type='i'] {
list-style-type: lower-roman;
}
.mdui-prose ol[type='1'] {
list-style-type: decimal;
}
.mdui-prose li {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.mdui-prose ol > li,
.mdui-prose ul > li {
padding-left: 0.375em;
}
.mdui-prose ol > li > p,
.mdui-prose ul > li > p {
margin-top: 0.75em;
margin-bottom: 0.75em;
}
.mdui-prose ol > li > :first-child,
.mdui-prose ul > li > :first-child {
margin-top: 1.25em;
}
.mdui-prose ol > li > :last-child,
.mdui-prose ul > li > :last-child {
margin-bottom: 1.25em;
}
.mdui-prose ol > li::marker {
font-weight: 400;
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose ul > li::marker {
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose ol ol,
.mdui-prose ol ul,
.mdui-prose ul ol,
.mdui-prose ul ul {
margin-top: 0.75em;
margin-bottom: 0.75em;
}
.mdui-prose fieldset,
.mdui-prose img {
border: none;
}
.mdui-prose figure,
.mdui-prose img,
.mdui-prose video {
margin-top: 2em;
margin-bottom: 2em;
max-width: 100%;
}
.mdui-prose figure > * {
margin-top: 0;
margin-bottom: 0;
}
.mdui-prose figcaption {
font-size: 0.875em;
line-height: 1.4286;
margin-top: 0.8571em;
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose figcaption:empty::before {
z-index: -1;
cursor: text;
content: attr(placeholder);
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose table {
margin-top: 2em;
margin-bottom: 2em;
border: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
border-radius: var(--mdui-shape-corner-large);
}
.mdui-table {
width: 100%;
overflow-x: auto;
margin-top: 2em;
margin-bottom: 2em;
border: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
border-radius: var(--mdui-shape-corner-large);
}
.mdui-table table {
margin-top: 0;
margin-bottom: 0;
border: none;
border-radius: 0;
}
.mdui-prose table,
.mdui-table table {
width: 100%;
text-align: left;
border-collapse: collapse;
border-spacing: 0;
}
.mdui-prose td,
.mdui-prose th,
.mdui-table td,
.mdui-table th {
border-top: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
}
.mdui-prose td:not(:first-child),
.mdui-prose th:not(:first-child),
.mdui-table td:not(:first-child),
.mdui-table th:not(:first-child) {
border-left: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
}
.mdui-prose td:not(:last-child),
.mdui-prose th:not(:last-child),
.mdui-table td:not(:last-child),
.mdui-table th:not(:last-child) {
border-right: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
}
.mdui-prose tfoot td,
.mdui-prose tfoot th,
.mdui-prose thead td,
.mdui-prose thead th,
.mdui-table tfoot td,
.mdui-table tfoot th,
.mdui-table thead td,
.mdui-table thead th {
position: relative;
vertical-align: middle;
padding: 1.125rem 1rem;
font-weight: var(--mdui-typescale-title-medium-weight);
letter-spacing: var(--mdui-typescale-title-medium-tracking);
line-height: var(--mdui-typescale-title-medium-line-height);
color: rgb(var(--mdui-color-on-surface-variant));
box-shadow: var(--mdui-elevation-level1);
}
.mdui-prose tbody td,
.mdui-prose tbody th,
.mdui-table tbody td,
.mdui-table tbody th {
padding: 0.875rem 1rem;
}
.mdui-prose tbody th,
.mdui-table tbody th {
vertical-align: middle;
font-weight: inherit;
}
.mdui-prose tbody td,
.mdui-table tbody td {
vertical-align: baseline;
}
.mdui-prose tbody:first-child tr:first-child td,
.mdui-prose thead:first-child tr:first-child th,
.mdui-table tbody:first-child tr:first-child td,
.mdui-table thead:first-child tr:first-child th {
border-top: 0;
}
:root {
--mdui-shape-corner-none: 0;
--mdui-shape-corner-extra-small: 0.25rem;
--mdui-shape-corner-small: 0.5rem;
--mdui-shape-corner-medium: 0.75rem;
--mdui-shape-corner-large: 1rem;
--mdui-shape-corner-extra-large: 1.75rem;
--mdui-shape-corner-full: 1000rem;
}
:root {
--mdui-state-layer-hover: 0.08;
--mdui-state-layer-focus: 0.12;
--mdui-state-layer-pressed: 0.12;
--mdui-state-layer-dragged: 0.16;
}
:root {
--mdui-typescale-display-large-weight: 400;
--mdui-typescale-display-medium-weight: 400;
--mdui-typescale-display-small-weight: 400;
--mdui-typescale-display-large-line-height: 4rem;
--mdui-typescale-display-medium-line-height: 3.25rem;
--mdui-typescale-display-small-line-height: 2.75rem;
--mdui-typescale-display-large-size: 3.5625rem;
--mdui-typescale-display-medium-size: 2.8125rem;
--mdui-typescale-display-small-size: 2.25rem;
--mdui-typescale-display-large-tracking: 0rem;
--mdui-typescale-display-medium-tracking: 0rem;
--mdui-typescale-display-small-tracking: 0rem;
--mdui-typescale-headline-large-weight: 400;
--mdui-typescale-headline-medium-weight: 400;
--mdui-typescale-headline-small-weight: 400;
--mdui-typescale-headline-large-line-height: 2.5rem;
--mdui-typescale-headline-medium-line-height: 2.25rem;
--mdui-typescale-headline-small-line-height: 2rem;
--mdui-typescale-headline-large-size: 2rem;
--mdui-typescale-headline-medium-size: 1.75rem;
--mdui-typescale-headline-small-size: 1.5rem;
--mdui-typescale-headline-large-tracking: 0rem;
--mdui-typescale-headline-medium-tracking: 0rem;
--mdui-typescale-headline-small-tracking: 0rem;
--mdui-typescale-title-large-weight: 400;
--mdui-typescale-title-medium-weight: 500;
--mdui-typescale-title-small-weight: 500;
--mdui-typescale-title-large-line-height: 1.75rem;
--mdui-typescale-title-medium-line-height: 1.5rem;
--mdui-typescale-title-small-line-height: 1.25rem;
--mdui-typescale-title-large-size: 1.375rem;
--mdui-typescale-title-medium-size: 1rem;
--mdui-typescale-title-small-size: 0.875rem;
--mdui-typescale-title-large-tracking: 0rem;
--mdui-typescale-title-medium-tracking: 0.009375rem;
--mdui-typescale-title-small-tracking: 0.00625rem;
--mdui-typescale-label-large-weight: 500;
--mdui-typescale-label-medium-weight: 500;
--mdui-typescale-label-small-weight: 500;
--mdui-typescale-label-large-line-height: 1.25rem;
--mdui-typescale-label-medium-line-height: 1rem;
--mdui-typescale-label-small-line-height: 0.375rem;
--mdui-typescale-label-large-size: 0.875rem;
--mdui-typescale-label-medium-size: 0.75rem;
--mdui-typescale-label-small-size: 0.6875rem;
--mdui-typescale-label-large-tracking: 0.00625rem;
--mdui-typescale-label-medium-tracking: 0.03125rem;
--mdui-typescale-label-small-tracking: 0.03125rem;
--mdui-typescale-body-large-weight: 400;
--mdui-typescale-body-medium-weight: 400;
--mdui-typescale-body-small-weight: 400;
--mdui-typescale-body-large-line-height: 1.5rem;
--mdui-typescale-body-medium-line-height: 1.25rem;
--mdui-typescale-body-small-line-height: 1rem;
--mdui-typescale-body-large-size: 1rem;
--mdui-typescale-body-medium-size: 0.875rem;
--mdui-typescale-body-small-size: 0.75rem;
--mdui-typescale-body-large-tracking: 0.009375rem;
--mdui-typescale-body-medium-tracking: 0.015625rem;
--mdui-typescale-body-small-tracking: 0.025rem;
}
.mdui-lock-screen {
overflow: hidden !important;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 B

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 B

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 B

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 269 B

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
assets/tray-paused.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
assets/tray-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
assets/tray.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

View File

@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 176 176" width="32" height="32">
<circle fill="red" cx="88" cy="88" r="88"/>
<path fill="#FFF"
d="M88 46c23.1 0 42 18.8 42 42s-18.8 42-42 42-42-18.8-42-42 18.9-42 42-42m0-4c-25.4 0-46 20.6-46 46s20.6 46 46 46 46-20.6 46-46-20.6-46-46-46z"/>
<path fill="#FFF" d="M72 111l39-24-39-22z"/>
</svg>

Before

Width:  |  Height:  |  Size: 353 B

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 860 B

View File

@ -1,9 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400">
<g transform="translate(183.604 196.396)" stroke="#fff" stroke-width="2.23">
<path
style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;block-progression:tb;marker:none"
d="M-116.99 106.245l31.82 31.82 236.31-236.31-31.82-31.82z" color="#000" font-weight="400"
font-family="Sans" overflow="visible" fill="#fff" stroke="none"/>
<circle r="171.304" cy="4" cx="16" fill="none" stroke-width="44.6"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 588 B

View File

@ -1,23 +0,0 @@
<svg width="1440" height="347" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="a">
<stop stop-color="#606483" stop-opacity="0" offset="0%"/>
<stop stop-color="#0B0D19" stop-opacity=".72" offset="100%"/>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="39.334%" y2="79.282%" id="b">
<stop stop-color="#0B0D19" offset="0%"/>
<stop stop-color="#0B0D19" stop-opacity="0" offset="100%"/>
</linearGradient>
</defs>
<g fill="none" fill-rule="evenodd">
<path
d="M177.486 208.219c78.18 89.285 218.65-81.067 218.65-119.337 0-38.27-86.408-69.295-193-69.295-106.59 0-193 31.024-193 69.295 0 38.27 89.17 30.051 167.35 119.337z"
transform="rotate(6 -140.175 3980.948)" fill="url(#a)"/>
<path
d="M252.464 335.471c101.27 115.965 283.227-105.29 283.227-154.996 0-49.705-111.929-90-250-90s-250 40.295-250 90c0 49.706 115.503 39.032 216.773 154.996z"
fill="url(#a)" transform="rotate(24 321.92 -247.724)"/>
<path
d="M302.512 242.909c88.025 32.428 156-25.04 156-55.93 0-30.888-69.844-55.928-156-55.928-86.157 0-156 25.04-156 55.929 0 30.888 67.974 23.5 156 55.929z"
fill="url(#b)" transform="rotate(24 338.741 -285.505)"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1,32 +0,0 @@
<svg width="1440" height="318" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient x1="38.706%" y1="-187.115%" x2="18.675%" y2="110.984%" id="a">
<stop stop-color="#FFF" stop-opacity="0" offset="0%"/>
<stop stop-color="#c3352e" offset="100%"/>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="c">
<stop stop-color="#606483" stop-opacity="0" offset="0%"/>
<stop stop-color="#0B0D19" stop-opacity=".72" offset="100%"/>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="39.334%" y2="79.282%" id="d">
<stop stop-color="#0B0D19" stop-opacity=".32" offset="0%"/>
<stop stop-color="#0B0D19" stop-opacity="0" offset="100%"/>
</linearGradient>
<filter id="b">
<feTurbulence type="fractalNoise" numOctaves="2" baseFrequency=".3" result="turb"/>
<feComposite in="turb" operator="arithmetic" k1=".1" k2=".1" k3=".1" k4=".1" result="result1"/>
<feComposite operator="in" in="result1" in2="SourceGraphic" result="finalFilter"/>
<feBlend mode="multiply" in="finalFilter" in2="SourceGraphic"/>
</filter>
</defs>
<g fill="none" fill-rule="evenodd">
<path d="M88.494 90c67.04 7.177 161.094-24.753 224.996-90H.2c25.3 48.079 42.361 85.083 88.294 90z"
transform="translate(1051)" fill="url(#a)" filter="url(#b)"/>
<path
d="M250.464 367.471c101.27 115.965 283.227-105.29 283.227-154.996 0-49.705-111.929-90-250-90s-250 40.295-250 90c0 49.706 115.503 39.032 216.773 154.996z"
fill="url(#c)" transform="rotate(143 810.285 354.367)"/>
<path
d="M373.408 256.178c88.026 32.429 156-25.04 156-55.929 0-30.888-69.843-55.929-156-55.929-86.156 0-156 25.04-156 55.93 0 30.888 67.975 23.5 156 55.928z"
fill="url(#d)" transform="rotate(136 905.21 332.676)"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1,5 +0,0 @@
<svg width="96" height="48" xmlns="http://www.w3.org/2000/svg">
<text y="35" x="48" fill="#fff" stroke-width="0" font-size="36" font-family="Monospace" text-anchor="middle"
stroke="#fff">&lt;/&gt;
</text>
</svg>

Before

Width:  |  Height:  |  Size: 224 B

View File

@ -1,8 +0,0 @@
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" class="style-scope yt-icon" style="width:100%;height:100%"
pointer-events="none" display="block" fill="#fff">
<g class="style-scope yt-icon">
<path
d="M25.462 19.105v6.848H4.515v-6.848H.489v8.861c0 1.111.9 2.012 2.016 2.012h24.967c1.115 0 2.016-.9 2.016-2.012v-8.861h-4.026zM14.62 18.426l-5.764-6.965s-.877-.828.074-.828h3.248V9.217.494S12.049 0 12.793 0h4.572c.536 0 .524.416.524.416V10.424h2.998c1.154 0 .285.867.285.867s-4.904 6.51-5.588 7.193c-.492.495-.964-.058-.964-.058z"
class="style-scope yt-icon"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 634 B

View File

@ -1,35 +0,0 @@
<svg width="1440" height="582" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="a">
<stop stop-color="#606483" stop-opacity="0" offset="0%"/>
<stop stop-color="#363636" stop-opacity=".72" offset="100%"/>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="39.334%" y2="79.282%" id="b">
<stop stop-color="#363636" offset="0%"/>
<stop stop-color="#363636" stop-opacity="0" offset="100%"/>
</linearGradient>
<radialGradient cx="33.3%" cy="43.394%" fx="33.3%" fy="43.394%" r="57.93%"
gradientTransform="matrix(.24796 -.96592 .92535 .25883 -.151 .643)" id="c">
<stop stop-color="#c3352e" stop-opacity="0" offset="0%"/>
<stop stop-color="#c3352e" stop-opacity=".64" offset="51.712%"/>
<stop stop-color="#c3352e" stop-opacity=".24" offset="100%"/>
</radialGradient>
<filter id="d">
<feTurbulence type="fractalNoise" numOctaves="2" baseFrequency=".3" result="turb"/>
<feComposite in="turb" operator="arithmetic" k1=".1" k2=".1" k3=".1" k4=".1" result="result1"/>
<feComposite operator="in" in="result1" in2="SourceGraphic" result="finalFilter"/>
<feBlend mode="multiply" in="finalFilter" in2="SourceGraphic"/>
</filter>
</defs>
<g fill="none" fill-rule="evenodd">
<path
d="M252.464 335.471c101.27 115.965 283.227-105.29 283.227-154.996 0-49.705-111.929-90-250-90s-250 40.295-250 90c0 49.706 115.503 39.032 216.773 154.996z"
fill="url(#a)" transform="rotate(24 -272.272 -82.087)"/>
<path
d="M302.512 242.909c88.025 32.428 156-25.04 156-55.93 0-30.888-69.844-55.928-156-55.928-86.157 0-156 25.04-156 55.929 0 30.888 67.974 23.5 156 55.929z"
fill="url(#b)" transform="rotate(24 -255.451 -119.868)"/>
<path
d="M103.064 315.218c128.156 12.998 192.38 157.059 218.627 106.632 26.247-50.427-44.059-106.456 60.397-202.707 104.457-96.252-143.2-285.785-172.392-122.551C180.503 259.825-25.091 302.22 103.064 315.218z"
transform="translate(1176 -33)" fill="url(#c)" filter="url(#d)"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60" fill="#fff">
<path
d="M45.563 29.174l-22-15A1 1 0 0022 15v30a.999.999 0 001.563.826l22-15a1 1 0 000-1.652zM24 43.107V16.893L43.225 30 24 43.107z"/>
<path
d="M30 0C13.458 0 0 13.458 0 30s13.458 30 30 30 30-13.458 30-30S46.542 0 30 0zm0 58C14.561 58 2 45.439 2 30S14.561 2 30 2s28 12.561 28 28-12.561 28-28 28z"/>
</svg>

Before

Width:  |  Height:  |  Size: 391 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 KiB

View File

@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 176 176" width="32" height="32">
<circle fill="red" cx="88" cy="88" r="88"/>
<path fill="#FFF"
d="M88 46c23.1 0 42 18.8 42 42s-18.8 42-42 42-42-18.8-42-42 18.9-42 42-42m0-4c-25.4 0-46 20.6-46 46s20.6 46 46 46 46-20.6 46-46-20.6-46-46-46z"/>
<path fill="#FFF" d="M72 111l39-24-39-22z"/>
</svg>

Before

Width:  |  Height:  |  Size: 360 B

View File

@ -1,490 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
<meta content="IE=edge" http-equiv="X-UA-Compatible"/>
<meta content="width=device-width, initial-scale=1" name="viewport"/>
<title>YouTube Music Desktop App (Unofficial)</title>
<link
href="./favicon/favicon.ico"
rel="icon"
sizes="16x16"
type="image/x-icon"
/>
<link
href="./favicon/favicon_32.png"
rel="icon"
sizes="32x32"
type="image/png"
/>
<link
href="./favicon/favicon_48.png"
rel="icon"
sizes="48x48"
type="image/png"
/>
<link
href="./favicon/favicon_96.png"
rel="icon"
sizes="96x96"
type="image/png"
/>
<link
href="./favicon/favicon_144.png"
rel="icon"
sizes="144x144"
type="image/png"
/>
<meta content="#131313" name="theme-color"/>
<meta
content="YouTube Music Unofficial Desktop App with built-in ad blocker and downloader"
name="description"
/>
<meta
content="YouTube&nbsp;Music&nbsp;Desktop&nbsp;App"
property="og:site_name"
/>
<meta
class="meta-url"
content="https://th-ch.github.io/youtube-music"
property="og:url"
/>
<meta content="website" property="og:type"/>
<meta
class="meta-url"
content="https://th-ch.github.io/youtube-music"
name="twitter:url"
/>
<link href="./style/fonts.css" rel="stylesheet"/>
<link href="./style/style.css" rel="stylesheet"/>
<script src="https://unpkg.com/scrollreveal"></script>
</head>
<body class="has-animations vsc-initialized" style="height: 100%;">
<div class="body-wrap boxed-container">
<header class="site-header text-light">
<div class="container">
<div class="site-header-inner">
<div class="brand header-brand">
<h1 class="m-0">
<a href="https://github.com/th-ch/youtube-music">
<img
alt="YouTube Music"
class="header-logo-image"
src="./img/youtube-music.svg"
/>
</a>
</h1>
</div>
</div>
</div>
</header>
<main>
<section class="hero text-center text-light">
<div class="hero-bg"></div>
<div class="hero-particles-container">
<canvas id="hero-particles"></canvas>
</div>
<div class="container-sm">
<div class="hero-inner">
<div class="hero-copy">
<h1 class="hero-title mt-0">
Custom YouTube Music Desktop App
</h1>
<p class="hero-paragraph">
Open source, cross-platform, unofficial YouTube Music Desktop
App with built-in <strong>ad blocker</strong> and
<strong>downloader</strong>
</p>
<div class="hero-cta">
<a
class="button button-primary button-wide-mobile"
href="https://github.com/th-ch/youtube-music/releases/latest"
>Download</a
>
</div>
</div>
<div class="mockup-container">
<div class="mockup-bg">
<img
alt="YouTube Music"
id="mockup-header-img"
src="./img/youtube-music.png"
/>
</div>
</div>
</div>
</div>
</section>
<section class="features-extended section">
<div class="features-extended-inner section-inner">
<div class="features-extended-wrap">
<div class="container">
<div class="feature-extended">
<div class="feature-extended-image">
<img
alt="Adblocker"
class="device-mockup"
data-sr-id="0"
src="./img/adblock.svg"
style="
visibility: visible;
opacity: 1;
transform: matrix3d(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
);
transition: opacity 0.6s
cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
"
width="100px"
/>
</div>
<div
class="feature-extended-body"
data-sr-id="5"
style="
visibility: visible;
opacity: 1;
transform: matrix3d(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
);
transition: opacity 0.6s
cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
"
>
<h3 class="mt-0 mb-16">Built-in adblocker</h3>
<p class="m-0">Block all ads and tracking out of the box</p>
</div>
</div>
<div class="feature-extended">
<div class="feature-extended-image">
<img
alt="Downloader"
class="device-mockup"
data-sr-id="2"
src="./img/download.svg"
style="
visibility: visible;
opacity: 1;
transform: matrix3d(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
);
transition: opacity 0.6s
cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
"
/>
</div>
<div
class="feature-extended-body"
data-sr-id="6"
style="
visibility: visible;
opacity: 1;
transform: matrix3d(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
);
transition: opacity 0.6s
cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
"
>
<h3 class="mt-0 mb-16">Built-in downloader</h3>
<p class="m-0">
Download (like youtube-dl) to custom formats (mp3, opus,
etc) directly from the interface
</p>
</div>
</div>
<div class="feature-extended">
<div class="feature-extended-image">
<img
alt="Plugins"
class="device-mockup"
data-sr-id="3"
src="./img/plugins.svg"
style="
visibility: visible;
opacity: 1;
transform: matrix3d(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
);
transition: opacity 0.6s
cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
"
/>
</div>
<div
class="feature-extended-body"
data-sr-id="7"
style="
visibility: visible;
opacity: 1;
transform: matrix3d(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
);
transition: opacity 0.6s
cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
"
>
<h3 class="mt-0 mb-16">Many other plugins in one click</h3>
<p class="m-0">
Enhance your user experience with media keys, integrations
(Discord), cosmetic filters, notifications, TouchBar,
auto-unpause and many more! Every plugin can be enabled or
disabled in one click.
</p>
</div>
</div>
<div class="feature-extended">
<div class="feature-extended-image">
<img
alt="Code"
class="device-mockup"
data-sr-id="4"
src="./img/code.svg"
style="
visibility: visible;
width: 200%;
opacity: 1;
transform: matrix3d(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
);
transition: opacity 0.6s
cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
"
/>
</div>
<div
class="feature-extended-body"
data-sr-id="8"
style="
visibility: visible;
opacity: 1;
transform: matrix3d(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
);
transition: opacity 0.6s
cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
"
>
<h3 class="mt-0 mb-16">Open source & Cross platform</h3>
<p class="m-0">
Available for Windows (installer and portable), Mac and
Linux (AppImage, deb, etc)
</p>
</div>
</div>
</div>
</div>
</div>
<div class="main-particles-container">
<canvas id="main-particles"></canvas>
</div>
</section>
</main>
<footer class="site-footer">
<div class="footer-particles-container">
<canvas id="footer-particles"></canvas>
</div>
<div class="site-footer-top">
<section class="cta section text-light">
<div class="container-sm">
<div class="cta-inner section-inner">
<div class="cta-header text-center">
<h2 class="section-title mt-0">Download and/or contribute</h2>
<p class="section-paragraph">Pull requests welcome!</p>
<div class="cta-cta">
<a
class="button button-primary button-wide-mobile"
href="https://github.com/th-ch/youtube-music"
>Go to code</a
>
</div>
</div>
</div>
</div>
</section>
</div>
<div class="site-footer-bottom">
<div class="container">
<div class="site-footer-inner">
<div class="brand footer-brand">
<a href="https://github.com/th-ch/youtube-music">
<img alt="YouTube Music logo" src="./img/youtube-music.svg"/>
</a>
</div>
<ul class="footer-links list-reset">
<li>
<a href="https://github.com/th-ch/youtube-music">Main page</a>
</li>
<li>
<a href="https://github.com/th-ch/youtube-music/issues"
>Issues</a
>
</li>
<li>
<a href="https://github.com/th-ch/youtube-music/pulls"
>Pull requests</a
>
</li>
</ul>
<ul class="footer-social-links list-reset">
<li>
<a href="https://github.com/th-ch/youtube-music">
<span class="screen-reader-text">GitHub</span>
<svg
height="16"
viewBox="0 0 1792 1792"
width="16"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M896 128q209 0 385.5 103t279.5 279.5 103 385.5q0 251-146.5 451.5t-378.5 277.5q-27 5-40-7t-13-30q0-3 .5-76.5t.5-134.5q0-97-52-142 57-6 102.5-18t94-39 81-66.5 53-105 20.5-150.5q0-119-79-206 37-91-8-204-28-9-81 11t-92 44l-38 24q-93-26-192-26t-192 26q-16-11-42.5-27t-83.5-38.5-85-13.5q-45 113-8 204-79 87-79 206 0 85 20.5 150t52.5 105 80.5 67 94 39 102.5 18q-39 36-49 103-21 10-45 15t-57 5-65.5-21.5-55.5-62.5q-19-32-48.5-52t-49.5-24l-20-3q-21 0-29 4.5t-5 11.5 9 14 13 12l7 5q22 10 43.5 38t31.5 51l10 23q13 38 44 61.5t67 30 69.5 7 55.5-3.5l23-4q0 38 .5 88.5t.5 54.5q0 18-13 30t-40 7q-232-77-378.5-277.5t-146.5-451.5q0-209 103-385.5t279.5-279.5 385.5-103zm-477 1103q3-7-7-12-10-3-13 2-3 7 7 12 9 6 13-2zm31 34q7-5-2-16-10-9-16-3-7 5 2 16 10 10 16 3zm30 45q9-7 0-19-8-13-17-6-9 5 0 18t17 7zm42 42q8-8-4-19-12-12-20-3-9 8 4 19 12 12 20 3zm57 25q3-11-13-16-15-4-19 7t13 15q15 6 19-6zm63 5q0-13-17-11-16 0-16 11 0 13 17 11 16 0 16-11zm58-10q-2-11-18-9-16 3-14 15t18 8 14-14z"
fill="#fff"
/>
</svg>
</a>
</li>
</ul>
<div class="footer-copyright">© 2024 th-ch</div>
</div>
</div>
</div>
</footer>
</div>
<script src="./js/main.js"></script>
</body>
</html>

View File

@ -1,268 +0,0 @@
/* eslint-disable */
// Constants
const element = document.documentElement;
const { body } = document;
const revealOnScroll = (window.sr = ScrollReveal({ mobile: false }));
// Load animations
element.classList.remove('no-js');
element.classList.add('js');
window.addEventListener('load', () => {
body.classList.add('is-loaded');
});
if (body.classList.contains('has-animations')) {
window.addEventListener('load', () => {
revealOnScroll.reveal('.feature-extended .device-mockup', {
duration: 600,
distance: '100px',
easing: 'cubic-bezier(0.215, 0.61, 0.355, 1)',
origin: 'bottom',
viewFactor: 0.6,
});
revealOnScroll.reveal('.feature-extended .feature-extended-body', {
duration: 600,
distance: '40px',
easing: 'cubic-bezier(0.215, 0.61, 0.355, 1)',
origin: 'top',
viewFactor: 0.6,
});
});
}
// Bubble canvas
const bubbleCanvas = function (t) {
const e = this;
e.parentNode = t;
e.setCanvasSize();
window.addEventListener('resize', () => {
e.setCanvasSize();
});
e.mouseX = 0;
e.mouseY = 0;
window.addEventListener('mousemove', (t) => {
e.mouseX = t.clientX;
e.mouseY = t.clientY;
});
e.randomise();
};
bubbleCanvas.prototype.setCanvasSize = function () {
this.canvasWidth = this.parentNode.clientWidth;
this.canvasHeight = this.parentNode.clientHeight;
};
bubbleCanvas.prototype.generateDecimalBetween = function (start, end) {
return (Math.random() * (start - end) + end).toFixed(2);
};
bubbleCanvas.prototype.update = function () {
const t = this;
t.translateX -= t.movementX;
t.translateY -= t.movementY;
t.posX += (t.mouseX / (t.staticity / t.magnetism) - t.posX) / t.smoothFactor;
t.posY += (t.mouseY / (t.staticity / t.magnetism) - t.posY) / t.smoothFactor;
if (
t.translateY + t.posY < 0
|| t.translateX + t.posX < 0
|| t.translateX + t.posX > t.canvasWidth
) {
t.randomise();
t.translateY = t.canvasHeight;
}
};
bubbleCanvas.prototype.randomise = function () {
this.colors = ['195,53,46', '172,54,46'];
this.velocity = 20;
this.smoothFactor = 50;
this.staticity = 30;
this.magnetism = 0.1 + 4 * Math.random();
this.color = this.colors[Math.floor(Math.random() * this.colors.length)];
this.alpha = this.generateDecimalBetween(5, 10) / 10;
this.size = this.generateDecimalBetween(1, 4);
this.posX = 0;
this.posY = 0;
this.movementX = this.generateDecimalBetween(-2, 2) / this.velocity;
this.movementY = this.generateDecimalBetween(1, 20) / this.velocity;
this.translateX = this.generateDecimalBetween(0, this.canvasWidth);
this.translateY = this.generateDecimalBetween(0, this.canvasHeight);
};
const drawBubbleCanvas = function (t) {
this.canvas = document.getElementById(t);
this.ctx = this.canvas.getContext('2d');
this.dpr = window.devicePixelRatio;
};
drawBubbleCanvas.prototype.start = function (bubbleDensity) {
const t = this;
t.bubbleDensity = bubbleDensity;
t.setCanvasSize();
window.addEventListener('resize', () => {
t.setCanvasSize();
});
t.bubblesList = [];
t.generateBubbles();
t.animate();
};
drawBubbleCanvas.prototype.setCanvasSize = function () {
this.container = this.canvas.parentNode;
this.w = this.container.offsetWidth;
this.h = this.container.offsetHeight;
this.wdpi = this.w * this.dpr;
this.hdpi = this.h * this.dpr;
this.canvas.width = this.wdpi;
this.canvas.height = this.hdpi;
this.canvas.style.width = this.w + 'px';
this.canvas.style.height = this.h + 'px';
this.ctx.scale(this.dpr, this.dpr);
};
drawBubbleCanvas.prototype.animate = function () {
const t = this;
t.ctx.clearRect(0, 0, t.canvas.clientWidth, t.canvas.clientHeight);
for (const e of t.bubblesList) {
e.update();
t.ctx.translate(e.translateX, e.translateY);
t.ctx.beginPath();
t.ctx.arc(e.posX, e.posY, e.size, 0, 2 * Math.PI);
t.ctx.fillStyle = 'rgba(' + e.color + ',' + e.alpha + ')';
t.ctx.fill();
t.ctx.setTransform(t.dpr, 0, 0, t.dpr, 0, 0);
}
requestAnimationFrame(this.animate.bind(this));
};
drawBubbleCanvas.prototype.addBubble = function (t) {
return this.bubblesList.push(t);
};
drawBubbleCanvas.prototype.generateBubbles = function () {
const t = this;
for (let e = 0; e < t.bubbleDensity; e++) {
t.addBubble(new bubbleCanvas(t.canvas.parentNode));
}
};
// Night sky with stars canvas
const starCanvas = function (t) {
this.canvas = document.getElementById(t);
this.ctx = this.canvas.getContext('2d');
this.dpr = window.devicePixelRatio;
};
starCanvas.prototype.start = function () {
let w;
let h;
const setCanvasExtents = () => {
w = this.canvas.parentNode.clientWidth;
h = this.canvas.parentNode.clientHeight;
this.canvas.width = w;
this.canvas.height = h;
};
setCanvasExtents();
window.addEventListener('resize', () => {
setCanvasExtents();
});
const makeStars = (count) => {
const out = [];
for (let i = 0; i < count; i++) {
const s = {
x: Math.random() * w - w / 2,
y: Math.random() * h - h / 2,
z: Math.random() * 1000,
};
out.push(s);
}
return out;
};
const stars = makeStars(10_000);
const clear = () => {
this.ctx.fillStyle = '#212121';
this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height);
};
const putPixel = (x, y, brightness) => {
const intensity = brightness * 255;
const rgb = 'rgb(' + intensity + ',' + intensity + ',' + intensity + ')';
this.ctx.beginPath();
this.ctx.arc(x, y, 0.9, 0, 2 * Math.PI);
this.ctx.fillStyle = rgb;
this.ctx.fill();
};
const moveStars = (distance) => {
const count = stars.length;
for (let i = 0; i < count; i++) {
const s = stars[i];
s.z -= distance;
while (s.z <= 1) {
s.z += 1000;
}
}
};
let previousTime;
const init = (time) => {
previousTime = time;
requestAnimationFrame(tick);
};
const tick = (time) => {
const elapsed = time - previousTime;
previousTime = time;
moveStars(elapsed * 0.1);
clear();
const cx = w / 2;
const cy = h / 2;
const count = stars.length;
for (let i = 0; i < count; i++) {
const star = stars[i];
const x = cx + star.x / (star.z * 0.001);
const y = cy + star.y / (star.z * 0.001);
if (x < 0 || x >= w || y < 0 || y >= h) {
continue;
}
const d = star.z / 1000;
const b = 1 - d * d;
putPixel(x, y, b);
}
requestAnimationFrame(tick);
};
requestAnimationFrame(init);
};
// Start canvas animations
window.addEventListener('load', () => {
// Stars
const headCanvas = new starCanvas('hero-particles');
// Bubbles
const footerCanvas = new drawBubbleCanvas('footer-particles');
const mainCanvas = new drawBubbleCanvas('main-particles');
headCanvas.start();
footerCanvas.start(30);
mainCanvas.start(200);
});

View File

@ -1,390 +0,0 @@
<div align="center">
# YouTube Music
[![GitHub release](https://img.shields.io/github/release/th-ch/youtube-music.svg?style=for-the-badge&logo=youtube-music)](https://github.com/th-ch/youtube-music/releases/)
[![GitHub license](https://img.shields.io/github/license/th-ch/youtube-music.svg?style=for-the-badge)](https://github.com/th-ch/youtube-music/blob/master/LICENSE)
[![eslint code style](https://img.shields.io/badge/code_style-eslint-5ed9c7.svg?style=for-the-badge)](https://github.com/th-ch/youtube-music/blob/master/.eslintrc.js)
[![Build status](https://img.shields.io/github/actions/workflow/status/th-ch/youtube-music/build.yml?branch=master&style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/)
[![GitHub All Releases](https://img.shields.io/github/downloads/th-ch/youtube-music/total?style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/)
[![AUR](https://img.shields.io/aur/version/youtube-music-bin?color=blueviolet&style=for-the-badge&logo=youtube-music)](https://aur.archlinux.org/packages/youtube-music-bin)
[![Known Vulnerabilities](https://snyk.io/test/github/th-ch/youtube-music/badge.svg)](https://snyk.io/test/github/th-ch/youtube-music)
</div>
![Screenshot](/web/screenshot.jpg "Screenshot")
<div align="center">
<a href="https://github.com/th-ch/youtube-music/releases/latest">
<img src="/web/youtube-music.svg" width="400" height="100" alt="YouTube Music SVG">
</a>
</div>
**Electron wrapper de YouTube Music con las siguientes características:**
- Apariencia y sensación nativa, tiene como objetivo mantener la interfaz original
- Framework para plugins personalizados: cambia YouTube Music según tus necesidades (estilo, contenido, funciones), habilita/deshabilita plugins con un solo clic
## Imagen de demostración
| Pantalla del reproductor (color del álbum como tema y luz ambiental) |
|:---------------------------------------------------------------------------------------------------------:|
|![Screenshot1](https://github.com/th-ch/youtube-music/assets/16558115/53efdf73-b8fa-4d7b-a235-b96b91ea77fc)|
## Contenido
- [Características](#características)
- [Plugins disponibles](#plugins-disponibles)
- [Traducción](#traducción)
- [Descarga](#descarga)
- [Arch Linux](#arch-linux)
- [macOS](#macos)
- [Windows](#windows)
- [Cómo instalar sin conexión a internet? (en Windows)](#cómo-instalar-sin-conexión-a-internet-en-windows)
- [Temas](#temas)
- [Dev](#dev)
- [Crea tus propios plugins](#crea-tus-propios-plugins)
- [Creación de un plugin](#creación-de-un-plugin)
- [Casos de uso comunes](#casos-de-uso-comunes)
- [Compilar](#compilar)
- [Vista previa de producción](#vista-previa-de-producción)
- [Tests](#tests)
- [Licencia](#licencia)
- [Preguntas frecuentes](#preguntas-frecuentes)
## Características:
- **Confirmación automática al pausar** (Siempre habilitado): desactiva
el mensaje emergente ["¿Continuar reproduciendo?"](https://user-images.githubusercontent.com/61631665/129977894-01c60740-7ec6-4bf0-9a2c-25da24491b0e.png)
que pausa la música después de cierto tiempo
- Y más ...
## Plugins disponibles:
- **Bloqueador de Anuncios**: Bloquea todos los anuncios y rastreadores de forma predeterminada
- **Acciones de Álbum**: Agrega botones de deshacer No me gusta, No me gusta, Me gusta, y Deshacer me gusta a todas las canciones de una lista de reproducción o álbum
- **Tema de Color del Álbum**: Aplica un tema dinámico y efectos visuales basados en la paleta de colores del álbum
- **Modo Ambiente**: Aplica un efecto de iluminación proyectando colores suaves del video en el fondo de tu pantalla
- **Compresor de Audio**: Aplica compresión al audio (reduce el volumen de las partes más fuertes de la señal y aumenta el
volumen de las partes más suaves)
- **Barra de Navegación Difuminada**: hace que la barra de navegación sea transparente y borrosa
- **Omitir Restricciones de Edades**: omite la verificación de edad de YouTube
- **Selector de Subtítulos**: Habilita los subtítulos
- **Barra Lateral Compacta**: Siempre muestra la barra lateral en modo compacto
- **Crossfade**: Transición suave entre canciones
- **Desactivar Reproducción Automática**: Hace que cada canción comience en modo "pausado"
- **[Discord](https://discord.com/) Rich Presence**: Muestra a tus amigos lo que estás escuchando
con [Rich Presence](https://user-images.githubusercontent.com/28219076/104362104-a7a0b980-5513-11eb-9744-bb89eabe0016.png)
- **Descargador**: Descarga
MP3 [directamente desde la interfaz](https://user-images.githubusercontent.com/61631665/129977677-83a7d067-c192-45e1-98ae-b5a4927393be.png) [(youtube-dl)](https://github.com/ytdl-org/youtube-dl)
- **Volumen Exponencial**: Hace que el control de volumen
sea [exponencial](https://greasyfork.org/en/scripts/397686-youtube-music-fix-volume-ratio/) para facilitar la
selección de volúmenes más bajos
- **Menú en la Aplicación**: [da a las barras un aspecto elegante y oscuro](https://user-images.githubusercontent.com/78568641/112215894-923dbf00-8c29-11eb-95c3-3ce15db27eca.png)
> (consulta [esta publicación](https://github.com/th-ch/youtube-music/issues/410#issuecomment-952060709) si tienes problemas
para acceder al menú después de habilitar este plugin y la opción hide-menu)
- **Scrobbler**: Agrega soporte para scrobbling en [Last.fm](https://www.last.fm/) y [ListenBrainz](https://listenbrainz.org/)
- **Lumia Stream**: Agrega soporte para [Lumia Stream](https://lumiastream.com/)
- **Letras Genius**: Agrega soporte de letras para la mayoría de las canciones
- **Music Together**: Comparte una lista de reproducción con otros. Cuando el anfitrión reproduce una canción, todos los demás escucharán la misma canción
- **Navegación**: Flechas de siguiente/anterior integradas directamente en la interfaz, como en tu navegador favorito
- **Sin Inicio de Sesión de Google**: Elimina los botones y enlaces de inicio de sesión de Google de la interfaz
- **Notificaciones**: Muestra una notificación cuando comienza una canción
a reproducirse ([notificaciones interactivas](https://user-images.githubusercontent.com/78568641/114102651-63ce0e00-98d0-11eb-9dfe-c5a02bb54f9c.png)
están disponibles en Windows)
- **Picture-in-picture**: permite cambiar la aplicación al modo picture-in-picture
- **Velocidad de Reproducción**: Escucha rápido, escucha
lento! [Agrega un deslizador que controla la velocidad de reproducción de las canciones](https://user-images.githubusercontent.com/61631665/129976003-e55db5ba-bf42-448c-a059-26a009775e68.png)
- **Volumen Preciso**: Controla el volumen de forma precisa utilizando la rueda del mouse/atajos de teclado, con un HUD personalizado y pasos de volumen personalizables
- **Atajos (& MPRIS)**: Permite configurar atajos globales para la reproducción (reproducir/pausar/siguiente/anterior) +
desactivar [osd multimedia](https://user-images.githubusercontent.com/84923831/128601225-afa38c1f-dea8-4209-9f72-0f84c1dd8b54.png)
al anular las teclas multimedia + habilitar Ctrl/CMD + F para buscar + habilitar el soporte mpris de Linux para
teclas multimedia + [atajos personalizados](https://github.com/Araxeus/youtube-music/blob/1e591d6a3df98449bcda6e63baab249b28026148/providers/song-controls.js#L13-L50)
para [usuarios avanzados](https://github.com/th-ch/youtube-music/issues/106#issuecomment-952156902)
- **Saltar Canción no Gustada**: Salta las canciones que no te gustan
- **Saltar Silencios**: Salta automáticamente las secciones de silencio
- [**SponsorBlock**](https://github.com/ajayyy/SponsorBlock): Salta automáticamente las partes que no son de música, como la introducción/final o
partes de videos musicales donde no se reproduce la canción
- **Control Multimedia en la Barra de Tareas**: Controla la reproducción desde
la [barra de tareas de Windows](https://user-images.githubusercontent.com/78568641/111916130-24a35e80-8a82-11eb-80c8-5021c1aa27f4.png)
- **TouchBar**: Diseño personalizado de TouchBar para macOS
- **Tuna OBS**: Integración con el complemento [Tuna](https://obsproject.com/forum/resources/tuna.843/) de [OBS](https://obsproject.com/)
- **Cambiador de Calidad de Video**: Permite cambiar la calidad del video con
un [botón](https://user-images.githubusercontent.com/78568641/138574366-70324a5e-2d64-4f6a-acdd-dc2a2b9cecc5.png) en
la superposición de video
- **Alternar Video**: Agrega
un [botón](https://user-images.githubusercontent.com/28893833/173663950-63e6610e-a532-49b7-9afa-54cb57ddfc15.png) para
alternar entre el modo de video/canción. también puede eliminar opcionalmente toda la pestaña de video
- **Visualizador**: Diferentes visualizadores de música
## Traducción
Puedes ayudar con la traducción en [Hosted Weblate](https://hosted.weblate.org/projects/youtube-music/).
<a href="https://hosted.weblate.org/engage/youtube-music/">
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/multi-auto.svg" alt="estado de traducción" />
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/287x66-black.png" alt="estado de traducción 2" />
</a>
## Descarga
Puedes consultar la [última versión](https://github.com/th-ch/youtube-music/releases/latest) para encontrar rápidamente la versión más reciente.
### Arch Linux
Instala el paquete [`youtube-music-bin`](https://aur.archlinux.org/packages/youtube-music-bin) desde AUR. Para obtener instrucciones de instalación de AUR, consulta esta [página del wiki](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages).
### macOS
Puedes instalar la aplicación usando Homebrew (consulta la [definición de cask](https://github.com/th-ch/homebrew-youtube-music)):
```bash
brew install th-ch/youtube-music/youtube-music
```
Si instalas la aplicación manualmente y obtienes un error "está dañado y no se puede abrir" al iniciar la aplicación, ejecuta lo siguiente en la Terminal:
```bash
xattr -cr /Applications/YouTube\ Music.app
```
### Windows
Puedes usar el [administrador de paquetes Scoop](https://scoop.sh) para instalar el paquete `youtube-music` desde
el [`extras` bucket](https://github.com/ScoopInstaller/Extras).
```bash
scoop bucket add extras
scoop install extras/youtube-music
```
Alternativamente, puedes usar [Winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/), el administrador de paquetes CLI oficial de Windows 11 para instalar el paquete `th-ch.YouTubeMusic`.
*Nota: Microsoft Defender SmartScreen podría bloquear la instalación ya que proviene de un "editor desconocido". Esto también esválido para la instalación manual al intentar ejecutar el ejecutable (.exe) después de una descarga manual aquí en GitHub (mismo archivo).*
```bash
winget install th-ch.YouTubeMusic
```
#### Cómo instalar sin conexión a Internet? (en Windows)
- Descarga el archivo `*.nsis.7z` para _la arquitectura de tu dispositivo_ en la [página de lanzamientos](https://github.com/th-ch/youtube-music/releases/latest).
- `x64` para Windows de 64 bits
- `ia32` para Windows de 32 bits
- `arm64` para Windows ARM64
- Descarga el instalador en la página de lanzamientos. (`*-Setup.exe`)
- Colócalos en el **mismo directorio**.
- Ejecuta el instalador.
## Temas
Puedes cargar archivos CSS para cambiar la apariencia de la aplicación (Opciones > Ajustes visuales > Tema).
Algunos temas predefinidos están disponibles en https://github.com/kerichdev/themes-for-ytmdesktop-player.
## Dev
```bash
git clone https://github.com/th-ch/youtube-music
cd youtube-music
pnpm install --frozen-lockfile
pnpm dev
```
## Crea tus propios plugins
Usando plugins, puedes:
- manipular la aplicación - se pasa el `BrowserWindow` de electron al controlador del plugin
- cambiar la interfaz manipulando el HTML/CSS
### Creación de un plugin
Crea una carpeta en `src/plugins/NOMBRE-DEL-PLUGIN`:
- `index.ts`: el archivo principal del plugin
```typescript
import style from './style.css?inline'; // importar estilo como inline
import { createPlugin } from '@/utils';
export default createPlugin({
name: "Plugin Label",
restartNeeded: true, // si el valor es true, ytmusic muestra el diálogo de reinicio
config: {
enabled: false,
}, // tu configuración personalizada
stylesheets: [style], // tu estilo personalizado,
menu: async ({ getConfig, setConfig }) => {
// Todos los métodos *Config están envueltos en Promise<T>
const config = await getConfig();
return [
{
label: "menu",
submenu: [1, 2, 3].map((value) => ({
label: `value ${value}`,
type: "radio",
checked: config.value === value,
click() {
setConfig({ value });
},
})),
},
];
},
backend: {
start({ window, ipc }) {
window.maximize();
// puedes comunicarte con el plugin de renderizado
ipc.handle("some-event", () => {
return "hello";
});
},
// se activa cuando cambia la configuración
onConfigChange(newConfig) { /* ... */ },
// se activa cuando se desactiva el plugin
stop(context) { /* ... */ },
},
renderer: {
async start(context) {
console.log(await context.ipc.invoke("some-event"));
},
// Solo disponible en el plugin de renderizado
onPlayerApiReady(api: YoutubePlayer, context: RendererContext) {
// establecer la configuración del plugin fácilmente
context.setConfig({ myConfig: api.getVolume() });
},
onConfigChange(newConfig) { /* ... */ },
stop(_context) { /* ... */ },
},
preload: {
async start({ getConfig }) {
const config = await getConfig();
},
onConfigChange(newConfig) {},
stop(_context) {},
},
});
```
### Casos de uso comunes
- inyectar CSS personalizado: crea un archivo `style.css` en la misma carpeta y luego:
```typescript
// index.ts
import style from './style.css?inline'; // importar estilo como inline
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Plugin Label',
restartNeeded: true, // si el valor es true, ytmusic mostrará el diálogo de reinicio
config: {
enabled: false,
}, // tu configuración personalizada
stylesheets: [style], // tu estilo personalizado
renderer() {} // define el hook del renderizador
});
```
- Si quieres cambiar el HTML:
```typescript
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Plugin Label',
restartNeeded: true, // si el valor es true, ytmusic mostrará el diálogo de reinicio
config: {
enabled: false,
}, // tu configuración personalizada
renderer() {
// Elimina el botón de inicio de sesión
document.querySelector(".sign-in-link.ytmusic-nav-bar").remove();
} // define el hook del renderizador
});
```
- comunicación entre el front y el back: se puede hacer utilizando el módulo ipcMain de electron. Ver archivo `index.ts` y
ejemplo en el plugin `sponsorblock`.
## Compilar
1. Clonar el repositorio
2. Seguir [esta guía](https://pnpm.io/es/installation) para instalar `pnpm`
3. Ejecutar `pnpm install --frozen-lockfile` para instalar las dependencias
4. Ejecutar `pnpm build:OS`
- `pnpm dist:win` - Windows
- `pnpm dist:linux` - Linux (amd64)
- `pnpm dist:linux:deb-arm64` - Linux (arm64 para Debian)
- `pnpm dist:linux:rpm-arm64` - Linux (arm64 para Fedora)
- `pnpm dist:mac` - macOS (amd64)
- `pnpm dist:mac:arm64` - macOS (arm64)
Construye la aplicación para macOS, Linux y Windows,
utilizando [electron-builder](https://github.com/electron-userland/electron-builder).
## Vista previa de producción
```bash
pnpm start
```
## Tests
```bash
pnpm test
```
Utiliza [Playwright](https://playwright.dev/) para probar la aplicación.
## Licencia
MIT © [th-ch](https://github.com/th-ch/youtube-music)
## Preguntas frecuentes
### ¿Por qué no se muestra el menú de aplicaciones?
Si la opción `Ocultar menú` está activada - puedes mostrar el menú con la tecla <kbd>alt</kbd> (o <kbd>\`</kbd> [acento grave] si estás utilizando el plugin in-app-menu)

View File

@ -1,388 +0,0 @@
<div align="center">
# YouTube Music
[![GitHub release](https://img.shields.io/github/release/th-ch/youtube-music.svg?style=for-the-badge&logo=youtube-music)](https://github.com/th-ch/youtube-music/releases/)
[![Licence GitHub](https://img.shields.io/github/license/th-ch/youtube-music.svg?style=for-the-badge)](https://github.com/th-ch/youtube-music/blob/master/LICENSE)
[![style de code eslint](https://img.shields.io/badge/style_de_code-eslint-5ed9c7.svg?style=for-the-badge)](https://github.com/th-ch/youtube-music/blob/master/.eslintrc.js)
[![Statut de la construction](https://img.shields.io/github/actions/workflow/status/th-ch/youtube-music/build.yml?branch=master&style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/)
[![Toutes les versions GitHub](https://img.shields.io/github/downloads/th-ch/youtube-music/total?style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/)
[![AUR](https://img.shields.io/aur/version/youtube-music-bin?color=blueviolet&style=for-the-badge&logo=youtube-music)](https://aur.archlinux.org/packages/youtube-music-bin)
[![Vulnérabilités connues](https://snyk.io/test/github/th-ch/youtube-music/badge.svg)](https://snyk.io/test/github/th-ch/youtube-music)
</div>
![Capture d'écran](https://github.com/th-ch/youtube-music/raw/master/web/screenshot.jpg "Capture d'écran")
<div align="center">
<a href="https://github.com/th-ch/youtube-music/releases/latest">
<img src="https://github.com/th-ch/youtube-music/raw/master/web/youtube-music.svg" width="400" height="100" alt="SVG YouTube Music">
</a>
</div>
**Enveloppe Electron autour de YouTube Music offrant :**
- Aspect & sensation naturels, vise à conserver l'interface originale
- Cadre pour les plugins personnalisés : modifiez YouTube Music selon vos besoins (style, contenu, fonctionnalités), activez/désactivez les plugins en
un clic
## Image de démonstration
| Écran du lecteur (thème de couleur de l'album & lumière ambiante) |
|:---------------------------------------------------------------------------------------------------------:|
|![Capture d'écran1](https://github.com/th-ch/youtube-music/assets/16558115/53efdf73-b8fa-4d7b-a235-b96b91ea77fc)|
## Contenu
- [Fonctionnalités](#fonctionnalités)
- [Plugins disponibles](#plugins-disponibles)
- [Traduction](#traduction)
- [Téléchargement](#téléchargement)
- [Arch Linux](#arch-linux)
- [MacOS](#macos)
- [Windows](#windows)
- [Comment installer sans connexion réseau ? (sous Windows)](#comment-installer-sans-connexion-réseau-sous-windows)
- [Thèmes](#thèmes)
- [Dev](#dev)
- [Créez vos propres plugins](#créez-vos-propres-plugins)
- [Créer un plugin](#créer-un-plugin)
- [Cas d'utilisation courants](#cas-dutilisation-courants)
- [Construction](#construction)
- [Aperçu de la production](#aperçu-de-la-production)
- [Tests](#tests)
- [Licence](#licence)
- [FAQ](#faq)
## Fonctionnalités :
- **Confirmation automatique lors de la pause** (Toujours activé) : désactiver
la pop-up ["Continuer à regarder ?"](https://user-images.githubusercontent.com/61631665/129977894-01c60740-7ec6-4bf0-9a2c-25da24491b0e.png)
qui pause la musique après un certain temps
- Et plus encore ...
## Plugins disponibles :
- **Bloqueur de publicités** : Bloquez toutes les publicités et le suivi dès le départ
- **Actions d'album** : Ajoute des boutons Je n'aime pas, Dislike, J'aime, et Unlike pour appliquer cela à toutes les chansons dans une playlist ou un album
- **Thème de couleur d'album** : Applique un thème dynamique et des effets visuels basés sur la palette de couleurs de l'album
- **Mode Ambiant** : Applique un effet d'éclairage en projetant des couleurs douces de la vidéo, sur l'arrière-plan de votre écran
- **Compresseur Audio** : Appliquer une compression audio (diminue le volume des parties les plus fortes du signal et augmente le
volume des parties les plus douces)
- **Barre de navigation floue** : rend la barre de navigation transparente et floue
- **Contournement des restrictions d'âge** : contourner la vérification d'âge de YouTube
- **Sélecteur de sous-titres** : Activer les sous-titres
- **Barre latérale compacte** : Toujours définir la barre latérale en mode compact
- **Fondu enchaîné** : Fondu enchaîné entre les chansons
- **Désactiver la lecture automatique** : Fait démarrer chaque chanson en mode "pause"
- **[Discord](https://discord.com/) Présence riche** : Montrez à vos amis ce que vous écoutez
avec [Présence riche](https://user-images.githubusercontent.com/28219076/104362104-a7a0b980-5513-11eb-9744-bb89eabe0016.png)
- **Téléchargeur** : télécharge des
MP3 [directement depuis l'interface](https://user-images.githubusercontent.com/61631665/129977677-83a7d067-c192-45e1-98ae-b5a4927393be.png) [(youtube-dl)](https://github.com/ytdl-org/youtube-dl)
- **Volume exponentiel** : Rend le curseur de volume
[exponentiel](https://greasyfork.org/en/scripts/397686-youtube-music-fix-volume-ratio/) afin qu'il soit plus facile de
sélectionner des volumes plus bas
- **Menu In-App** : [donne aux barres un aspect chic et sombre](https://user-images.githubusercontent.com/78568641/112215894-923dbf00-8c29-11eb-95c3-3ce15db27eca.png)
> (voir [ce poste](https://github.com/th-ch/youtube-music/issues/410#issuecomment-952060709) si vous avez des problèmes
pour accéder au menu après avoir activé ce plugin et l'option masquer-menu)
- **Scrobbler** : Ajoute le support de scrobbling pour [Last.fm](https://www.last.fm/) et [ListenBrainz](https://listenbrainz.org/)
- **Lumia Stream** : Ajoute le support de [Lumia Stream](https://lumiastream.com/)
- **Lyrics Genius** : Ajoute le support des paroles pour la plupart des chansons
- **Musique Ensemble** : Partagez une playlist avec d'autres. Lorsque l'hôte joue une chanson, tout le monde entendra la même chanson
- **Navigation** : Flèches de navigation Suivant/Retour directement intégrées dans l'interface, comme dans votre navigateur préféré
- **Pas de connexion Google** : Supprime les boutons et les liens de connexion Google de l'interface
- **Notifications** : Affiche une notification lorsqu'une chanson commence à jouer ([notifications interactives](https://user-images.githubusercontent.com/78568641/114102651-63ce0e00-98d0-11eb-9dfe-c5a02bb54f9c.png)
sont disponibles sur Windows)
- **Image dans l'image** : permet de passer l'application en mode image dans l'image
- **Vitesse de lecture** : Écoutez rapidement, écoutez lentement ! [Ajoute un curseur qui contrôle la vitesse des chansons](https://user-images.githubusercontent.com/61631665/129976003-e55db5ba-bf42-448c-a059-26a009775e68.png)
- **Volume précis** : Contrôlez le volume précisément en utilisant la molette de la souris/raccourcis clavier, avec un hud personnalisé et des étapes de volume personnalisables
- **Raccourcis (& MPRIS)** : Permet de définir des raccourcis globaux pour la lecture (lecture/pause/suivant/précédent) +
désactive [osd média](https://user-images.githubusercontent.com/84923831/128601225-afa38c1f-dea8-4209-9f72-0f84c1dd8b54.png)
en remplaçant les touches multimédias + activer Ctrl/CMD + F pour rechercher + activer le support mpris linux pour
les touches multimédias + [raccourcis personnalisés](https://github.com/Araxeus/youtube-music/blob/1e591d6a3df98449bcda6e63baab249b28026148/providers/song-controls.js#L13-L50)
pour [utilisateurs avancés](https://github.com/th-ch/youtube-music/issues/106#issuecomment-952156902)
- **Passer la chanson non aimée** : passe les chansons non aimées
- **Passer les silences** : passe automatiquement les sections silencieuses
- [**SponsorBlock**](https://github.com/ajayyy/SponsorBlock) : Saute automatiquement les parties non musicales comme les intros/outros ou
les parties des clips vidéo où la chanson n'est pas jouée
- **Contrôle multimédia de la barre des tâches** : Contrôlez la lecture depuis
votre [barre des tâches Windows](https://user-images.githubusercontent.com/78568641/111916130-24a35e80-8a82-11eb-80c8-5021c1aa27f4.png)
- **TouchBar** : Disposition personnalisée de la TouchBar pour macOS
- **Tuna OBS** : Intégration avec le
plugin [Tuna](https://obsproject.com/forum/resources/tuna.843/) d'[OBS](https://obsproject.com/)
- **Changeur de qualité vidéo** : Permet de changer la qualité vidéo avec
un [bouton](https://user-images.githubusercontent.com/78568641/138574366-70324a5e-2d64-4f6a-acdd-dc2a2b9cecc5.png) sur
l'overlay vidéo
- **Bascule vidéo** : Ajoute
un [bouton](https://user-images.githubusercontent.com/28893833/173663950-63e6610e-a532-49b7-9afa-54cb57ddfc15.png) pour
basculer entre le mode Vidéo/Chanson. peut également supprimer l'onglet vidéo entier
- **Visualiseur** : Différents visualiseurs musicaux
## Traduction
Vous pouvez aider à la traduction sur [Hosted Weblate](https://hosted.weblate.org/projects/youtube-music/).
<a href="https://hosted.weblate.org/engage/youtube-music/">
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/multi-auto.svg" alt="statut de la traduction" />
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/287x66-black.png" alt="statut de la traduction 2" />
</a>
## Téléchargement
Vous pouvez consulter la [dernière sortie](https://github.com/th-ch/youtube-music/releases/latest) pour trouver rapidement la
dernière version.
### Arch Linux
Installez le paquet [`youtube-music-bin`](https://aur.archlinux.org/packages/youtube-music-bin) depuis l'AUR. Pour les instructions d'installation de l'AUR, consultez
cette [page wiki](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages).
### MacOS
Vous pouvez installer l'application en utilisant Homebrew (voir la [définition du fût](https://github.com/th-ch/homebrew-youtube-music)) :
```bash
brew install th-ch/youtube-music/youtube-music
```
Si vous installez l'application manuellement et obtenez une erreur "est endommagé et ne peut pas être ouvert." lors du lancement de l'application, exécutez ce qui suit dans le Terminal :
```bash
xattr -cr /Applications/YouTube\ Music.app
```
### Windows
Vous pouvez utiliser le [gestionnaire de paquets Scoop](https://scoop.sh) pour installer le paquet `youtube-music` depuis le [seau `extras`](https://github.com/ScoopInstaller/Extras).
```bash
scoop bucket add extras
scoop install extras/youtube-music
```
Alternativement, vous pouvez utiliser [Winget](https://learn.microsoft.com/fr-fr/windows/package-manager/winget/), le gestionnaire de paquets CLI officiel de Windows 11, pour installer le paquet `th-ch.YouTubeMusic`.
*Note : Microsoft Defender SmartScreen pourrait bloquer l'installation car elle provient d'un "éditeur inconnu". Ceci est également vrai pour l'installation manuelle lors de l'essai d'exécution de l'exécutable (.exe) après un téléchargement manuel ici sur GitHub (même fichier).*
```bash
winget install th-ch.YouTubeMusic
```
#### Comment installer sans connexion réseau ? (sous Windows)
- Téléchargez le fichier `*.nsis.7z` pour _l'architecture de votre appareil_ sur la [page des versions](https://github.com/th-ch/youtube-music/releases/latest).
- `x64` pour Windows 64 bits
- `ia32` pour Windows 32 bits
- `arm64` pour Windows ARM64
- Téléchargez l'installeur sur la page des versions. (`*-Setup.exe`)
- Placez-les dans le **même dossier**.
- Exécutez l'installeur.
## Thèmes
Vous pouvez charger des fichiers CSS pour changer l'apparence de l'application (Options > Ajustements visuels > Thèmes).
Certains thèmes prédéfinis sont disponibles sur [https://github.com/kerichdev/themes-for-ytmdesktop-player](https://github.com/kerichdev/themes-for-ytmdesktop-player).
## Dev
```bash
git clone https://github.com/th-ch/youtube-music
cd youtube-music
pnpm install --frozen-lockfile
pnpm dev
```
## Créez vos propres plugins
En utilisant des plugins, vous pouvez :
- manipuler l'application - la `BrowserWindow` d'Electron est passée au gestionnaire de plugin
- changer le front en manipulant le HTML/CSS
### Créer un plugin
Créez un dossier dans `src/plugins/NOM-DE-VOTRE-PLUGIN` :
- `index.ts` : le fichier principal du plugin
```typescript
import style from './style.css?inline'; // importez le style comme inline
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Étiquette du plugin',
restartNeeded: true, // si la valeur est vraie, ytmusic affichera la boîte de dialogue de redémarrage
config: {
enabled: false,
}, // votre configuration personnalisée
stylesheets: [style], // votre style personnalisé,
menu: async ({ getConfig, setConfig }) => {
// Toutes les méthodes *Config sont des promesses encapsulées <T>
const config = await getConfig();
return [
{
label: 'menu',
submenu: [1, 2, 3].map((value) => ({
label: `valeur ${value}`,
type: 'radio',
checked: config.value === value,
click() {
setConfig({ value });
},
})),
},
];
},
backend: {
start({ window, ipc }) {
window.maximize();
// vous pouvez communiquer avec le plugin du rendu
ipc.handle('un événement', () => {
return 'bonjour';
});
},
// il est déclenché lorsque la configuration change
onConfigChange(newConfig) { /* ... */ },
// il est déclenché lorsque le plugin est désactivé
stop(context) { /* ... */ },
},
renderer: {
async start(context) {
console.log(await context.ipc.invoke('un événement'));
},
// Seul le crochet disponible pour le rendu
onPlayerApiReady(api: YoutubePlayer, context: RendererContext) {
// définir facilement la configuration du plugin
context.setConfig({ myConfig: api.getVolume() });
},
onConfigChange(newConfig) { /* ... */ },
stop(_context) { /* ... */ },
},
preload: {
async start({ getConfig }) {
const config is obtained by `getConfig` method.
},
onConfigChange(newConfig) {},
stop(_context) {},
},
});
```
### Cas d'utilisation courants
- **Injection de CSS personnalisé** : créez un fichier `style.css` dans le même dossier puis :
```typescript
// index.ts
import style from './style.css?inline'; // importez le style comme en ligne
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Étiquette du plugin',
restartNeeded: true, // si la valeur est vraie, ytmusic affichera la boîte de dialogue de redémarrage
config: {
enabled: false,
}, // votre configuration personnalisée
stylesheets: [style], // votre style personnalisé
renderer() {} // définissez le crochet de rendu
});
```
- **Si vous voulez modifier le HTML** :
```typescript
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Étiquette du plugin',
restartNeeded: true, // si la valeur est vraie, ytmusic affichera la boîte de dialogue de redémarrage
config: {
enabled: false,
}, // votre configuration personnalisée
renderer() {
// Supprimez le bouton de connexion
document.querySelector(".sign-in-link.ytmusic-nav-bar").remove();
} // définissez le crochet de rendu
});
```
- **Communication entre le front et le back** : cela peut se faire en utilisant le module ipcMain d'Electron. Voir le fichier `index.ts` et l'exemple dans le plugin `sponsorblock`.
## Construction
1. Clonez le dépôt
2. Suivez [ce guide](https://pnpm.io/installation) pour installer `pnpm`
3. Exécutez `pnpm install --frozen-lockfile` pour installer les dépendances
4. Exécutez `pnpm build:OS`
- `pnpm dist:win` - pour Windows
- `pnpm dist:linux` - pour Linux
- `pnpm dist:mac` - pour MacOS
Construit l'application pour macOS, Linux et Windows,
en utilisant [electron-builder](https://github.com/electron-userland/electron-builder).
## Aperçu de la production
```bash
pnpm start
```
## Tests
```bash
pnpm test
```
Utilise [Playwright](https://playwright.dev/) pour tester l'application.
## Licence
MIT © [th-ch](https://github.com/th-ch/youtube-music)
## FAQ
### Pourquoi le menu de l'application ne s'affiche-t-il pas ?
Si l'option `Masquer le menu` est activée - vous pouvez afficher le menu avec la touche <kbd>alt</kbd> (ou <kbd>\`</kbd> [backtick] si vous utilisez le plugin du menu intégré)

View File

@ -1,388 +0,0 @@
<div align="center">
# YouTube Tónlist
[![GitHub release](https://img.shields.io/github/release/th-ch/youtube-music.svg?style=for-the-badge&logo=youtube-music)](https://github.com/th-ch/youtube-music/releases/)
[![GitHub license](https://img.shields.io/github/license/th-ch/youtube-music.svg?style=for-the-badge)](https://github.com/th-ch/youtube-music/blob/master/LICENSE)
[![eslint code style](https://img.shields.io/badge/code_style-eslint-5ed9c7.svg?style=for-the-badge)](https://github.com/th-ch/youtube-music/blob/master/.eslintrc.js)
[![Build status](https://img.shields.io/github/actions/workflow/status/th-ch/youtube-music/build.yml?branch=master&style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/)
[![GitHub All Releases](https://img.shields.io/github/downloads/th-ch/youtube-music/total?style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/)
[![AUR](https://img.shields.io/aur/version/youtube-music-bin?color=blueviolet&style=for-the-badge&logo=youtube-music)](https://aur.archlinux.org/packages/youtube-music-bin)
[![Known Vulnerabilities](https://snyk.io/test/github/th-ch/youtube-music/badge.svg)](https://snyk.io/test/github/th-ch/youtube-music)
</div>
![Screenshot](../../web/screenshot.jpg "Screenshot")
<div align="center">
<a href="https://github.com/th-ch/youtube-music/releases/latest">
<img src="../../web/youtube-music.svg" width="400" height="100" alt="YouTube Music SVG">
</a>
</div>
**Electron umbúðir utan um YouTube Tónlist sem inniheldur:**
- Innfæddur útlit og tilfinning, miðar að því að halda upprunalegu viðmótinu
- Rammi fyrir sérsniðnar tengiforrit: breyttu YouTube Tónlist að þínum þörfum (stíl, efni, eiginleikar), virkjaðu/slökktu á viðbætur í
einn smellur
## Sýnishornsmynd
| Spilaraskjár (albúmslitaþema & umhverfisljós) |
|:---------------------------------------------------------------------------------------------------------:|
|![Screenshot1](https://github.com/th-ch/youtube-music/assets/16558115/53efdf73-b8fa-4d7b-a235-b96b91ea77fc)|
## Efni
- [Eiginleikar](#eiginleikar)
- [Tiltæk tengiforrit](#tiltæk-tengiforrit)
- [Þýðing](#þýðing)
- [Sækja](#sækja)
- [Arch Linux](#arch-linux)
- [MacOS](#macos)
- [Windows](#windows)
- [Hvernig á að setja upp án nettengingar? (í Windows)](#hvernig-á-að-setja-upp-án-nettengingar-í-windows)
- [Þemu](#þemu)
- [Þróun](#þróun)
- [Búðu til þín eigin viðbætur](#búðu-til-þín-eigin-viðbætur)
- [Er að búa til viðbót](#er-að-búa-til-viðbót)
- [Algeng notkunartilvik](#algeng-notkunartilvik)
- [Byggja](#byggja)
- [Framleiðsluforskoðun](#framleiðsluforskoðun)
- [Prófanir](#prófanir)
- [Leyfi](#leyfi)
- [Algengustu spurningar](#algengustu-spurningar)
## Eiginleikar:
- **Sjálfvirk staðfesting þegar gert er hlé** (Alltaf virkt): slökkva á
["Halda áfram að horfa?"](https://user-images.githubusercontent.com/61631665/129977894-01c60740-7ec6-4bf0-9a2c-25da24491b0e.png)
popup sem gerir hlé á tónlist eftir ákveðinn tíma
- Og meira...
## Tiltæk tengiforrit:
- **Auglýsingablokkari**: Lokaðu fyrir allar auglýsingar og rakningar úr kassanum
- **Albúmsaðgerðir**: Bætir Ódíslika, Mislíkt, Líkt, og Ólíkt til að nota þetta á öll lög á spilunarlista eða albúm
- **Albúmslitaþema**: Beitir kraftmikið þema og sjónrænum áhrifum sem byggjast á litavali albúmsins
- **Umhverfishamur**: Beitir lýsingaráhrifum með því að varpa mildum litum úr myndbandinu í bakgrunn skjásins
- **Hljóðþjöppur**: Notaðu þjöppun á hljóð (lækkar hljóðstyrk háværustu hluta merkis og hækkar hljóðstyrk í mýkstu hlutunum)
- **Þoka Leiðsagnarstika**: Gerir leiðsögustikuna gagnsæja og óskýrt
- **Farið Framhjá Aldurstakmörkunum**: Framhjá aldursstaðfestingu YouTube
- **Yfirskriftarval**: Virkja skjátexta
- **Fyrirferðarlítillhliðarstika**: Stilltu hliðarstikuna alltaf í þétta stillingu
- **Krossfæra**: Krossfæra á milli lög
- **Slökkva á Sjálfvirkri Spilun**: Gerir lag að byrja í "hlé" ham
- **[Discord](https://discord.com/) Rík Nærveru**: Sýndu vinum þínum hvað þú hlustar á
með [Rík Nærveru](https://user-images.githubusercontent.com/28219076/104362104-a7a0b980-5513-11eb-9744-bb89eabe0016.png)
- **Niðurhalari**: Niðurhalum
MP3 [beint úr viðmótinu](https://user-images.githubusercontent.com/61631665/129977677-83a7d067-c192-45e1-98ae-b5a4927393be.png) [(youtube-dl)](https://github.com/ytdl-org/youtube-dl)
- **Veldibundiðrúmmál**: Gerir hljóðstyrkssleðann [veldisvísis](https://greasyfork.org/en/scripts/397686-youtube-music-fix-volume-ratio/)
svo það er auðveldara að velja lægra hljóðstyrk.
- **Valmynd í Forriti**: [Gefur börum flott, dökkt útlit](https://user-images.githubusercontent.com/78568641/112215894-923dbf00-8c29-11eb-95c3-3ce15db27eca.png)
> (sjá [þessa færslu](https://github.com/th-ch/youtube-music/issues/410#issuecomment-952060709) ef þú átt í vandræðum
með að fá aðgang að valmyndinni eftir að hafa virkjað þessa viðbót og fela valmyndarvalkostinn)
- **Scrobbler**: Bætir við scrobbling stuðningi fyrir [Last.fm](https://www.last.fm/) og [ListenBrainz](https://listenbrainz.org/)
- **Lumia Stream**: Bætir við [Lumia Stream](https://lumiastream.com/) stuðningi
- **Söngtexti Snilld**: Bætir stuðningi við texta fyrir flest lög
- **Tónlist Saman**: Deila spilunarlista með öðrum. Þegar gestgjafinn spilar lag munu allir aðrir heyra sama lagið
- **Leiðsögn**: Næsta/Til baka leiðsagnarörvar beint samþættar í viðmótinu, eins og í uppáhalds vafranum þínum
- **Engin Google Innskráning**: Fjarlægðu Google innskráningarhnappa og tengla úr viðmótinu
- **Tilkynningar**: Birta tilkynningu þegar lag byrjar að spila
([gagnvirkartilkynningar](https://user-images.githubusercontent.com/78568641/114102651-63ce0e00-98d0-11eb-9dfe-c5a02bb54f9c.png) eru fáanlegar á Windows)
- **Mynd-í-Mynd**: Gerir kleift að skipta forritinu yfir í mynd-í-mynd stillingu
- **Spilunarhraði**: Hlustaðu hratt, hlustaðu hægt!
[Bætir við sleða sem stjórnar lagahraðanum](https://user-images.githubusercontent.com/61631665/129976003-e55db5ba-bf42-448c-a059-26a009775e68.png)
- **Nákvæmshljóðstyrkur**: Stjórnaðu hljóðstyrknum nákvæmlega með músarhjóli/hraðtökkum, með sérsniðnum HUD og sérsniðnum hljóðstyrksþrepum
- **Flýtileiðir (og MPRIS)**: Leyfir að stilla alþjóðlegarflýtilyklar fyrir spilun (spila/gera hlé/næsta/fyrri) +
óvirkja [media osd](https://user-images.githubusercontent.com/84923831/128601225-afa38c1f-dea8-4209-9f72-0f84c1dd8b54.png)
með því að hnekkja miðlunarlyklum + virkja Ctrl/CMD + F til að leita + virkja linux mpris stuðning fyrir
miðlunarlyklar + [sérsniðnir flýtilyklar](https://github.com/Araxeus/youtube-music/blob/1e591d6a3df98449bcda6e63baab249b28026148/providers/song-controls.js#L13-L50)
fyrir [háþróaða notendur](https://github.com/th-ch/youtube-music/issues/106#issuecomment-952156902)
- **Slepptu Lögum sem Mislíkuðust**: Sleppir mislíkaði lög
- **Slepptu Þögnum**: Slepptu sjálfkrafa þagnarköflum í lögum
- [**Styrktarblokk**](https://github.com/ajayyy/SponsorBlock): Sleppur sjálfkrafa hlutum sem ekki eru tónlist, eins og inngangur/lok
eða hlutar af tónlistarmyndböndum þar sem lag er ekki að spila
- **Miðlunarstýringarverkefnastikunnar**: Stjórnaðu spilun frá [Windows verkefnastikunni þinni](https://user-images.githubusercontent.com/78568641/111916130-24a35e80-8a82-11eb-80c8-5021c1aa27f4.png)
- **Snertistiku**: Sérsniðið Snertistikuútlit fyrir macOS
- **Tuna OBS**: Samþætting við [OBS](https://obsproject.com/)
viðbótina [Tuna](https://obsproject.com/forum/resources/tuna.843/)
- **Myndbandgæðisbreyting**: Leyfir að breyta myndbandgæðum með
[hnappi](https://user-images.githubusercontent.com/78568641/138574366-70324a5e-2d64-4f6a-acdd-dc2a2b9cecc5.png) á
myndbandsyfirlaginu
- **Myndbandsrofi**: Bætir við [hnappi](https://user-images.githubusercontent.com/28893833/173663950-63e6610e-a532-49b7-9afa-54cb57ddfc15.png) til
að skipta á milli myndbands/lagshams. Getur einnig valfrjálst fjarlægt allan myndbandsflipann
- **Sjónrænir**: Mismunandi tónlist sjónrænir
## Þýðing
Þú getur aðstoðað við þýðingar á [Hosted Weblate](https://hosted.weblate.org/projects/youtube-music/).
<a href="https://hosted.weblate.org/engage/youtube-music/">
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/multi-auto.svg" alt="translation status" />
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/287x66-black.png" alt="translation status 2" />
</a>
## Sækja
Þú getur skoðað [nýjustu útgáfuna](https://github.com/th-ch/youtube-music/releases/latest) til að finna fljótt
nýjustu útgáfuna.
### Arch Linux
Settu upp [`youtube-music-bin`](https://aur.archlinux.org/packages/youtube-music-bin) pakkann frá AUR. Fyrir AUR uppsetningarleiðbeiningar skaltu skoða
þessa [wiki síðu](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages).
### MacOS
Þú getur sett upp appið með því að nota Homebrew (sjá [cask skilgreiningu](https://github.com/th-ch/homebrew-youtube-music))
```bash
brew install th-ch/youtube-music/youtube-music
```
Ef þú setur upp forritið handvirkt og færð villu "er skemmd og ekki er hægt að opna það," þegar þú ræsir forritið skaltu keyra eftirfarandi í flugstöðinni:
```bash
xattr -cr /Applications/YouTube\ Music.app
```
### Windows
Þú getur notað [Scoop pakkastjórnun](https://scoop.sh) til að setja upp `youtube-music` pakkann frá
[`extras` fötunni](https://github.com/ScoopInstaller/Extras).
```bash
scoop bucket add extras
scoop install extras/youtube-music
```
Að öðrum kosti geturðu notað [Winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/), Windows 11s
opinber CLI pakkastjóri til að setja upp `th-ch.YouTubeMusic` pakkann.
*Athugið: Microsoft Defender SmartScreen gæti lokað uppsetningunni þar sem hún er frá „óþekktum útgefanda“. Þetta er einnig
satt fyrir handvirka uppsetningu þegar reynt er að keyra executable(.exe) eftir handvirkt niðurhal hér á github (sama
skrá).*
```bash
winget install th-ch.YouTubeMusic
```
#### Hvernig á að setja upp án nettengingar? (í Windows)
- Sæktu `*.nsis.7z` skrána fyrir _arkitektúr tækisins þíns_ á [útgáfusíðu](https://github.com/th-ch/youtube-music/releases/latest).
- `x64` fyrir 64-bita Windows
- `ia32` fyrir 32-bita Windows
- `arm64` fyrir ARM64 Windows
- Sæktu uppsetningarforrit á útgáfusíðu. (`*-Setup.exe`)
- Settu þær í **sömu möppuna**.
- Keyrðu uppsetningarforritið.
## Þemu
Þú getur hlaðið CSS skrám til að breyta útliti forritsins (Valkostir > Sjónræn klip > Þemu).
Sum fyrirframskilgreind þemu eru fáanleg á https://github.com/kerichdev/themes-for-ytmdesktop-player.
## Þróun
```bash
git clone https://github.com/th-ch/youtube-music
cd youtube-music
pnpm install --frozen-lockfile
pnpm dev
```
## Búðu til þín eigin tengiforrit
Með því að nota tengiforrit geturðu:
- vinna með appið - `BrowserWindow` frá electron er sent til tengiforritsstjórans
- breyttu framhliðinni með því að vinna með HTML/CSS
### Er að búa til tengiforrit
Búðu til möppu í `src/plugins/YOUR-PLUGIN-NAME`:
- `index.ts`: aðal skránni af tengiforritið
```typescript
import style from './style.css?inline'; // flytja inn stíl sem inline
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Plugin Label',
restartNeeded: true, // ef gildi er satt, ytmusic sjá endurræsa gluggann
config: {
enabled: false,
}, // sérsniðnastillingar þinn
stylesheets: [style], // sérsniðnastílinn þinn
menu: async ({ getConfig, setConfig }) => {
// Allar *stillingaraðferðir eru umvafnar Lofor<T>
const config = await getConfig();
return [
{
label: 'menu',
submenu: [1, 2, 3].map((value) => ({
label: `value ${value}`,
type: 'radio',
checked: config.value === value,
click() {
setConfig({ value });
},
})),
},
];
},
backend: {
start({ window, ipc }) {
window.maximize();
// þú getur tengst við renderer tengiforritið
ipc.handle('some-event', () => {
return 'hello';
});
},
// það kviknaði þegar stillingum var breytt
onConfigChange(newConfig) { /* ... */ },
// it fired when plugin disabled
stop(context) { /* ... */ },
},
renderer: {
async start(context) {
console.log(await context.ipc.invoke('some-event'));
},
// Aðeins krókur sem er í boði fyrir renderer
onPlayerApiReady(api: YoutubePlayer, context: RendererContext) {
// stilltu stillingar viðbótarinnar auðveldlega
context.setConfig({ myConfig: api.getVolume() });
},
onConfigChange(newConfig) { /* ... */ },
stop(_context) { /* ... */ },
},
preload: {
async start({ getConfig }) {
const config = await getConfig();
},
onConfigChange(newConfig) {},
stop(_context) {},
},
});
```
### Algeng notkunartilvik
- er að sprauta sérsniðnum CSS: búðu til `style.css` skrá í sömu möppu þá:
```typescript
// index.ts
import style from './style.css?inline'; // flytja inn stíl sem inline
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Plugin Label',
restartNeeded: true, // ef gildi er satt, ytmusic sjá endurræsa gluggann
config: {
enabled: false,
}, // sérsniðnastillingar þinn
stylesheets: [style], // sérsniðnastílinn þinn
renderer() {} // skilgreina renderer krók
});
```
- Ef þú vilt breyta HTML:
```typescript
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Plugin Label',
restartNeeded: true, // ef gildi er satt, ytmusic sjá endurræsa gluggann
config: {
enabled: false,
}, // sérsniðnastillingar þinn
renderer() {
// Fjarlægðu innskráningarhnappinn
document.querySelector(".sign-in-link.ytmusic-nav-bar").remove();
} // skilgreina renderer krók
});
```
- samskipti á milli að framan og aftan: hægt að gera með því að nota ipcMain eininguna frá electron. Sjá `index.ts` skrá og
dæmi í 'styrktarblokk' tengiforritinu.
## Byggja
1. Klóna geymsluna
2. Fylgdu [þessa handbók](https://pnpm.io/installation) til að setja upp 'pnpm'
3. Keyrðu `pnpm install --frozen-lockfile` til að setja upp ósjálfstæði
4. Keyrðu `pnpm build:OS`
- `pnpm dist:win` - Windows
- `pnpm dist:linux` - Linux
- `pnpm dist:mac` - MacOS
Byggir appið fyrir macOS, Linux og Windows,
með því að nota [electron-builder](https://github.com/electron-userland/electron-builder).
## Framleiðsluforskoðun
```bash
pnpm start
```
## Prófanir
```bash
pnpm test
```
Notar [Playwright](https://playwright.dev/) til að prófa forritið.
## Leyfi
MIT © [th-ch](https://github.com/th-ch/youtube-music)
## Algengustu Spurningar
### Hvers vegna forritavalmynd birtist ekki?
Ef valmöguleikinn „Fela valmynd“ er á - þú getur sýnt valmyndina með <kbd>alt</kbd> lyklinum (eða <kbd>\`</kbd> [bakka]
ef þú notar viðbótina fyrir valmynd í forriti)

View File

@ -1,348 +0,0 @@
<div align="center">
# 유튜브 뮤직 (YouTube Music)
[![GitHub release](https://img.shields.io/github/release/th-ch/youtube-music.svg?style=for-the-badge&logo=youtube-music)](https://github.com/th-ch/youtube-music/releases/)
[![GitHub license](https://img.shields.io/github/license/th-ch/youtube-music.svg?style=for-the-badge)](https://github.com/th-ch/youtube-music/blob/master/LICENSE)
[![eslint code style](https://img.shields.io/badge/code_style-eslint-5ed9c7.svg?style=for-the-badge)](https://github.com/th-ch/youtube-music/blob/master/.eslintrc.js)
[![Build status](https://img.shields.io/github/actions/workflow/status/th-ch/youtube-music/build.yml?branch=master&style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/)
[![GitHub All Releases](https://img.shields.io/github/downloads/th-ch/youtube-music/total?style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/)
[![AUR](https://img.shields.io/aur/version/youtube-music-bin?color=blueviolet&style=for-the-badge&logo=youtube-music)](https://aur.archlinux.org/packages/youtube-music-bin)
[![Known Vulnerabilities](https://snyk.io/test/github/th-ch/youtube-music/badge.svg)](https://snyk.io/test/github/th-ch/youtube-music)
</div>
![Screenshot](../../web/screenshot.jpg "Screenshot")
<div align="center">
<a href="https://github.com/th-ch/youtube-music/releases/latest">
<img src="../../web/youtube-music.svg" width="400" height="100" alt="YouTube Music SVG">
</a>
</div>
**유튜브 뮤직의 Electron 래퍼; 기능:**
- 원래의 인터페이스를 유지하는 것을 목표로 하는 네이티브 디자인 및 느낌
- 맞춤 플러그인을 위한 프레임워크: 스타일, 콘텐츠, 기능 등 필요에 따라 유튜브 뮤직을 변경하고, 클릭 한 번으로 플러그인을 활성화/비활성화할 수 있습니다.
## Content
- [기능](#기능)
- [사용 가능한 플러그인](#사용-가능한-플러그인)
- [번역](#번역)
- [다운로드](#다운로드)
- [Arch Linux](#arch-linux)
- [MacOS](#macos)
- [Windows](#windows)
- [(Windows에서) 네트워크에 연결하지 않고 설치하는 방법은 무엇인가요?](#windows에서-네트워크에-연결하지-않고-설치하는-방법은-무엇인가요)
- [테마](#테마)
- [개발](#개발)
- [나만의 플러그인 만들기](#나만의-플러그인-만들기)
- [플러그인 만들기](#플러그인-만들기)
- [일반적인 사용 예](#일반적인-사용-예)
- [빌드](#빌드)
- [프로덕션 빌드 미리보기](#프로덕션-빌드-미리보기)
- [테스트](#테스트)
- [라이선스](#라이선스)
- [자주 묻는 질문](#자주-묻는-질문)
## 기능:
- **일시 정지 시 자동 확인** (항상 활성화 됨): 일정 시간이 지나면 음악을 일시 정지하는 ["계속 시청하시겠습니까?"](https://user-images.githubusercontent.com/61631665/129977894-01c60740-7ec6-4bf0-9a2c-25da24491b0e.png) 팝업을 비활성화합니다.
- 이외에 더 많은 기능 ...
## 사용 가능한 플러그인:
- **애드블록**: 모든 광고와 트래커를 즉시 차단합니다
- **앨범 컬러 기반 테마**: 앨범 색상 팔레트를 기반으로 동적 테마 및 시각 효과를 적용합니다
- **앰비언트 모드**: 영상의 간접 조명을 화면 배경에 투사합니다.
- **오디오 컴프레서**: 오디오에 컴프레서를 적용합니다 (신호에서 가장 시끄러운 부분의 음량을 낮추고 가장 조용한 부분의 음량을 높임)
- **네비게이션 바 흐림 효과**: 내비게이션 바를 투명하고 흐릿하게 만듭니다
- **나이 제한 우회**: 유튜브의 나이 제한을 우회합니다
- **자막 선택기**: 자막을 활성화합니다
- **컴팩트 사이드바**: 사이드바를 항상 컴팩트 모드로 설정합니다
- **크로스페이드**: 노래 사이에 크로스페이드 효과를 적용합니다
- **자동 재생 해제**: 노래를 '일시 정지' 모드로 시작하게 합니다
- [**디스코드 활동 상태**](https://discord.com/): [활동 상태 (Rich Presence)](https://user-images.githubusercontent.com/28219076/104362104-a7a0b980-5513-11eb-9744-bb89eabe0016.png)를 사용하여 친구들에게 내가 듣는 음악을 보여주세요
- **다운로더**: UI에서 [직접](https://user-images.githubusercontent.com/61631665/129977677-83a7d067-c192-45e1-98ae-b5a4927393be.png) MP3/소스 오디오를 다운로드하세요
- **지수 볼륨**: 음량 슬라이더를 [지수적](https://greasyfork.org/en/scripts/397686-youtube-music-fix-volume-ratio/)으로 만들어 더 낮은 음량을 쉽게 선택할 수 있도록 합니다.
- **인앱 메뉴**: [메뉴 표시줄을 더 멋지게, 그리고 다크 또는 앨범의 색상으로 만듭니다](https://user-images.githubusercontent.com/78568641/112215894-923dbf00-8c29-11eb-95c3-3ce15db27eca.png)
> (이 플러그인 및 메뉴 숨기기 옵션을 활성화한 후 메뉴에 액세스하는 데 문제가 있는 경우 [이 글](https://github.com/th-ch/youtube-music/issues/410#issuecomment-952060709)을 참조하세요)
- [**Last.fm**](https://www.last.fm/): Last.fm에 대한 스크러블 지원을 추가합니다
- **Lumia Stream**: [Lumia Stream](https://lumiastream.com/) 지원을 추가합니다
- **Genius 가사**: 더 많은 곡에 대해 가사 지원을 추가합니다
- **네비게이션**: 브라우저에서처럼, UI에 직접 통합된 앞으로/뒤로 탐색하는 화살표를 추가합니다
- **Google 로그인 제거**: UI에서 Google 로그인 버튼 및 링크 제거하기
- **알림**: 노래 재생이 시작되면 알림을 표시 (Windows에서는 [대화형 알림](https://user-images.githubusercontent.com/78568641/114102651-63ce0e00-98d0-11eb-9dfe-c5a02bb54f9c.png) 사용 가능)
- **PiP**: 앱을 PiP 모드로 전환할 수 있게 허용합니다
- **재생 속도**: 빨리 듣거나, 천천히 들어보세요! [노래 속도를 제어하는 슬라이더를 추가합니다](https://user-images.githubusercontent.com/61631665/129976003-e55db5ba-bf42-448c-a059-26a009775e68.png)
- **정확한 음량**: 사용자 지정 HUD와 사용자 지정 음량 단계 및 마우스 휠/단축키를 사용하여 음량을 정확하게 제어하세요
- **영상 품질 체인저**: 영상 오버레이의 [버튼](https://user-images.githubusercontent.com/78568641/138574366-70324a5e-2d64-4f6a-acdd-dc2a2b9cecc5.png)으로 영상 품질을 변경할 수 있게 합니다
- **단축키 (& MPRIS)**: 재생을 위한 전역 단축키 설정 허용 (재생/일시 정지/다음/이전) + 미디어 키를 재정의하여 [미디어 osd](https://user-images.githubusercontent.com/84923831/128601225-afa38c1f-dea8-4209-9f72-0f84c1dd8b54.png) 비활성화 + Ctrl/CMD + F 검색 활성화 + 미디어 키에 대한 리눅스 MPRIS 지원 활성화 + [고급 사용자](https://github.com/th-ch/youtube-music/issues/106#issuecomment-952156902)를 위한 [사용자 지정 단축키](https://github.com/Araxeus/youtube-music/blob/1e591d6a3df98449bcda6e63baab249b28026148/providers/song-controls.js#L13-L50) 지원
- **무음 건너뛰기** - 노래의 무음 부분을 자동으로 건너뜁니다
- [**SponsorBlock**](https://github.com/ajayyy/SponsorBlock): 인트로/아웃트로와 같은 음악이 아닌 부분이나, 노래가 재생되지 않는 뮤직 비디오의 일부를 자동으로 건너뜁니다
- **작업표시줄 미디어 컨트롤**: [Windows 작업표시줄](https://user-images.githubusercontent.com/78568641/111916130-24a35e80-8a82-11eb-80c8-5021c1aa27f4.png)에서 재생을 제어하세요
- **TouchBar**: macOS 사용자를 위한 TouchBar 위젯을 추가합니다
- **Tuna-OBS**: [OBS](https://obsproject.com/)의 플러그인, [Tuna](https://obsproject.com/forum/resources/tuna.843/)와 통합을 활성화합니다
- **영상 전환**: 영상/노래 모드를 전환하는 [버튼](https://user-images.githubusercontent.com/28893833/173663950-63e6610e-a532-49b7-9afa-54cb57ddfc15.png)을 추가합니다. 선택적으로 전체 영상 탭을 제거할 수도 있습니다
- **비주얼라이저**: 플레이어에 시각화 도구 추가
## 번역
[Hosted Weblate](https://hosted.weblate.org/projects/youtube-music/)에서 번역을 도울 수 있습니다.
<a href="https://hosted.weblate.org/engage/youtube-music/">
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/multi-auto.svg" alt="번역 상태" />
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/287x66-black.png" alt="번역 상태 2" />
</a>
## 다운로드
[최신 릴리즈](https://github.com/th-ch/youtube-music/releases/latest)를 확인하여 최신 버전을 빠르게 찾을 수 있습니다.
### Arch Linux
AUR에서 [`youtube-music-bin`](https://aur.archlinux.org/packages/youtube-music-bin) 패키지를 설치합니다. AUR 설치 지침은 [이 위키 페이지](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages)를 참조하세요.
### MacOS
Homebrew를 사용하여 앱을 설치할 수 있습니다:
```bash
brew install --cask https://raw.githubusercontent.com/th-ch/youtube-music/master/youtube-music.rb
```
(앱을 수동으로 설치하고) 앱을 실행할 때 `손상되었기 때문에 열 수 없습니다.`라는 오류가 발생하면 터미널에서 다음을 실행하세요:
```bash
xattr -cr /Applications/YouTube\ Music.app
```
### Windows
[Scoop 패키지 매니저](https://scoop.sh)를 사용하여 [`extras` 버킷](https://github.com/ScoopInstaller/Extras)에서 `youtube-music` 패키지를 설치할 수 있습니다.
```bash
scoop bucket add extras
scoop install extras/youtube-music
```
또는 Windows 11의 공식 CLI 패키지 관리자인 [Winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/)을 사용하여 `th-ch.YouTubeMusic` 패키지를 설치할 수 있습니다.
*참고: "알 수 없는 게시자"의 파일이기 때문에 Microsoft Defender의 SmartScreen에서 설치를 차단할 수 있습니다. 이는 GitHub에서 동일 파일을 수동으로 다운로드한 후 실행 파일(.exe)을 실행하려고 할 때도 마찬가지로 발생합니다.*
```bash
winget install th-ch.YouTubeMusic
```
#### (Windows에서) 네트워크에 연결하지 않고 설치하는 방법은 무엇인가요?
- [릴리즈 페이지](https://github.com/th-ch/youtube-music/releases/latest)에서 _본인 기기 아키텍처_에 맞는 `*.nsis.7z` 파일을 다운로드하세요.
- `x64`는 64비트 Windows 용입니다.
- `ia32`는 32비트 Windows 용입니다.
- `arm64`는 ARM64 Windows 용입니다.
- 릴리즈 페이지에서 설치기를 다운로드하세요. (`*-Setup.exe`)
- 두 파일을 **동일한 위치**에 놓아주세요.
- 설치기를 실행하세요.
## 테마
CSS 파일을 로드하여 애플리케이션의 모양을 변경할 수 있습니다(설정 > 시각적 변경 > 테마).
일부 사전 정의 테마는 https://github.com/kerichdev/themes-for-ytmdesktop-player 에서 사용할 수 있습니다.
## 개발
```bash
git clone https://github.com/th-ch/youtube-music
cd youtube-music
pnpm install --frozen-lockfile
pnpm dev
```
## 나만의 플러그인 만들기
플러그인을 사용하면 할 수 있는 것들:
- 앱 조작 - Electron에서 `BrowserWindow`가 플러그인 핸들러로 전달
- HTML/CSS를 조작하여 프론트엔드를 변경
### 플러그인 만들기
`plugins/나만의-플러그인-이름`에 폴더를 만듭니다:
- `index.ts`: 플러그인의 메인 파일입니다.
```typescript
import style from './style.css?inline'; // 스타일을 인라인으로 가져옵니다
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Plugin Label',
restartNeeded: true, // 값이 true면, YTM은 재시작 다이얼로그를 표시합니다
config: {
enabled: false,
}, // 나의 커스텀 config
stylesheets: [style], // 나의 스타일
menu: async ({ getConfig, setConfig }) => {
// 모든 *Config 메서드는 Promise<T>로 래핑됩니다
const config = await getConfig();
return [
{
label: 'menu',
submenu: [1, 2, 3].map((value) => ({
label: `value ${value}`,
type: 'radio',
checked: config.value === value,
click() {
setConfig({ value });
},
})),
},
];
},
backend: {
start({ window, ipc }) {
window.maximize();
// 이를 사용하여 렌더러 플러그인과 통신할 수 있습니다
ipc.handle('some-event', () => {
return 'hello';
});
},
// config가 변경되면 실행됩니다
onConfigChange(newConfig) { /* ... */ },
// 플러그인이 비활성화되면 실행됩니다
stop(context) { /* ... */ },
},
renderer: {
async start(context) {
console.log(await context.ipc.invoke('some-event'));
},
// 렌더러에서만 사용 가능한 훅입니다
onPlayerApiReady(api: YoutubePlayer, context: RendererContext<T>) {
// 플러그인의 config를 간단하게 설정할 수 있습니다
context.setConfig({ myConfig: api.getVolume() });
},
onConfigChange(newConfig) { /* ... */ },
stop(_context) { /* ... */ },
},
preload: {
async start({ getConfig }) {
const config = await getConfig();
},
onConfigChange(newConfig) {},
stop(_context) {},
},
});
```
### 일반적인 사용 예
- 사용자 정의 CSS 삽입: 같은 폴더에 `style.css` 파일을 생성합니다:
```typescript
// index.ts
import style from './style.css?inline'; // 스타일을 인라인으로 가져옵니다
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Plugin Label',
restartNeeded: true, // 값이 true면, YTM은 재시작 다이얼로그를 표시합니다
config: {
enabled: false,
}, // 나의 커스텀 config
stylesheets: [style], // 나의 커스텀 스타일
renderer() {} // 렌더러 훅 정의
});
```
- HTML을 변경하려는 경우:
```typescript
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Plugin Label',
restartNeeded: true, // 값이 true면, YTM은 재시작 다이얼로그를 표시합니다
config: {
enabled: false,
}, // 나의 커스텀 config
renderer() {
// 로그인 버튼을 제거합니다
document.querySelector(".sign-in-link.ytmusic-nav-bar").remove();
} // 렌더러 훅 정의
});
```
- 프론트엔드와 백엔드 간의 통신: Electron의 `ipcMain` 모듈을 사용하여 수행할 수 있습니다. `SponsorBlock` 플러그인의 `index.ts` 파일과 예제를 참조하세요.
## 빌드
1. 레포지토리를 복제 (clone) 합니다
2. [이 가이드](https://pnpm.io/installation)에 따라 `pnpm`을 설치합니다.
3. `pnpm install --frozen-lockfile`을 실행하여 종속성을 설치합니다.
4. `pnpm build:OS`을 실행합니다.
- `pnpm dist:win` - Windows
- `pnpm dist:linux` - Linux
- `pnpm dist:mac` - MacOS
[electron-builder](https://github.com/electron-userland/electron-builder)를 사용하여 macOS, Linux 및 Windows용 앱을 빌드합니다.
## 프로덕션 빌드 미리보기
```bash
pnpm start
```
## 테스트
```bash
pnpm test
```
[Playwright](https://playwright.dev/)를 사용하여 앱을 테스트합니다.
## 라이선스
MIT © [th-ch](https://github.com/th-ch/youtube-music)
## 자주 묻는 질문
### 앱 메뉴가 표시되지 않는 이유는 무엇인가요?
`메뉴 숨기기` 옵션이 켜져 있는 경우 - <kbd>alt</kbd> 키(또는 인앱 메뉴 플러그인을 사용하는 경우 <kbd>\`</kbd> [백틱] 키)로 메뉴를 표시할 수 있습니다.

View File

@ -1,53 +0,0 @@
/* hebrew */
@font-face {
font-family: 'Heebo';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/heebo/v9/NGS6v5_NC0k9P9H0TbFhsqMA6aw.woff2) format('woff2');
unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* latin */
@font-face {
font-family: 'Heebo';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/heebo/v9/NGS6v5_NC0k9P9H2TbFhsqMA.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* hebrew */
@font-face {
font-family: 'Heebo';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/heebo/v9/NGS6v5_NC0k9P9H0TbFhsqMA6aw.woff2) format('woff2');
unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* latin */
@font-face {
font-family: 'Heebo';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/heebo/v9/NGS6v5_NC0k9P9H2TbFhsqMA.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: 'Oxygen';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/oxygen/v10/2sDcZG1Wl4LcnbuCNWgzZmW5Kb8VZBHR.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Oxygen';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/oxygen/v10/2sDcZG1Wl4LcnbuCNWgzaGW5Kb8VZA.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

File diff suppressed because it is too large Load Diff

121
electron-builder.yml Normal file
View File

@ -0,0 +1,121 @@
appId: "com.github.th-ch.\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u002d\u006d\u0075\u0073\u0069\u0063"
productName: "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063"
files:
- '!*'
- dist
- assets
- license
- '!node_modules'
- 'node_modules/custom-electron-prompt/**'
- 'node_modules/@ghostery/adblocker-electron-preload/**'
- 'node_modules/@ffmpeg.wasm/core-mt/**'
- '!node_modules/**/*.map'
- '!node_modules/**/*.ts'
asarUnpack:
- assets
mac:
identity: null
target:
- target: dmg
arch:
- x64
- arm64
icon: assets/generated/icons/mac/icon.icon
compression: maximum
win:
icon: assets/generated/icons/win/icon.ico
target:
- target: nsis-web
arch:
- x64
- ia32
- arm64
- target: portable
arch:
- x64
- ia32
- arm64
compression: maximum
nsisWeb:
runAfterFinish: false
linux:
icon: assets/generated/icons/png
category: AudioVideo
desktop:
entry:
StartupWMClass: "com.github.th_ch.\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u005f\u006d\u0075\u0073\u0069\u0063"
target:
- target: AppImage
arch:
- x64
- arm64
- armv7l
- target: flatpak
arch:
- x64
- target: deb
arch:
- x64
- arm64
- armv7l
- target: rpm
arch:
- x64
- arm64
- target: snap
arch:
- x64
- target: freebsd
arch:
- x64
- arm64
- armv7l
- target: tar.gz
arch:
- x64
- arm64
- armv7l
appImage:
description: "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063 Desktop App bundled with custom plugins"
category: AudioVideo
flatpak:
description: "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063 Desktop App bundled with custom plugins"
category: AudioVideo
runtimeVersion: '24.08'
baseVersion: '24.08'
finishArgs:
- '--socket=wayland'
- '--socket=x11'
- '--share=ipc'
- '--device=dri'
- '--socket=pulseaudio'
- '--share=network'
- '--filesystem=xdg-music:rw'
- '--talk-name=org.freedesktop.Notifications'
- '--talk-name=org.gnome.SessionManager'
- '--talk-name=org.kde.StatusNotifierWatcher'
- "--own-name=org.mpris.MediaPlayer2.\u0059\u006f\u0075\u0074\u0075\u0062\u0065\u004d\u0075\u0073\u0069\u0063.*"
deb:
depends:
- libgtk-3-0
- libnotify4
- libnss3
- libxss1
- libxtst6
- xdg-utils
- libatspi2.0-0
- libuuid1
- libasound2
- libgbm1
rpm:
depends:
- /usr/lib64/libuuid.so.1
fpm:
- '--rpm-rpmbuild-define'
- _build_id_links none
snap:
slots:
- mpris:
interface: mpris
directories:
output: ./pack/

View File

@ -1,17 +1,18 @@
import { resolve, dirname, join } from 'node:path';
import { dirname, join, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
import { defineConfig, defineViteConfig } from 'electron-vite';
import builtinModules from 'builtin-modules';
import viteResolve from 'vite-plugin-resolve';
import Inspect from 'vite-plugin-inspect';
import solidPlugin from 'vite-plugin-solid';
import viteResolve from 'vite-plugin-resolve';
import { withFilter, type UserConfig } from 'vite';
import { pluginVirtualModuleGenerator } from './vite-plugins/plugin-importer.mjs';
import pluginLoader from './vite-plugins/plugin-loader.mjs';
import type { UserConfig } from 'vite';
import { i18nImporter } from './vite-plugins/i18n-importer.mjs';
import solidPlugin from 'vite-plugin-solid';
const __dirname = dirname(fileURLToPath(import.meta.url));
@ -23,6 +24,9 @@ const resolveAlias = {
export default defineConfig({
main: defineViteConfig(({ mode }) => {
const commonConfig: UserConfig = {
experimental: {
enableNativePlugin: true,
},
plugins: [
pluginLoader('backend'),
viteResolve({
@ -31,16 +35,17 @@ export default defineConfig({
}),
],
publicDir: 'assets',
define: {
'__dirname': 'import.meta.dirname',
'__filename': 'import.meta.filename',
},
build: {
lib: {
entry: 'src/index.ts',
formats: ['cjs'],
formats: ['es'],
},
outDir: 'dist/main',
commonjsOptions: {
ignoreDynamicRequires: true,
},
rollupOptions: {
rolldownOptions: {
external: ['electron', 'custom-electron-prompt', ...builtinModules],
input: './src/index.ts',
},
@ -51,8 +56,12 @@ export default defineConfig({
};
if (mode === 'development') {
commonConfig.build!.sourcemap = 'inline';
commonConfig.plugins?.push(
Inspect({ build: true, outputDir: join(__dirname, '.vite-inspect/backend') }),
Inspect({
build: true,
outputDir: join(__dirname, '.vite-inspect/backend'),
}),
);
return commonConfig;
}
@ -68,6 +77,9 @@ export default defineConfig({
}),
preload: defineViteConfig(({ mode }) => {
const commonConfig: UserConfig = {
experimental: {
enableNativePlugin: true,
},
plugins: [
pluginLoader('preload'),
viteResolve({
@ -84,7 +96,7 @@ export default defineConfig({
commonjsOptions: {
ignoreDynamicRequires: true,
},
rollupOptions: {
rolldownOptions: {
external: ['electron', 'custom-electron-prompt', ...builtinModules],
input: './src/preload.ts',
},
@ -95,8 +107,12 @@ export default defineConfig({
};
if (mode === 'development') {
commonConfig.build!.sourcemap = 'inline';
commonConfig.plugins?.push(
Inspect({ build: true, outputDir: join(__dirname, '.vite-inspect/preload') }),
Inspect({
build: true,
outputDir: join(__dirname, '.vite-inspect/preload'),
}),
);
return commonConfig;
}
@ -112,13 +128,18 @@ export default defineConfig({
}),
renderer: defineViteConfig(({ mode }) => {
const commonConfig: UserConfig = {
experimental: {
enableNativePlugin: mode !== 'development', // Disable native plugin in development mode to avoid issues with HMR (bug in rolldown-vite)
},
plugins: [
pluginLoader('renderer'),
viteResolve({
'virtual:i18n': i18nImporter(),
'virtual:plugins': pluginVirtualModuleGenerator('renderer'),
}),
solidPlugin(),
withFilter(solidPlugin(), {
load: { id: [/\.(tsx|jsx)$/, '/@solid-refresh'] },
}),
],
root: './src/',
build: {
@ -128,10 +149,7 @@ export default defineConfig({
name: 'renderer',
},
outDir: 'dist/renderer',
commonjsOptions: {
ignoreDynamicRequires: true,
},
rollupOptions: {
rolldownOptions: {
external: ['electron', ...builtinModules],
input: './src/index.html',
},
@ -139,11 +157,21 @@ export default defineConfig({
resolve: {
alias: resolveAlias,
},
server: {
cors: {
origin:
'https://music.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com',
},
},
};
if (mode === 'development') {
commonConfig.build!.sourcemap = 'inline';
commonConfig.plugins?.push(
Inspect({ build: true, outputDir: join(__dirname, '.vite-inspect/renderer') }),
Inspect({
build: true,
outputDir: join(__dirname, '.vite-inspect/renderer'),
}),
);
return commonConfig;
}

132
eslint.config.mjs Normal file
View File

@ -0,0 +1,132 @@
//@ts-check
import eslint from '@eslint/js';
import prettier from 'eslint-plugin-prettier/recommended';
import solid from 'eslint-plugin-solid/configs/recommended';
import stylistic from '@stylistic/eslint-plugin';
import tsEslint from 'typescript-eslint';
import * as importPlugin from 'eslint-plugin-import';
export default tsEslint.config(
eslint.configs.recommended,
tsEslint.configs.eslintRecommended,
...tsEslint.configs.recommendedTypeChecked,
prettier,
solid,
{ ignores: ['dist', 'node_modules', '*.config.*js', '*.test.*js'] },
{
plugins: {
stylistic,
importPlugin,
},
languageOptions: {
parser: tsEslint.parser,
parserOptions: {
project: ['tsconfig.json', 'tsconfig.test.json'],
sourceType: 'module',
ecmaVersion: 'latest',
},
},
rules: {
'stylistic/arrow-parens': ['error', 'always'],
'stylistic/object-curly-spacing': ['error', 'always'],
'stylistic/jsx-pascal-case': 'error',
'stylistic/jsx-curly-spacing': [
'error',
{ when: 'never', children: true },
],
'stylistic/jsx-sort-props': 'error',
'prettier/prettier': [
'error',
{
singleQuote: true,
semi: true,
tabWidth: 2,
trailingComma: 'all',
quoteProps: 'preserve',
},
],
'@typescript-eslint/no-floating-promises': 'off',
'@typescript-eslint/no-misused-promises': [
'off',
{ checksVoidReturn: false },
],
'@typescript-eslint/no-unused-vars': [
'warn',
{ argsIgnorePattern: '^_' },
],
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/consistent-type-imports': [
'error',
{
fixStyle: 'inline-type-imports',
prefer: 'type-imports',
disallowTypeAnnotations: false,
},
],
'importPlugin/first': 'error',
'importPlugin/newline-after-import': 'off',
'importPlugin/no-default-export': 'off',
'importPlugin/no-duplicates': 'error',
'importPlugin/no-unresolved': [
'error',
{
ignore: ['^virtual:', '\\?inline$', '\\?raw$', '\\?asset&asarUnpack'],
},
],
'importPlugin/order': [
'error',
{
'groups': [
'builtin',
'external',
['internal', 'index', 'sibling'],
'parent',
'type',
],
'newlines-between': 'always-and-inside-groups',
'alphabetize': { order: 'ignore', caseInsensitive: false },
},
],
'importPlugin/prefer-default-export': 'off',
'camelcase': ['error', { properties: 'never' }],
'class-methods-use-this': 'off',
'stylistic/lines-around-comment': [
'error',
{
beforeBlockComment: false,
afterBlockComment: false,
beforeLineComment: false,
afterLineComment: false,
},
],
'stylistic/max-len': 'off',
'stylistic/no-mixed-operators': 'warn', // prettier does not support no-mixed-operators
'stylistic/no-multi-spaces': ['error', { ignoreEOLComments: true }],
'stylistic/no-tabs': 'error',
'no-void': 'error',
'no-empty': 'off',
'prefer-promise-reject-errors': 'off',
'stylistic/quotes': [
'error',
'single',
{
avoidEscape: true,
allowTemplateLiterals: 'never',
},
],
'stylistic/quote-props': ['error', 'consistent'],
'stylistic/semi': ['error', 'always'],
},
settings: {
'import/parsers': {
'@typescript-eslint/parser': ['.ts'],
},
'import/resolver': {
typescript: {},
exports: {},
},
},
},
);

View File

@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) th-ch <th-ch@users.noreply.github.com> (https://github.com/th-ch/youtube-music)
Copyright (c) th-ch <th-ch@users.noreply.github.com> (https://github.com/pear-devs/pear-desktop)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -1,110 +1,29 @@
{
"name": "youtube-music",
"productName": "YouTube Music",
"version": "3.3.9",
"description": "YouTube Music Desktop App - including custom plugins",
"name": "\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u002d\u006d\u0075\u0073\u0069\u0063",
"desktopName": "com.github.th_ch.\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u005f\u006d\u0075\u0073\u0069\u0063",
"productName": "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063",
"version": "3.11.0",
"description": "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063 Desktop App - including custom plugins",
"main": "./dist/main/index.js",
"type": "module",
"license": "MIT",
"repository": "th-ch/youtube-music",
"repository": "pear-devs/pear-desktop",
"author": {
"name": "th-ch",
"email": "th-ch@users.noreply.github.com",
"url": "https://github.com/th-ch/youtube-music"
},
"build": {
"appId": "com.github.th-ch.youtube-music",
"productName": "YouTube Music",
"files": [
"!*",
"dist",
"assets",
"license",
"!node_modules",
"node_modules/custom-electron-prompt/**",
"node_modules/@cliqz/adblocker-electron-preload/**",
"node_modules/@ffmpeg.wasm/core-mt/**",
"!node_modules/**/*.map",
"!node_modules/**/*.ts"
],
"asarUnpack": [
"assets"
],
"mac": {
"identity": null,
"target": [
{
"target": "dmg",
"arch": [
"x64",
"arm64"
]
}
],
"icon": "assets/generated/icons/mac/icon.icns"
},
"win": {
"icon": "assets/generated/icons/win/icon.ico",
"target": [
{
"target": "nsis-web",
"arch": [
"x64",
"ia32",
"arm64"
]
},
{
"target": "portable",
"arch": [
"x64",
"ia32",
"arm64"
]
}
]
},
"nsisWeb": {
"runAfterFinish": false
},
"linux": {
"icon": "assets/generated/icons/png",
"category": "AudioVideo",
"target": [
"AppImage",
"snap",
"freebsd",
"deb",
"rpm"
]
},
"rpm": {
"depends": [
"/usr/lib64/libuuid.so.1"
]
},
"snap": {
"slots": [
{
"mpris": {
"interface": "mpris"
}
}
]
},
"directories": {
"output": "./pack/"
}
"url": "https://github.com/pear-devs/pear-desktop"
},
"scripts": {
"test": "playwright test",
"test:debug": "cross-env DEBUG=pw:*,-pw:test:protocol playwright test",
"build": "electron-vite build",
"test": "pnpm playwright test",
"test:debug": "pnpm cross-env DEBUG=pw:*,-pw:test:protocol playwright test",
"build": "pnpm electron-vite build",
"vite:inspect": "pnpm clean && electron-vite build --mode development && pnpm exec serve .vite-inspect",
"start": "electron-vite preview",
"start:debug": "cross-env ELECTRON_ENABLE_LOGGING=1 pnpm start",
"dev": "electron-vite dev --watch",
"dev:debug": "cross-env ELECTRON_ENABLE_LOGGING=1 pnpm dev",
"clean": "del-cli dist && del-cli pack && del-cli .vite-inspect",
"start": "pnpm electron-vite preview",
"start:debug": "pnpm cross-env ELECTRON_ENABLE_LOGGING=1 pnpm start",
"dev": "pnpm cross-env NODE_ENV=development NODE_OPTIONS=--enable-source-maps electron-vite dev --watch",
"dev:renderer": "pnpm cross-env NODE_ENV=development NODE_OPTIONS=--enable-source-maps electron-vite dev",
"dev:debug": "pnpm cross-env ELECTRON_ENABLE_LOGGING=1 pnpm dev",
"clean": "pnpm del-cli dist && pnpm del-cli pack && pnpm del-cli .vite-inspect",
"dist": "pnpm clean && pnpm build && pnpm electron-builder --win --mac --linux -p never",
"dist:linux": "pnpm clean && pnpm build && pnpm electron-builder --linux -p never",
"dist:linux:deb-arm64": "pnpm clean && pnpm build && pnpm electron-builder --linux deb:arm64 -p never",
@ -113,116 +32,151 @@
"dist:mac:arm64": "pnpm clean && pnpm build && pnpm electron-builder --mac dmg:arm64 -p never",
"dist:win": "pnpm clean && pnpm build && pnpm electron-builder --win -p never",
"dist:win:x64": "pnpm clean && pnpm build && pnpm electron-builder --win nsis-web:x64 -p never",
"lint": "eslint .",
"changelog": "npx --yes auto-changelog",
"lint": "pnpm eslint ./src",
"changelog": "pnpm dlx auto-changelog",
"release:linux": "pnpm clean && pnpm build && pnpm electron-builder --linux -p always -c.snap.publish=github",
"release:mac": "pnpm clean && pnpm build && pnpm electron-builder --mac -p always",
"release:win": "pnpm clean && pnpm build && pnpm electron-builder --win -p always",
"typecheck": "tsc -p tsconfig.json --noEmit"
"typecheck": "pnpm tsc -p tsconfig.json --noEmit"
},
"engines": {
"node": ">=18.0.0",
"pnpm": ">=8"
"node": ">=22",
"pnpm": ">=10"
},
"pnpm": {
"overrides": {
"usocket": "1.0.1",
"node-gyp": "10.1.0",
"vite": "npm:rolldown-vite@7.3.0",
"node-gyp": "11.4.2",
"xml2js": "0.6.2",
"node-fetch": "3.3.2",
"@electron/universal": "2.0.1",
"@babel/runtime": "7.24.6"
"@electron/universal": "3.0.2",
"@babel/runtime": "7.28.4"
},
"patchedDependencies": {
"vudio@2.1.1": "patches/vudio@2.1.1.patch",
"@xhayper/discord-rpc@1.1.2": "patches/@xhayper__discord-rpc@1.1.2.patch",
"app-builder-lib@24.13.3": "patches/app-builder-lib@24.13.3.patch"
}
"@malept/flatpak-bundler@0.4.0": "patches/@malept__flatpak-bundler@0.4.0.patch",
"kuromoji@0.1.2": "patches/kuromoji@0.1.2.patch",
"file-type@16.5.4": "patches/file-type@16.5.4.patch",
"electron-is@3.0.0": "patches/electron-is@3.0.0.patch",
"mdui@2.1.4": "patches/mdui@2.1.4.patch"
},
"neverBuiltDependencies": []
},
"dependencies": {
"@cliqz/adblocker-electron": "1.27.3",
"@cliqz/adblocker-electron-preload": "1.27.3",
"@dehoist/romanize-thai": "1.0.0",
"@electron-toolkit/tsconfig": "1.0.1",
"@electron/remote": "2.1.2",
"@electron/remote": "2.1.3",
"@ffmpeg.wasm/core-mt": "0.12.0",
"@ffmpeg.wasm/main": "0.12.0",
"@floating-ui/dom": "1.6.5",
"@floating-ui/dom": "1.7.4",
"@foobar404/wave": "2.0.5",
"@jellybrick/electron-better-web-request": "1.0.4",
"@jellybrick/mpris-service": "2.1.4",
"@xhayper/discord-rpc": "1.1.2",
"@ghostery/adblocker-electron": "2.11.6",
"@ghostery/adblocker-electron-preload": "2.11.6",
"@hono/node-server": "1.19.7",
"@hono/node-ws": "1.2.0",
"@hono/swagger-ui": "0.5.2",
"@hono/zod-openapi": "1.2.0",
"@hono/zod-validator": "0.7.6",
"@jellybrick/dbus-next": "0.10.3",
"@jellybrick/electron-better-web-request": "2.0.0",
"@jellybrick/mpris-service": "2.1.5",
"@jimp/plugin-color": "1.6.0",
"@mdui/icons": "^1.0.3",
"@skyra/jaro-winkler": "1.1.1",
"@xhayper/discord-rpc": "1.3.0",
"async-mutex": "0.5.0",
"butterchurn": "3.0.0-beta.4",
"bgutils-js": "3.2.0",
"butterchurn": "3.0.0-beta.5",
"butterchurn-presets": "3.0.0-beta.4",
"color": "4.2.3",
"conf": "12.0.0",
"custom-electron-prompt": "1.5.7",
"dbus-next": "0.10.2",
"deepmerge-ts": "7.0.1",
"electron-debug": "4.0.0",
"color": "5.0.3",
"conf": "14.0.0",
"custom-electron-prompt": "1.5.8",
"deepmerge-ts": "7.1.5",
"delay": "6.0.0",
"electron-debug": "4.1.0",
"electron-is": "3.0.0",
"electron-localshortcut": "3.2.1",
"electron-store": "9.0.0",
"electron-unhandled": "4.0.1",
"electron-updater": "6.1.8",
"fast-average-color": "9.4.0",
"fast-equals": "5.0.1",
"electron-store": "10.1.0",
"electron-unhandled": "5.0.0",
"electron-updater": "6.6.2",
"es-hangul": "2.3.8",
"fast-average-color": "9.5.0",
"fast-equals": "5.2.2",
"fflate": "0.8.2",
"filenamify": "6.0.0",
"hanja": "1.1.5",
"happy-dom": "20.0.11",
"hono": "4.10.3",
"howler": "2.2.4",
"html-to-text": "9.0.5",
"i18next": "23.11.5",
"i18next": "25.5.2",
"jimp": "1.6.0",
"keyboardevent-from-electron-accelerator": "2.0.0",
"keyboardevents-areequal": "0.2.2",
"node-html-parser": "6.1.13",
"node-id3": "0.2.6",
"peerjs": "1.5.4",
"semver": "7.6.2",
"serve": "14.2.3",
"simple-youtube-age-restriction-bypass": "github:organization/Simple-YouTube-Age-Restriction-Bypass#v2.5.9",
"kuromoji": "0.1.2",
"kuroshiro": "1.2.0",
"kuroshiro-analyzer-kuromoji": "1.1.0",
"lazy-var": "2.2.2",
"mdui": "2.1.4",
"node-html-parser": "7.0.1",
"node-id3": "0.2.9",
"peerjs": "1.5.5",
"semver": "7.7.3",
"serve": "14.2.5",
"socks": "2.8.7",
"solid-element": "1.9.1",
"solid-floating-ui": "0.3.1",
"solid-js": "1.8.17",
"solid-js": "1.9.9",
"solid-styled-components": "0.28.5",
"solid-transition-group": "0.2.3",
"ts-morph": "22.0.0",
"solid-transition-group": "0.3.0",
"tiny-pinyin": "1.3.2",
"tinyld": "1.3.4",
"virtua": "0.48.2",
"vudio": "2.1.1",
"x11": "2.3.0",
"youtubei.js": "9.4.0"
"youtubei.js": "^16.0.1",
"zod": "4.2.1"
},
"devDependencies": {
"@playwright/test": "1.44.1",
"@total-typescript/ts-reset": "0.5.1",
"@types/color": "3.0.6",
"@electron-toolkit/tsconfig": "1.0.1",
"@eslint/js": "9.35.0",
"@malept/flatpak-bundler": "0.4.0",
"@playwright/test": "1.55.0",
"@stylistic/eslint-plugin": "5.3.1",
"@total-typescript/ts-reset": "0.6.1",
"@types/electron-localshortcut": "3.1.3",
"@types/howler": "2.2.11",
"@types/howler": "2.2.12",
"@types/html-to-text": "9.0.4",
"@types/semver": "7.5.8",
"@typescript-eslint/eslint-plugin": "7.11.0",
"bufferutil": "4.0.8",
"builtin-modules": "4.0.0",
"cross-env": "7.0.3",
"del-cli": "5.1.0",
"discord-api-types": "0.37.86",
"electron": "30.0.9",
"electron-builder": "24.13.3",
"electron-devtools-installer": "3.2.0",
"electron-vite": "2.2.0",
"esbuild": "0.21.4",
"eslint": "9.4.0",
"@types/semver": "7.7.1",
"@types/trusted-types": "2.0.7",
"bufferutil": "4.0.9",
"builtin-modules": "5.0.0",
"cross-env": "10.0.0",
"del-cli": "6.0.0",
"discord-api-types": "0.38.37",
"electron": "38.7.2",
"electron-builder": "26.4.0",
"electron-builder-squirrel-windows": "26.0.12",
"electron-devtools-installer": "4.0.0",
"electron-vite": "4.0.1",
"eslint": "9.35.0",
"eslint-config-prettier": "10.1.8",
"eslint-import-resolver-exports": "1.0.0-beta.5",
"eslint-import-resolver-typescript": "3.6.1",
"eslint-plugin-import": "2.29.1",
"eslint-plugin-prettier": "5.1.3",
"glob": "10.4.1",
"node-gyp": "10.1.0",
"playwright": "1.44.1",
"rollup": "4.18.0",
"typescript": "5.4.5",
"utf-8-validate": "6.0.4",
"vite": "5.2.12",
"vite-plugin-inspect": "0.8.4",
"vite-plugin-resolve": "2.5.1",
"vite-plugin-solid": "2.10.2",
"ws": "8.17.0"
"eslint-import-resolver-typescript": "4.4.4",
"eslint-plugin-import": "2.32.0",
"eslint-plugin-prettier": "5.5.4",
"eslint-plugin-solid": "0.14.5",
"glob": "11.1.0",
"node-gyp": "11.4.2",
"ts-morph": "27.0.2",
"typescript": "5.9.3",
"typescript-eslint": "8.51.0",
"utf-8-validate": "6.0.6",
"vite": "npm:rolldown-vite@7.3.0",
"vite-plugin-inspect": "11.3.3",
"vite-plugin-resolve": "2.5.2",
"vite-plugin-solid": "2.11.10",
"ws": "8.18.3"
},
"auto-changelog": {
"hideCredit": true,

View File

@ -0,0 +1,29 @@
diff --git a/index.js b/index.js
index 5968fcf47b69094993b0f861c03f5560e4a6a9b7..0fe16d4f40612c0abfa57898909ce0083f56944c 100644
--- a/index.js
+++ b/index.js
@@ -56,19 +56,23 @@ function getOptionsWithDefaults (options, manifest) {
async function spawnWithLogging (options, command, args, allowFail) {
return new Promise((resolve, reject) => {
logger(`$ ${command} ${args.join(' ')}`)
+ const output = []
const child = childProcess.spawn(command, args, { cwd: options['working-dir'] })
child.stdout.on('data', (data) => {
+ output.push(data)
logger(`1> ${data}`)
})
child.stderr.on('data', (data) => {
+ output.push(data)
logger(`2> ${data}`)
})
child.on('error', (error) => {
+ logger(`error - ${error.message} ${error.stack}`)
reject(error)
})
child.on('close', (code) => {
if (!allowFail && code !== 0) {
- reject(new Error(`${command} failed with status code ${code}`))
+ reject(new Error(`${command} ${args.join(' ')} failed with status code ${code} ${output.join(' ')}`))
}
resolve(code === 0)
})

View File

@ -1,17 +0,0 @@
diff --git a/package.json b/package.json
index 40db5dfbd8a4455ce2987d8115eca9882e1f9f14..414fc6986b9c0cc288908eb0107b90c4bfd916b2 100644
--- a/package.json
+++ b/package.json
@@ -25,11 +25,7 @@
},
"dependencies": {
"axios": "^1.6.2",
- "ws": "^8.15.1"
- },
- "optionalDependencies": {
- "bufferutil": "^4.0.8",
- "utf-8-validate": "^6.0.3"
+ "ws": "^8.16.0"
},
"devDependencies": {
"@types/node": "^14.*",

View File

@ -1,21 +0,0 @@
diff --git a/out/targets/snap.js b/out/targets/snap.js
index f72c36355d27cd2d69fc5fdf2d8bb2451db0287f..baae112fe25ebb49ab8e25aaa48efd6bc43b598f 100644
--- a/out/targets/snap.js
+++ b/out/targets/snap.js
@@ -212,14 +212,14 @@ class SnapTarget extends core_1.Target {
args.push("--template-url", `electron4:${snapArch}`);
}
await (0, builder_util_1.executeAppBuilder)(args);
- const publishConfig = findSnapPublishConfig(this.packager.config);
+
await packager.info.callArtifactBuildCompleted({
file: artifactPath,
safeArtifactName: packager.computeSafeArtifactName(artifactName, "snap", arch, false),
target: this,
arch,
packager,
- publishConfig: publishConfig == null ? { provider: "snapStore" } : publishConfig,
+ publishConfig: options.publish == null ? { provider: "snapStore" } : null,
});
}
isElectronVersionGreaterOrEqualThan(version) {

View File

@ -0,0 +1,27 @@
diff --git a/is.d.ts b/is.d.ts
index fb861f7b401914f0f89cb4edf25c51df5cb05812..82144733cd34d88e2deb2e4713b104418e673f2e 100644
--- a/is.d.ts
+++ b/is.d.ts
@@ -5,6 +5,7 @@ declare namespace is {
export function macOS(): boolean;
export function windows(): boolean;
export function linux(): boolean;
+ export function freebsd(): boolean;
export function x86(): boolean;
export function x64(): boolean;
export function production(): boolean;
diff --git a/is.js b/is.js
index a76bb1755a2728bde185b35d847031d3b8ea4ab0..f6b03406c17342f5af078de069e5bbbd2246e152 100644
--- a/is.js
+++ b/is.js
@@ -39,6 +39,10 @@ module.exports = {
linux: function () {
return process.platform === 'linux'
},
+ // Checks if we are under FreeBSD OS
+ freebsd: function () {
+ return process.platform === "freebsd"
+ },
// Checks if we are the processor's arch is x86
x86: function () {
return process.arch === 'ia32'

View File

@ -0,0 +1,14 @@
diff --git a/core.js b/core.js
index d653e66a4056c27cca777d4e25222acae3b2ec85..a91741d67df85fd9627889a6c7197ac4e6a3a813 100644
--- a/core.js
+++ b/core.js
@@ -1415,8 +1415,7 @@ async function _fromTokenizer(tokenizer) {
}
const stream = readableStream => new Promise((resolve, reject) => {
- // Using `eval` to work around issues when bundling with Webpack
- const stream = eval('require')('stream'); // eslint-disable-line no-eval
+ const stream = require('node:stream');
readableStream.on('error', reject);
readableStream.once('readable', async () => {

6738
patches/kuromoji@0.1.2.patch Normal file

File diff suppressed because it is too large Load Diff

40
patches/mdui@2.1.4.patch Normal file
View File

@ -0,0 +1,40 @@
diff --git a/jsx.en.d.ts b/jsx.en.d.ts
index 514d455dcdb436aaf7b2ee88deaefe01943c8b4b..48dff045dead4315936afd931336198996c88217 100644
--- a/jsx.en.d.ts
+++ b/jsx.en.d.ts
@@ -1,12 +1,8 @@
-import React from 'react';
import { JQ } from '@mdui/jq';
-type HTMLElementProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;
+type HTMLElementProps = import("solid-js").JSX.HTMLAttributes<HTMLElement>;
-declare global {
- namespace React {
- namespace JSX {
- interface IntrinsicElements {
+export interface IntrinsicElements {
/**
* Avatar Component
*
@@ -3296,7 +3292,4 @@ declare global {
*/
'order'?: number;
} & HTMLElementProps;
- }
- }
- }
}
diff --git a/package.json b/package.json
index 3fa3eeb471ce4c31d7ac1c9bcb2d6823947e91ca..c4b062020bf20b8db34ccfea500fa682a4af19a6 100644
--- a/package.json
+++ b/package.json
@@ -60,5 +60,8 @@
"tslib": "^2.8.1",
"@mdui/shared": "^1.0.8",
"@mdui/jq": "^3.0.3"
+ },
+ "peerDependencies": {
+ "solid-js": "^1.9.7"
}
}

8936
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base"
],
"extends": ["config:recommended"],
"labels": ["dependencies"],
"postUpdateOptions": ["pnpmDedupe"]
}

View File

@ -12,8 +12,8 @@ export interface DefaultConfig {
'window-size': WindowSizeConfig;
'window-maximized': boolean;
'window-position': WindowPositionConfig;
url: string;
options: {
'url': string;
'options': {
language?: string;
tray: boolean;
appVisible: boolean;
@ -31,14 +31,16 @@ export interface DefaultConfig {
likeButtons: string;
proxy: string;
startingPage: string;
backgroundMaterial?: 'none' | 'mica' | 'acrylic' | 'tabbed';
overrideUserAgent: boolean;
usePodcastParticipantAsArtist: boolean;
themes: string[];
customWindowTitle?: string;
};
plugins: Record<string, unknown>;
'plugins': Record<string, unknown>;
}
const defaultConfig: DefaultConfig = {
export const defaultConfig: DefaultConfig = {
'window-size': {
width: 1100,
height: 550,
@ -48,7 +50,7 @@ const defaultConfig: DefaultConfig = {
x: -1,
y: -1,
},
'url': 'https://music.youtube.com',
'url': 'https://music.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com',
'options': {
tray: false,
appVisible: true,
@ -72,5 +74,3 @@ const defaultConfig: DefaultConfig = {
},
'plugins': {},
};
export default defaultConfig;

View File

@ -1,31 +1,36 @@
import Store from 'electron-store';
import { deepmergeCustom } from 'deepmerge-ts';
import defaultConfig from './defaults';
import store from './store';
import plugins from './plugins';
import { store, type IStore } from './store';
import { restart } from '@/providers/app-controls';
import type { defaultConfig } from './defaults';
const deepmerge = deepmergeCustom({
mergeArrays: false,
});
const set = (key: string, value: unknown) => {
export { defaultConfig } from './defaults';
export * as plugins from './plugins';
export const set = (key: string, value: unknown) => {
store.set(key, value);
};
const setPartial = (key: string, value: object, defaultValue?: object) => {
export const setPartial = (
key: string,
value: object,
defaultValue?: object,
) => {
const newValue = deepmerge(defaultValue ?? {}, store.get(key) ?? {}, value);
store.set(key, newValue);
};
function setMenuOption(key: string, value: unknown) {
export const setMenuOption = (key: string, value: unknown) => {
set(key, value);
if (store.get('options.restartOnConfigChanges')) {
restart();
}
}
};
// MAGIC OF TYPESCRIPT
@ -62,32 +67,24 @@ type Join<K, P> = K extends string | number
type Paths<T, D extends number = 10> = [D] extends [never]
? never
: T extends object
? {
[K in keyof T]-?: K extends string | number
? `${K}` | Join<K, Paths<T[K], Prev[D]>>
: never;
}[keyof T]
: '';
? {
[K in keyof T]-?: K extends string | number
? `${K}` | Join<K, Paths<T[K], Prev[D]>>
: never;
}[keyof T]
: '';
type SplitKey<K> = K extends `${infer A}.${infer B}` ? [A, B] : [K, string];
type PathValue<T, K extends string> = SplitKey<K> extends [
infer A extends keyof T,
infer B extends string,
]
? PathValue<T[A], B>
: T;
const get = <Key extends Paths<typeof defaultConfig>>(key: Key) =>
type PathValue<T, K extends string> =
SplitKey<K> extends [infer A extends keyof T, infer B extends string]
? PathValue<T[A], B>
: T;
export const get = <Key extends Paths<typeof defaultConfig>>(key: Key) =>
store.get(key) as PathValue<typeof defaultConfig, typeof key>;
export default {
defaultConfig,
get,
set,
setPartial,
setMenuOption,
edit: () => store.openInEditor(),
watch(cb: Parameters<Store['onDidAnyChange']>[0]) {
store.onDidAnyChange(cb);
},
plugins,
export const edit = () => store.openInEditor();
export const watch = (cb: Parameters<IStore['onDidAnyChange']>[0]) => {
store.onDidAnyChange(cb);
};

View File

@ -1,7 +1,7 @@
import { deepmerge } from 'deepmerge-ts';
import { allPlugins } from 'virtual:plugins';
import store from './store';
import { store } from './store';
import { restart } from '@/providers/app-controls';
@ -11,9 +11,9 @@ export function getPlugins() {
return store.get('plugins') as Record<string, PluginConfig>;
}
export function isEnabled(plugin: string) {
export async function isEnabled(plugin: string) {
const pluginConfig = deepmerge(
allPlugins[plugin].config ?? { enabled: false },
(await allPlugins())[plugin]?.config ?? { enabled: false },
(store.get('plugins') as Record<string, PluginConfig>)[plugin] ?? {},
);
return pluginConfig !== undefined && pluginConfig.enabled;
@ -68,13 +68,3 @@ export function enable(plugin: string) {
export function disable(plugin: string) {
setMenuOptions(plugin, { enabled: false }, []);
}
export default {
isEnabled,
getPlugins,
enable,
disable,
setOptions,
setMenuOptions,
getOptions,
};

View File

@ -1,12 +1,43 @@
import Store from 'electron-store';
import Conf from 'conf';
import defaults from './defaults';
import { defaultConfig as defaults } from './defaults';
import { DefaultPresetList, type Preset } from '@/plugins/downloader/types';
import type { SyncedLyricsPluginConfig } from '@/plugins/synced-lyrics/types';
export type IStore = InstanceType<
typeof import('conf').default<Record<string, unknown>>
>;
const migrations = {
'>=3.3.0'(store: Conf<Record<string, unknown>>) {
'>=3.10.0'(store: IStore) {
const lyricGeniusConfig = store.get('plugins.lyrics-genius') as
| {
enabled?: boolean;
romanizedLyrics?: boolean;
}
| undefined;
if (lyricGeniusConfig) {
const syncedLyricsConfig = store.get('plugins.synced-lyrics') as
| SyncedLyricsPluginConfig
| undefined;
if (
!syncedLyricsConfig ||
syncedLyricsConfig?.enabled !== lyricGeniusConfig?.enabled
) {
store.set('plugins.synced-lyrics', {
...syncedLyricsConfig,
enabled: lyricGeniusConfig.enabled,
});
}
store.delete('plugins.lyrics-genius');
}
},
'>=3.3.0'(store: IStore) {
const lastfmConfig = store.get('plugins.lastfm') as {
enabled?: boolean;
token?: string;
@ -16,21 +47,21 @@ const migrations = {
secret?: string;
};
if (lastfmConfig) {
let scrobblerConfig = store.get(
'plugins.scrobbler',
) as {
enabled?: boolean;
scrobblers?: {
lastfm?: {
let scrobblerConfig = store.get('plugins.scrobbler') as
| {
enabled?: boolean;
token?: string;
sessionKey?: string;
apiRoot?: string;
apiKey?: string;
secret?: string;
};
};
} | undefined;
scrobblers?: {
lastfm?: {
enabled?: boolean;
token?: string;
sessionKey?: string;
apiRoot?: string;
apiKey?: string;
secret?: string;
};
};
}
| undefined;
if (!scrobblerConfig) {
scrobblerConfig = {
@ -56,7 +87,7 @@ const migrations = {
store.delete('plugins.lastfm');
}
},
'>=3.0.0'(store: Conf<Record<string, unknown>>) {
'>=3.0.0'(store: IStore) {
const discordConfig = store.get('plugins.discord') as Record<
string,
unknown
@ -78,14 +109,17 @@ const migrations = {
}
}
},
'>=2.1.3'(store: Conf<Record<string, unknown>>) {
'>=2.1.3'(store: IStore) {
const listenAlong = store.get('plugins.discord.listenAlong');
if (listenAlong !== undefined) {
store.set('plugins.discord.playOnYouTubeMusic', listenAlong);
store.set(
'plugins.discord.playOn\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u004d\u0075\u0073\u0069\u0063',
listenAlong,
);
store.delete('plugins.discord.listenAlong');
}
},
'>=2.1.0'(store: Conf<Record<string, unknown>>) {
'>=2.1.0'(store: IStore) {
const originalPreset = store.get('plugins.downloader.preset') as
| string
| undefined;
@ -110,7 +144,7 @@ const migrations = {
store.delete('plugins.downloader.ffmpegArgs');
}
},
'>=1.20.0'(store: Conf<Record<string, unknown>>) {
'>=1.20.0'(store: IStore) {
store.delete('plugins.visualizer'); // default value is now in the plugin
if (store.get('plugins.notifications.toastStyle') === undefined) {
@ -125,14 +159,14 @@ const migrations = {
store.set('options.likeButtons', 'force');
}
},
'>=1.17.0'(store: Conf<Record<string, unknown>>) {
'>=1.17.0'(store: IStore) {
store.delete('plugins.picture-in-picture'); // default value is now in the plugin
if (store.get('plugins.video-toggle.mode') === undefined) {
store.set('plugins.video-toggle.mode', 'custom');
}
},
'>=1.14.0'(store: Conf<Record<string, unknown>>) {
'>=1.14.0'(store: IStore) {
if (
typeof store.get('plugins.precise-volume.globalShortcuts') !== 'object'
) {
@ -144,12 +178,12 @@ const migrations = {
store.set('plugins.video-toggle.enabled', true);
}
},
'>=1.13.0'(store: Conf<Record<string, unknown>>) {
'>=1.13.0'(store: IStore) {
if (store.get('plugins.discord.listenAlong') === undefined) {
store.set('plugins.discord.listenAlong', true);
}
},
'>=1.12.0'(store: Conf<Record<string, unknown>>) {
'>=1.12.0'(store: IStore) {
const options = store.get('plugins.shortcuts') as
| Record<
string,
@ -187,12 +221,12 @@ const migrations = {
}
}
},
'>=1.11.0'(store: Conf<Record<string, unknown>>) {
'>=1.11.0'(store: IStore) {
if (store.get('options.resumeOnStart') === undefined) {
store.set('options.resumeOnStart', true);
}
},
'>=1.7.0'(store: Conf<Record<string, unknown>>) {
'>=1.7.0'(store: IStore) {
const enabledPlugins = store.get('plugins') as string[];
if (!Array.isArray(enabledPlugins)) {
console.warn('Plugins are not in array format, cannot migrate');
@ -226,11 +260,11 @@ const migrations = {
},
};
export default new Store({
export const store = new Store({
defaults: {
...defaults,
// README: 'plugin' uses deepmerge to populate the default values, so it is not necessary to include it here
},
clearInvalidConfig: false,
migrations,
});
}) as Store & IStore;

View File

@ -1,5 +1,5 @@
declare module 'custom-electron-prompt' {
import { BrowserWindow } from 'electron';
import { type BrowserWindow } from 'electron';
export type SelectOptions = Record<string, string>;
@ -64,29 +64,29 @@ declare module 'custom-electron-prompt' {
export type PromptOptions<T extends string> = T extends 'input'
? InputPromptOptions
: T extends 'select'
? SelectPromptOptions
: T extends 'counter'
? CounterPromptOptions
: T extends 'keybind'
? KeybindPromptOptions
: T extends 'multiInput'
? MultiInputPromptOptions
: never;
? SelectPromptOptions
: T extends 'counter'
? CounterPromptOptions
: T extends 'keybind'
? KeybindPromptOptions
: T extends 'multiInput'
? MultiInputPromptOptions
: never;
type PromptResult<T extends string> = T extends 'input'
? string
: T extends 'select'
? string
: T extends 'counter'
? number
: T extends 'keybind'
? {
value: string;
accelerator: string;
}[]
: T extends 'multiInput'
? string[]
: never;
? string
: T extends 'counter'
? number
: T extends 'keybind'
? {
value: string;
accelerator: string;
}[]
: T extends 'multiInput'
? string[]
: never;
const prompt: <T extends Type>(
options?: PromptOptions<T> & { type: T },

View File

@ -2,9 +2,12 @@ import i18next, { init, t as i18t, changeLanguage } from 'i18next';
import { languageResources } from 'virtual:i18n';
export const APPLICATION_NAME =
'\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063';
export const loadI18n = async () =>
await init({
resources: languageResources,
resources: await languageResources(),
lng: 'en',
fallbackLng: 'en',
interpolation: {

View File

@ -2,9 +2,9 @@ export interface LanguageResources {
[lang: string]: {
translation: Record<string, unknown> & {
language?: {
name: string;
'name': string;
'local-name': string;
code: string;
'code': string;
};
};
};

950
src/i18n/resources/ar.json Normal file
View File

@ -0,0 +1,950 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "فشل بدأ الاضافة {{pluginName}}::{{contextName}}",
"executed-at-ms": "تم بدأ الاضافة {{pluginName}}::{{contextName}} خلال {{ms}} جزء من الثانية",
"initialize-failed": "فشل تشغيل الاضافة \"{{pluginName}}\"",
"load-all": "جار تحميل جميع الاضافات",
"load-failed": "فشل في تحميل الاضافة \"{{pluginName}}\"",
"loaded": "تم تحميل الاضافة \"{{pluginName}}\"",
"unload-failed": "فشل ازالة الاضافة \"{{pluginName}}\"",
"unloaded": "تم ازالة الاضافة \"{{pluginName}}\""
}
}
},
"language": {
"code": "ar",
"local-name": "العربية",
"name": "Arabic"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "انتهى التحميل, تم فتح قائمة المطور"
},
"i18n": {
"loaded": "تم تحميل i18n"
},
"second-instance": {
"receive-command": "تم الحصول على أمر عن طريق: \"{{command}}\""
},
"theme": {
"css-file-not-found": "ملف \"{{cssFile}}\" غير متواجد، سيتم التجاهل"
},
"unresponsive": {
"details": "خطء عدم استجابة!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "ازالة ذاكرة التخزين المؤقت للتطبيق"
},
"window": {
"tried-to-render-offscreen": "تم محاولة فتح الصفحة خارج الشاشة, حجم الصفحة={{windowSize}}, حجم النافذة={{displaySize}}, المكان={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "تم اخفاء القائمة, استخدم 'Alt' لاظهار القائمة (أو 'Escape' اذا كنت تستخدم القائمة التي داخل التطبيق)",
"message": "اخفاء القائمة مفعل",
"title": "تم تفعيل اخفاء القائمة"
},
"need-to-restart": {
"buttons": {
"later": "لاحقاً",
"restart-now": "اعادة التشغيل الأن"
},
"detail": "\"{{pluginName}}\" هذه الاضافة تتطلب اعادة التشغيل ليتم تفعيلها",
"message": "\"{{pluginName}}\" بحاجة الى اعادة التشغيل",
"title": "مطلوب اعادة التشغيل"
},
"unresponsive": {
"buttons": {
"quit": "خروج",
"relaunch": "اعادة التشغيل",
"wait": "انتظار"
},
"detail": "نأسف على الإزعاج! يرجى اختيار ما يجب القيام به:",
"message": "التطبيق لا يستجيب",
"title": "النافذة لا تستجيب"
},
"update-available": {
"buttons": {
"disable": "ايقاف التحديثات",
"download": "تنزيل",
"ok": "حسنا"
},
"detail": "يوجد نسخة جديدة يمكن تنزيلها من {{downloadLink}}",
"message": "يوجد نسخة جديدة",
"title": "يوجد تحديث"
}
},
"menu": {
"about": "عنا",
"navigation": {
"label": "شريط التنقل",
"submenu": {
"copy-current-url": "نسخ الرابط الحالي",
"go-back": "عودة",
"go-forward": "تقدم",
"quit": "الخروج",
"restart": "اعادة تشغيل التطبيق"
}
},
"options": {
"label": "الاعدادات",
"submenu": {
"advanced-options": {
"label": "الاعدادات المتقدمة",
"submenu": {
"auto-reset-app-cache": "إعادة ضبط ذاكرة التخزين المؤقت للتطبيق عند بدء التشغيل",
"disable-hardware-acceleration": "اطفاء تسريع الأجهزة",
"edit-config-json": "تعديل ملف الاعدادات",
"override-user-agent": "تجاوز وكيل المستخدم",
"restart-on-config-changes": "اعادة التشغيل بعد تعديل الاعدادات",
"set-proxy": {
"label": "تعيين الوكيل",
"prompt": {
"label": "أدخل عنوان الوكيل: (اتركه فارغًا لإطفائه)",
"placeholder": "مثال: SOCKS5://127.0.0.1:9999",
"title": "ضع proxy"
}
},
"toggle-dev-tools": "تثبيت أدوات التطوير"
}
},
"always-on-top": "دائما في المقدمة",
"auto-update": "تحديث تلقائي",
"hide-menu": {
"dialog": {
"message": "سيتم إخفاء القائمة عند التشغيل التالي، استخدم [Alt] لإظهارها (أو اضغط [`] في حالة استخدام القائمة التي داخل التطبيق)",
"title": "إخفاء القائمة مفعل"
},
"label": "إخفاء القائمة"
},
"language": {
"dialog": {
"message": "سيتم تغيير اللغة بعد اعادة التشغيل",
"title": "تم تغير اللغة"
},
"label": "اللغة",
"submenu": {
"to-help-translate": "تريد المساعدة في الترجمة؟ اضغط هنا"
}
},
"resume-on-start": "استأنف الأغنية الأخيرة عند بدأ التشغيل",
"single-instance-lock": "قفل مثيل واحد",
"start-at-login": "‎ابدأ عند تسجيل الدخول",
"starting-page": {
"label": "صفحة البداية",
"unset": "عدم تعيين"
},
"tray": {
"label": "قائمة",
"submenu": {
"disabled": "غير مفعل",
"enabled-and-hide-app": "مفعل وإخفاء التطبيق",
"enabled-and-show-app": "مفعل وأظهر التطبيق",
"play-pause-on-click": "تشغيل/إيقاف عند النقر"
}
},
"visual-tweaks": {
"label": "تعديلات المظهر",
"submenu": {
"custom-window-title": {
"label": "عنوان نافذة مخصص",
"prompt": {
"label": "ادخل عنوان مخصص للنافذة: (اتركه فارغًا إلغاء التفعيل)",
"placeholder": "مثال: {{applicationName}}"
}
},
"like-buttons": {
"default": "الافتراضي",
"force-show": "اجبار الظهور",
"hide": "اخفاء",
"label": "أزرار الاعجاب"
},
"remove-upgrade-button": "ازالة زر التطوير",
"theme": {
"dialog": {
"button": {
"cancel": "إلغاء",
"remove": "ازالة"
},
"remove-theme": "هل أنت متأكد أنك تريد إزالة السمة المخصصة؟",
"remove-theme-message": "سيؤدي هذا إلى إزالة السمة المخصصة"
},
"label": "السمة",
"submenu": {
"import-css-file": "استيراد ملف CSS مخصص",
"no-theme": "بدون سمة"
}
}
}
}
}
},
"plugins": {
"enabled": "مفعل",
"label": "الاضافات",
"new": "جديد"
},
"view": {
"label": "اظهار",
"submenu": {
"force-reload": "اجبار اعادة التحميل",
"reload": "اعادة التحميل",
"reset-zoom": "الحجم الحقيقي",
"toggle-fullscreen": "ملء الشاشة",
"zoom-in": "تكبير",
"zoom-out": "تصغير"
}
}
},
"tray": {
"next": "التالي",
"play-pause": "تشغيل/إيقاف",
"previous": "السابق",
"quit": "خروج",
"restart": "إعادة تشغيل التطبيق",
"show": "عرض النافدة",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "إذا تم عرض إعلان, فإن الصوت سيتم كتمانه وسيتم وضع سرعة التشغيل الى 16x",
"name": "تسريع الإعلان"
},
"adblocker": {
"description": "حجب جميع الإعلانات والمتتبعات جاهز للأستخدام",
"menu": {
"blocker": "حاجب الإعلانات"
},
"name": "حاجب الإعلانات"
},
"album-actions": {
"description": "يضيف أزرار \"إلغاء عدم الاعجاب\" و\"عدم الاعجاب\" و\"الإعجاب\" و\"إلغاء الإعجاب\" لتطبيق ذلك على جميع الأغاني في قائمة تشغيل أو ألبوم",
"name": "إجراءات الألبوم"
},
"album-color-theme": {
"description": "يطبق ثيمًا ديناميكيًا وتأثيرات بصرية بناء على ألوان الألبوم",
"menu": {
"color-mix-ratio": {
"label": "‬نسبة قوة مزيج الألوان",
"submenu": {
"percent": "{{ratio}}٪"
}
}
},
"name": "سمة ألوان الألبوم"
},
"ambient-mode": {
"description": "يطبق تأثير إضاءة عن طريق إسقاط ألوان ناعمة من الفيديو على خلفية شاشتك",
"menu": {
"blur-amount": {
"label": "مقدار الطمس",
"submenu": {
"pixels": "{{blurAmount}} بكسل"
}
},
"buffer": {
"label": "تخزين الصوت المؤقت",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "الشفافية",
"submenu": {
"percent": "{{opacity}}٪"
}
},
"quality": {
"label": "الجودة",
"submenu": {
"pixels": "{{quality}} بكسل"
}
},
"size": {
"label": "الحجم",
"submenu": {
"percent": "{{size}}٪"
}
},
"smoothness-transition": {
"label": "انتقال السلاسة",
"submenu": {
"during": "خلال {{interpolationTime}} ثانيه"
}
},
"use-fullscreen": {
"label": "استخدام شاشه كامله"
}
},
"name": "الوضع المحيطي"
},
"amuse": {
"description": "تكامل دعم {{applicationName}} مع ويدجت Amuse لعرض الأغنية التي قيد التشغيل، من إنتاج 6K Labs",
"name": "تلسيه",
"response": {
"query": "خادم Amuse API قيد التشغيل. استخدم GET /query للحصول على معلومات الأغنية."
}
},
"api-server": {
"description": "يضيف API للتحكم في المشغل",
"dialog": {
"request": {
"buttons": {
"allow": "سماح",
"deny": "رفض"
},
"message": "السماح لـ {{ID}} ({{origin}}) بالوصول إلى الAPI؟",
"title": "طلب السماح بالوصول إلى الAPI"
}
},
"menu": {
"auth-strategy": {
"label": "استراتيجية التفويض",
"submenu": {
"auth-at-first": {
"label": "التفويض عند الطلب الأول"
},
"none": {
"label": "بدون تفويض"
}
}
},
"hostname": {
"label": "اسم المضيف"
},
"port": {
"label": "المنفذ"
}
},
"name": "خادم API [تجريبي]",
"prompt": {
"hostname": {
"label": "أدخل اسم المضيف (مثل 0.0.0.0) لخادم API:",
"title": "اسم الخادم"
},
"port": {
"label": "أدخل المنفذ لخادم API:",
"title": "منفذ"
}
}
},
"audio-compressor": {
"description": "تطبيق الضغط على الصوت (يخفض مستوى صوت الأجزاء الأعلى من الإشارة ويرفع مستوى صوت الأجزاء الأكثر نعومة)",
"name": "ضاغط الصوت"
},
"auth-proxy-adapter": {
"description": "دعم استخدام خدمات proxy للإثبات",
"menu": {
"disable": "تعطيل مكيف الوكيل",
"enable": "تفعيل مكيف proxy للصداقة",
"hostname": {
"label": "إسم المستضيف"
},
"port": {
"label": "المدخل"
}
},
"name": "مكيّف proxy للمصادقة",
"prompt": {
"hostname": {
"label": "أدخل اسم المستضيف لخادم proxy المحلي (يتطلب إعادة التشغيل):",
"title": "إسم مستضيف proxy"
},
"port": {
"label": "أدخل مدخلًا لخادم proxy المحلي (يتطلب إعادة التشغيل):",
"title": "مدخل proxy"
}
}
},
"blur-nav-bar": {
"description": "يجعل شريط التنقل شفاف و مطموس",
"name": "طمس شريط التنقل"
},
"bypass-age-restrictions": {
"description": "تجاوز تَحَقّق مشغل الموسيقى من السن",
"name": "تجاوز التحقق من السن"
},
"captions-selector": {
"description": "محدد ترجمات المقاطع الصوتية ل{{applicationName}}",
"menu": {
"autoload": "اختار اخر ترجمة مستخدمة تلقائيا",
"disable-captions": "لا توجد ترجمات بشكل افتراضي"
},
"name": "محدد الترجمة",
"prompt": {
"selector": {
"label": "لغة الترجمة الحالية: {{language}}",
"none": "لا شيء",
"title": "اختار لغة الترجمة"
}
},
"templates": {
"title": "فتح محدد الترجمة"
},
"toast": {
"caption-changed": "تم تغيير الترجمة الى {{language}}",
"caption-disabled": "الترجمة غير مفعلة",
"no-captions": "الترجمة لهاته الأغنية غير متاحة"
}
},
"compact-sidebar": {
"description": "قم دائمًا بتعيين الشريط الجانبي في الوضع الملموم",
"name": "شريط جانبي ملموم"
},
"crossfade": {
"description": "التداخل بين الأغاني",
"menu": {
"advanced": "متقدم"
},
"name": "التداخل بين الأغاني [تجريبي]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "مدة التداخل (بأجزاء الثانية)",
"fade-out-duration": "مدة التلاشي (بأجزاء الثانية)",
"fade-scaling": {
"label": "توسيع التداخل",
"linear": "خطي",
"logarithmic": "لوغاريتمي"
},
"seconds-before-end": "التداخل قبل النهاية بـ N ثوانٍ"
},
"title": "خيارات التداخل"
}
}
},
"custom-output-device": {
"description": "ضبط مخرج جهاز وسائط مخصص للأغاني",
"menu": {
"device-selector": "اختر جهاز"
},
"name": "جهاز اخراج مخصص",
"prompt": {
"device-selector": {
"label": "اختر جهاز الوسائط الذي سيتم استخدامه للاخراج",
"title": "اختر الجهاز الإخراج"
}
}
},
"disable-autoplay": {
"description": "يجعل الأغنية تبدأ في وضع \"الإيقاف\"",
"menu": {
"apply-once": "ينطبق فقط عند بدء التشغيل"
},
"name": "تعطيل التشغيل التلقائي"
},
"discord": {
"backend": {
"already-connected": "تمت محاولة الاتصال بالاتصال النشط",
"connected": "متصل بDiscord",
"disconnected": "انقطع الاتصال بDiscord"
},
"description": "أظهر لأصدقائك ما تستمع إليه من خلال Rich Presence",
"menu": {
"auto-reconnect": "إعادة اتصال تلقائي",
"clear-activity": "مسح النشاط",
"clear-activity-after-timeout": "مسح النشاط بعد انتهاء المهلة",
"connected": "متصل",
"disconnected": "غير متصل",
"hide-duration-left": "إخفاء المدة المتبقية",
"hide-github-button": "إخفاء زر رابط GitHub",
"play-on-application": "شغل في {{applicationName}}",
"set-inactivity-timeout": "ضبط مهلة عدم النشاط",
"set-status-display-type": {
"label": "نص الحالة",
"submenu": {
"artist": "جار السمع ل{artist}",
"application": "جار السمع ل{{applicationName}}",
"title": "جار السمع ل{song title}"
}
}
},
"name": "Discord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "أدخل مهلة عدم النشاط بالثواني:",
"title": "ضبط مهلة عدم النشاط"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "حسنا"
},
"message": "اه! نعتذر، فشل التنزيل…",
"title": "خطأ في التنزيل!"
},
"start-download-playlist": {
"buttons": {
"ok": "حسنا"
},
"detail": "({{playlistSize}} أغنية)",
"message": "تنزيل القائمة {{playlistTitle}}",
"title": "تم بدأ التنزيل"
}
},
"feedback": {
"conversion-progress": "التحويل: {{percent}}٪",
"converting": "جارٍ التحويل…",
"done": "تم: {{filePath}}",
"download-info": "تنزيل {{artist}} - {{title}} {{videoId}}",
"download-progress": "تنزيل: {{percent}}٪",
"downloading": "جار التنزيل…",
"downloading-counter": "جار التنزيل {{current}}/{{total}}…",
"downloading-playlist": "جار تنزيل القائمة \"{{playlistTitle}}\" - {{playlistSize}} أغاني ({{playlistId}})",
"error-while-downloading": "خطأ في تنزيل \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "الملف {{playlistFolder}} موجود بالفعل",
"getting-playlist-info": "جار الحصول على معلومات القائمة…",
"loading": "جارِ التنزيل…",
"playlist-has-only-one-song": "تحتوي قائمة التشغيل على عنصر واحد فقط، جار تنزيله الأن",
"playlist-id-not-found": "لم يتم العثور على معرف قائمة التشغيل",
"playlist-is-empty": "قائمة التشغيل فارغة",
"playlist-is-mix-or-private": "حدث خطأ أثناء الحصول على معلومات قائمة التشغيل: تأكد من أنها ليست قائمة تشغيل خاصة أو قائمة تشغيل \"مختلطة لك\"\n\n{{error}}",
"preparing-file": "جار تجهيز الملف…",
"saving": "جار الحفظ…",
"trying-to-get-playlist-id": "جار محاولة الحصول على معرف قائمة التشغيل: {{playlistId}}",
"video-id-not-found": "لم يتم ايجاد الفيديو",
"writing-id3": "جار كتابة علامات ID3…"
}
},
"description": "يقوم بتنزيل ملفات MP3/مصدر الصوت مباشرة من الواجهة",
"menu": {
"choose-download-folder": "اختر مكان التنزيل",
"download-finish-settings": {
"label": "تنزيل عند الانتهاء",
"prompt": {
"last-percent": "بعد x بالمئة",
"last-seconds": "آخر x ثانية",
"title": "تكوين وقت التنزيل"
},
"submenu": {
"advanced": "متقدم",
"enabled": "مفعل",
"mode": "وضع الوقت",
"percent": "نسبة",
"seconds": "ثواني"
}
},
"download-playlist": "تنزيل قائمة التشغيل",
"presets": "الإعدادات المسبقة",
"skip-existing": "تخطي الملفات الموجودة بالفعل"
},
"name": "أداة التنزيل",
"renderer": {
"can-not-update-progress": "لا يمكن تحديث التقدم"
},
"templates": {
"button": "تنزيل"
}
},
"equalizer": {
"description": "يضيف معادل صوتي للمشغل",
"menu": {
"presets": {
"label": "إعدادات مسبقة",
"list": {
"bass-booster": "مزود البيس"
}
}
},
"name": "معادل صوتي"
},
"exponential-volume": {
"description": "يجعل شريط تمرير مستوى الصوت أسيًا بحيث يسهل تحديد مستويات الصوت الأقل.",
"name": "الصوت الأسي"
},
"in-app-menu": {
"description": "يعطي أشرطة القوائم مظهرًا أنيقًا و داكنًا أو بلون الألبوم",
"menu": {
"hide-dom-window-controls": "إخفاء عناصر التحكم في نافذة DOM"
},
"name": "قائمة التي داخل التطبيق"
},
"lumiastream": {
"description": "يضيف دعم Lumia Stream",
"name": "Lumia Stream [تجريبي]"
},
"lyrics-genius": {
"description": "يضيف دعم الكلمات لمعظم الأغاني",
"menu": {
"romanized-lyrics": "كلمات مكتوبة بحروف رومانية"
},
"name": "كلمات الأغاني من Genius",
"renderer": {
"fetched-lyrics": "تم جلب الكلمات من Genius"
}
},
"music-together": {
"description": "مشاركة قائمة تشغيل مع الآخرين. عندما يقوم المضيف بتشغيل أغنية، سيسمع الجميع نفس الأغنية",
"dialog": {
"enter-host": "أدخل معرف المضيف"
},
"internal": {
"save": "حفظ",
"track-source": "تتبع مصدر الاغنية",
"unknown-user": "مستخدم مجهول"
},
"menu": {
"click-to-copy-id": "نسخ معرف المستضيف",
"close": "إغلاق الموسيقى معًا",
"connected-users": "المستخدمون المتصلون",
"disconnect": "قطع اتصال من الموسيقى معًا",
"empty-user": "لا يوجد مستعملون متصلون",
"host": "مضيف الموسيقى معًا",
"join": "الانضمام إلى الموسيقى معا",
"permission": {
"all": "السماح للضيوف بالتحكم في قائمة التشغيل والمشغل",
"host-only": "فقط المضيف يستطيع التحكم بالقائمة و المشغل",
"playlist": "السماح للضيوف بالتحكم بقائمة التشغيل"
},
"set-permission": "تغيير إذن التحكم",
"status": {
"disconnected": "غير متصل",
"guest": "متصل كضيف",
"host": "متصل كمضيف"
}
},
"name": "الموسيقى معا [تجريبي]",
"toast": {
"add-song-failed": "فشل في إضافة أغنية",
"closed": "تم إغلاق الموسيقى معا",
"disconnected": "تم قطع اتصال الموسيقى معًا",
"host-failed": "فشل في استضافة الموسيقى معا",
"id-copied": "تم نسخ معرف المضيف",
"id-copy-failed": "فشل نسخ معرف المضيف",
"join-failed": "فشل الانضمام إلى الموسيقى معا",
"joined": "تم الانضمام إلى الموسيقى معا",
"permission-changed": "تم تغيير إذن الموسيقى معًا إلى \"{{permission}}\"",
"remove-song-failed": "فشل في إزالة الأغنية",
"user-connected": "{{name}} انضم إلى الموسيقى معًا",
"user-disconnected": "{{name}} غادر الموسيقى معًا"
}
},
"navigation": {
"description": "أسهم التنقل \"التالي/السابق\" مدمجة مباشرة في الواجهة، كما في متصفحك المفضل",
"name": "التنقل",
"templates": {
"back": {
"title": "العودة إلى الصفحة السابقة"
},
"forward": {
"title": "إذهب إلى الصفحة المقبلة"
}
}
},
"no-google-login": {
"description": "إزالة أزرار وروابط تسجيل الدخول بجوجل من الواجهة",
"name": "لا يوجد تسجيل دخول بجوجل"
},
"notifications": {
"description": "عرض إشعار عندما تبدأ الأغنية (الإشعارات التفاعلية متوفرة على ويندوز)",
"menu": {
"interactive": "إشعارات تفاعلية",
"interactive-settings": {
"label": "إعدادات تفاعلية",
"submenu": {
"hide-button-text": "إخفاء نص الزر",
"refresh-on-play-pause": "اعادة تحميل عند التشغيل/الإيقاف",
"tray-controls": "فتح/إغلاق عند النقر على علامة الشريط"
}
},
"priority": "أولوية الإشعار",
"toast-style": "تنسيق النخب",
"unpause-notification": "إظهار إشعار عند استئناف التشغيل"
},
"name": "الإشعارات"
},
"performance-improvement": {
"description": "تحسين الأداء عبر تفعيل السكربتات التجريبية",
"name": "تحسين الأداء [تجريبي]"
},
"picture-in-picture": {
"description": "يسمح بتحويل التطبيق إلى وضع الصورة داخل الصورة",
"menu": {
"always-on-top": "دائمًا في المقدمة",
"hotkey": {
"label": "مفتاح اختصار",
"prompt": {
"keybind-options": {
"hotkey": "مفتاح اختصار"
},
"label": "اختر مفتاح اختصار لتبديل وضع الصورة داخل الصورة",
"title": "مفتاح اختصار الصورة داخل الصورة"
}
},
"save-window-position": "حفظ موقع النافذة",
"save-window-size": "حفظ حجم النافذة",
"use-native-pip": "استخدام وضع الصورة داخل الصورة الأصلي للمتصفح"
},
"name": "وضع الصورة داخل الصورة",
"templates": {
"button": "وضع الصورة داخل الصورة"
}
},
"playback-speed": {
"description": "استمع بسرعة، استمع ببطء! يضيف شريط تمرير يتحكم في سرعة الأغنية",
"name": "سرعة التشغيل",
"templates": {
"button": "السرعة"
}
},
"precise-volume": {
"description": "التحكم في مستوى الصوت بدقة باستخدام عجلة الفأرة/مفاتيح الاختصار، مع واجهة مستخدم مخصصة وخطوات صوتية قابلة للتخصيص",
"menu": {
"arrows-shortcuts": "عناصر التحكم بأسهم المفاتيح",
"custom-volume-steps": "تعيين خطوات صوتية خاصة",
"global-shortcuts": "مفاتيح اختصار عام"
},
"name": "مستوى صوت دقيق",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "تقليل مستوى الصوت",
"increase": "زيادة مستوى الصوت"
},
"label": "اختر اختصارات لوحة المفاتيح للتحكم بمستوى الصوت:",
"title": "اختصارات لوحة المفاتيح للتحكم بمستوى الصوت"
},
"volume-steps": {
"label": "اختر خطوات زيادة/تقليل مستوى الصوت",
"title": "خطوات زيادة الصوت"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "الجودة الحالية: {{quality}}",
"message": "اختر جودة الفيديو:",
"title": "اختر جودة الفيديو"
}
}
},
"description": "يسمح بتغيير جودة الفيديو باستخدام زر على صورة الفيديو",
"name": "مغير جودة الفيديو",
"renderer": {
"quality-settings-button": {
"label": "إفتح مغير الجودة"
}
}
},
"scrobbler": {
"description": "إضافة دعم Scrobbling (مثل Last.fm، ListenBrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "فشل التفويض مع Last.fm\nإخفاء النافذة المصغرة حتى إعادة التشغيل التالية.",
"title": "فشل التفويض"
}
}
},
"menu": {
"lastfm": {
"api-settings": "إعدادات Last.fm API"
},
"listenbrainz": {
"token": "أدخل رمز مستخدم ListenBrainz"
},
"scrobble-alternative-artist": "استخدم فنانين بديلين",
"scrobble-alternative-title": "استخدم عناوين بديلة",
"scrobble-other-media": "Scrobble الوسائط الأخرى"
},
"name": "أداة تتبع الاستماع",
"prompt": {
"lastfm": {
"api-key": "مفتاح Last.fm API",
"api-secret": "الرمز السري لـ Last.fm API"
},
"listenbrainz": {
"token": {
"label": "أدخل رمز مستخدم ListenBrainz الخاص بك:",
"title": "رمز ListenBrainz"
}
}
}
},
"shortcuts": {
"description": "يسمح بضبط اختصارات لوحة المفاتيح للتحكم في التشغيل (تشغيل/إيقاف/التالي/السابق) وإيقاف تشغيل OSD الوسائط عن طريق تجاوز مفاتيح الوسائط، وتشغيل Ctrl/CMD + F للبحث، وتفعيل دعم Linux MPRIS لمفاتيح الوسائط، واختصارات مخصصة للمستخدمين المتقدمين",
"menu": {
"override-media-keys": "تجاوز مفاتيح الوسائط",
"set-keybinds": "تعيين عناصر التحكم بالأغاني"
},
"name": "الاختصارات (و MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "التالي",
"play-pause": "تشغيل/ إيقاف",
"previous": "السابق"
},
"label": "اختر اختصارات لوحة المفاتيح للتحكم في الأغاني:",
"title": "اختصارات لوحة المفاتيح"
}
}
},
"skip-disliked-songs": {
"description": "يتخطى الأغاني الغير معجب فيها",
"name": "تخطي الأغاني الغير معجب فيها"
},
"skip-silences": {
"description": "تخطي أقسام التي ليس لها صوت تلقائيًا في الأغاني",
"name": "تخطي الفترات التي ليس لها صوت"
},
"sponsorblock": {
"description": "تخطي تلقائيًا الأجزاء غير الموسيقية مثل المقدمة/الختام أو أجزاء مقاطع الفيديو الموسيقية حيث لا يتم تشغيل الأغنية",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "يوفر كلمات الأغاني المتزامنة باستخدام مزودين مثل LRClib.",
"errors": {
"fetch": "⚠️ حدث خطأ أثناء جلب كلمات الأغنية.\nيرجى المحاولة مرة أخرى لاحقًا.",
"not-found": "⚠️ لم يتم العثور على كلمات لهذه الأغنية."
},
"menu": {
"default-text-string": {
"label": "المسافة الافتراضية بين كلمات الأغاني",
"tooltip": "اختر الحرف الافتراضي لاستخدامه في الفجوة بين كلمات الأغنية"
},
"line-effect": {
"label": "تأثير الخط",
"submenu": {
"fancy": {
"label": "فاخر",
"tooltip": "استخدم تأثيرات كبيرة تشبه التطبيقات على السطر الحالي"
},
"focus": {
"label": "تركيز",
"tooltip": "اجعل السطر الحالي فقط باللون الأبيض"
},
"offset": {
"label": "مزاح",
"tooltip": "مزاح الى يمين السطر الحالي"
},
"scale": {
"label": "تحجيم",
"tooltip": "حجم السطر الحالي"
}
},
"tooltip": "اختر التأثير لتطبيقه على السطر الحالي"
},
"precise-timing": {
"label": "اجعل كلمات الأغنية متزامنة بشكل مثالي",
"tooltip": "احسب بدقة الملي ثانية عرض السطر التالي (قد يكون له تأثير صغير على الأداء)"
},
"preferred-provider": {
"label": "المزود المفضل",
"none": {
"label": "لا شيء",
"tooltip": "لا يوجد مزود مفضل"
},
"tooltip": "اختر المزود المفضل للإستخدام"
},
"romanization": {
"label": "اجعل الكلمات رومانية",
"tooltip": "إذا كانت كلمات الأغنية بلغة مختلفة، حاول عرض نسخة بالحروف اللاتينية."
},
"show-lyrics-even-if-inexact": {
"label": "أظهر كلمات الأغنية حتى لو كانت غير دقيقة",
"tooltip": "إذا لم يتم العثور على الأغنية، سوف يتم البحث مرة أخرى باستخدام استعلام بحث مختلف.\nقد لا تكون النتيجة من المحاولة الثانية دقيقة."
},
"show-time-codes": {
"label": "أظهر الرموز الزمنية",
"tooltip": "أظهر الرموز الزمنية بجانب كلمات الأغنية"
}
},
"name": "كلمات متزامنة",
"refetch-btn": {
"fetching": "جارٍ الجلب...",
"normal": "إعادة جلب كلمات الأغنية"
},
"warnings": {
"duration-mismatch": "⚠️ - قد تكون الكلمات غير متزامنة بسبب عدم تطابق المدة.",
"inexact": "⚠️ - قد لا تكون كلمات هذه الأغنية دقيقة",
"instrumental": "⚠️ - هذه أغنية آلية (بدون كلمات)"
}
},
"taskbar-mediacontrol": {
"description": "التحكم في المشغل من شريط مهام ويندوز",
"name": "التحكم بالوسائط من شريط المهام"
},
"touchbar": {
"description": "يضيف أداة TouchBar لمستخدمي macOS",
"name": "شريط اللمس (TouchBar)"
},
"transparent-player": {
"description": "يجعل نافذة التطبيق شفافة",
"menu": {
"opacity": {
"label": "الشفافية",
"submenu": {
"percent": "{{opacity}}٪"
}
},
"type": {
"label": "النوع",
"submenu": {
"acrylic": "أكريليك",
"mica": "ميكا",
"none": "لاشيء",
"tabbed": "بديل ميكا"
}
}
},
"name": "مشغل شفاف"
},
"tuna-obs": {
"description": "التكامل مع الإضافة\" Tuna\" الخاصة بـ OBS",
"name": "إضافة Tuna OBS"
},
"unobtrusive-player": {
"description": "يمنع المشغل من الظهور عند تشغيل أغنية",
"name": "مشغل غير مزعج"
},
"video-toggle": {
"description": "يضيف زرًا للتبديل بين وضع الفيديو/الأغنية. يمكن أيضًا اختياريًا إزالة علامة الفيديو بالكامل",
"menu": {
"align": {
"label": "المحاذاة",
"submenu": {
"left": "يسار",
"middle": "المنتصف",
"right": "يمين"
}
},
"force-hide": "إزالة علامة تبويب الفيديو",
"mode": {
"label": "وضع",
"submenu": {
"custom": "زر مخصص",
"disabled": "غير مفعل",
"native": "زر طبيعي"
}
}
},
"name": "زر الفيديو",
"templates": {
"button-song": "أغنية",
"button-video": "فيديو"
}
},
"visualizer": {
"description": "يضيف معاينًا بصريًا للمشغل",
"menu": {
"visualizer-type": "نوع المعاين البصري"
},
"name": "معاين بصري"
}
}
}

173
src/i18n/resources/az.json Normal file
View File

@ -0,0 +1,173 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Plagini icra etmək mümkün olmadı {{pluginName}}::{{contextName}}",
"executed-at-ms": "Plagin {{pluginName}}::{{contextName}} {{ms}} millisaniyədə icra edildi",
"initialize-failed": "\"{{pluginName}}\" plaginini başlatmaq mümkün olmadı",
"load-all": "Bütün plaginlər yüklənir",
"load-failed": "\"{{pluginName}}\" plaginini yükləmək mümkün olmadı",
"loaded": "\"{{pluginName}}\" plagini yükləndi",
"unload-failed": "\"{{pluginName}}\" plaqinini yükləmək mümkün olmadı",
"unloaded": "\"{{pluginName}}\" plaqini yükləmədən çıxarıldı"
}
}
},
"language": {
"code": "az",
"local-name": "Azərbaycan dili",
"name": "Azerbaijani"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Yükləmə tamamlandı. DevTools açıldı"
},
"i18n": {
"loaded": "i18n yükləndi"
},
"second-instance": {
"receive-command": "Protokol üzərindən əmr alındı: \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS faylı \"{{cssFile}}\" mövcud deyil, nəzərə alınmır"
},
"unresponsive": {
"details": "Cavabsız Səhv!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Proqram keşi təmizlənir"
},
"window": {
"tried-to-render-offscreen": "Pəncərə ekran kənarında göstərilməyə çalışıldı, PəncərəÖlçüsü={{windowSize}}, EkranÖlçüsü={{displaySize}}, Vəziyyət={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Menu gizlədildi, yenidən göstərmək üçün 'Alt' istifadə edin (Proqramiçi menu üçün 'Esc')",
"message": "Gizlət menusu aktivləşdirildi",
"title": "Gizlət menusu aktivləşdirildi"
},
"need-to-restart": {
"buttons": {
"later": "Sonra",
"restart-now": "Yenidən başlat"
},
"detail": "\"{{pluginName}}\" plaginin işləməsi üçün proqramı yenidən başladın",
"message": "\"{{pluginName}}\" üçün proqram yenidən başlamalıdır",
"title": "Yenidən başlatmaq tələb edilir"
},
"unresponsive": {
"buttons": {
"quit": "Tərk et",
"relaunch": "Yenidən işə sal",
"wait": "Gözləyin"
},
"detail": "Narahatçılıq üçün üzr istəyirik! Nə etməli olduğumuzu seçin:",
"message": "Proqram cavab vermir",
"title": "Pəncərə Cavab vermir"
},
"update-available": {
"buttons": {
"disable": "Yeniləmələri deaktiv et",
"download": "Yüklə",
"ok": "Oldu"
},
"detail": "Yeni versiya mövcuddur və bu linkdən yüklənə bilər {{downloadLink}}",
"message": "Yeni versiya mövcuddur",
"title": "Yeniləmə mövcuddur"
}
},
"menu": {
"about": "Haqqında",
"navigation": {
"label": "İstiqamət",
"submenu": {
"copy-current-url": "Hazırkı linki kopyala",
"go-back": "Geri qayıt",
"go-forward": "İrəli get",
"quit": ıx",
"restart": "Proqramı Yenidən Başlat"
}
},
"options": {
"label": "Seçimlər",
"submenu": {
"advanced-options": {
"label": "Əlavə seçimlər",
"submenu": {
"auto-reset-app-cache": "Proqram başlayanda keşi təmizlə",
"disable-hardware-acceleration": "Aparat təminatı sürətlənməsini deaktiv et",
"edit-config-json": "Config.json dəyiş",
"override-user-agent": "User-Agent dəyişdirildi",
"restart-on-config-changes": "Konfiqurasiya dəyişikliklərində yenidən başladılır",
"set-proxy": {
"label": "Proxy təyin et",
"prompt": {
"label": "Proxy Ünvanını daxil edin: (deaktiv etmək üçün boş buraxın)",
"placeholder": "Nümunə: SOCKS5://127.0.0.1:9999",
"title": "Proxy təyin et"
}
},
"toggle-dev-tools": "DevTools-u açıb bağla"
}
},
"always-on-top": "Həmişə üst tərəfdə",
"auto-update": "Avtomatik Yeniləmə",
"hide-menu": {
"dialog": {
"message": "Menyu növbəti açılışda gizlədiləcək, göstərmək üçün [Alt] düyməsini basın (proqramdaxili menyudan istifadə edildikdə isə, [`] düyməsi).",
"title": "Menyu gizlətmə aktivdir"
},
"label": "Menyunu gizlət"
},
"language": {
"dialog": {
"message": "Dil yenidən başlatmadan sonra dəyişiləcək",
"title": "Dil dəyişdirildi"
},
"label": "Dil",
"submenu": {
"to-help-translate": "Tərcüməyə kömək etmək istəyirsiniz? Buraya basın"
}
},
"resume-on-start": "Tətbiq başladıqda son mahnıdan davam et",
"single-instance-lock": "Tək proqram kilidi",
"start-at-login": "Giriş səhifəsində başlat",
"starting-page": {
"label": "Giriş səhifəsi",
"unset": "Təyin edilməyib"
},
"tray": {
"submenu": {
"disabled": "Deaktiv edilib"
}
},
"visual-tweaks": {
"label": "Vizual düzəlişlər",
"submenu": {
"custom-window-title": {
"prompt": {
"placeholder": "Nümunə: {{applicationName}}"
}
},
"like-buttons": {
"default": "Standart",
"hide": "Gizlət"
},
"remove-upgrade-button": "Yeniləmə düyməsini sil",
"theme": {
"dialog": {
"button": {
"cancel": "Ləğv et",
"remove": "Sil"
}
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1 @@
{}

View File

@ -150,6 +150,13 @@
"visual-tweaks": {
"label": "Визуални настройки",
"submenu": {
"custom-window-title": {
"label": "Персонализирано заглавие на прозорец",
"prompt": {
"label": "Въведи персонализирано заглавие: (остави празно за да изключиш)",
"placeholder": "Пример: {{applicationName}}"
}
},
"like-buttons": {
"default": "По подразбиране",
"force-show": "Принудително показване",
@ -158,6 +165,14 @@
},
"remove-upgrade-button": "Премахване на \"Ъпгрейд\" бутона",
"theme": {
"dialog": {
"button": {
"cancel": "Отказ",
"remove": "Премахни"
},
"remove-theme": "Сигурни ли сте, че искате да премахнете персонализираната тема?",
"remove-theme-message": "Това ще премахне персонализираната тема"
},
"label": "Тема",
"submenu": {
"import-css-file": "Импортиране на потребителски CSS файл",
@ -172,7 +187,764 @@
"enabled": "Активирани",
"label": "Плъгини",
"new": "НОВО"
},
"view": {
"label": "Преглед",
"submenu": {
"force-reload": "Принудително презареждане",
"reload": "Презареди",
"reset-zoom": "Действителен размер",
"toggle-fullscreen": "Превключване на цял екран",
"zoom-in": "Увеличаване",
"zoom-out": "Намаляване"
}
}
},
"tray": {
"next": "Следващ",
"play-pause": "Възпроизвеждане/Пауза",
"previous": "Предишен",
"quit": "Изход",
"restart": "Рестартирай приложението",
"show": "Покажи прозорец",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Ако се пусне реклама, заглушава аудиото и задава скорост на възпроизвеждане 16x",
"name": "Ускоряване на рекламите"
},
"adblocker": {
"description": "Блокиране на всички реклами и проследяване по подразбиране",
"menu": {
"blocker": "Блокировач"
},
"name": "Блокировач на реклами"
},
"album-actions": {
"description": "Добавя бутони „Не харесвам“, „Харесвам“, „Харесано“ и „Премахване на харесване“, за да приложите това към всички песни в плейлист или албум",
"name": "Действия за албум"
},
"album-color-theme": {
"description": "Прилага динамична тема и визуални ефекти въз основа на цветовата палитра на албума",
"menu": {
"color-mix-ratio": {
"label": "Съотношение на смесване на цветовете",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "Цветова тема на албума"
},
"ambient-mode": {
"description": "Прилага светлинен ефект, като проектира нежни цветове от видеото върху фона на екрана",
"menu": {
"blur-amount": {
"label": "Степен на замъгляване",
"submenu": {
"pixels": "{{blurAmount}} пиксела"
}
},
"buffer": {
"label": "Буферизация",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Непрозрачност",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Качество",
"submenu": {
"pixels": "{{quality}} пиксела"
}
},
"size": {
"label": "Размер",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Плавен преход",
"submenu": {
"during": "{{interpolationTime}} секунди"
}
},
"use-fullscreen": {
"label": "Използване на цял екран"
}
},
"name": "Атмосферен режим"
},
"amuse": {
"description": "Добавя поддръжка на {{applicationName}} за джаджата Amuse Now Play от 6K Labs",
"name": "Забавление",
"response": {
"query": "Сървърът на Amuse API работи. Изпратете GET /query за информация за песента."
}
},
"api-server": {
"description": "Добавя API сървър за контрол на плейъра",
"dialog": {
"request": {
"buttons": {
"allow": "Разрешавам",
"deny": "Отказвам"
},
"message": "Позволяваш ли {{ID}} {{origin}} да достъпва API-то?",
"title": "Заявка за авторизация на API"
}
},
"menu": {
"auth-strategy": {
"label": "Стратегия за авторизация",
"submenu": {
"auth-at-first": {
"label": "Авторизиране при първата заявка"
},
"none": {
"label": "Без авторизация"
}
}
},
"hostname": {
"label": "Име на хост"
},
"port": {
"label": "Порт"
}
},
"name": "API сървър [Бета]",
"prompt": {
"hostname": {
"label": "Въведете името на хоста (като 0.0.0.0) за API сървъра:",
"title": "Име на хост"
},
"port": {
"label": "Въведете порта за API сървъра:",
"title": "Порт"
}
}
},
"audio-compressor": {
"description": "Прилага компресия на аудиото (намалява обема на най-силните части от сигнала и увеличава обема на най-тихите части)",
"name": "Аудио компресор"
},
"auth-proxy-adapter": {
"description": "Поддръжка за използване на услуги за удостоверяване чрез прокси",
"menu": {
"disable": "Деактивирай адаптера за удостоверяване чрез прокси",
"enable": "Активирай адаптера за удостоверяване чрез прокси",
"hostname": {
"label": "Име на хост"
},
"port": {
"label": "Порт"
}
},
"name": "Адаптер за удостоверяване чрез прокси",
"prompt": {
"hostname": {
"label": "Въведи име за локалния прокси сървър (необходимо е рестартиране):",
"title": "Име на прокси хост"
},
"port": {
"label": "Въведи порт за локалния прокси сървър (необходимо е рестартиране):",
"title": "Прокси порт"
}
}
},
"blur-nav-bar": {
"description": "Прави навигационната лента прозрачна и размазана",
"name": "Размазанa навигационна лента"
},
"bypass-age-restrictions": {
"description": "Избягване на възрастова верификация на Music Player",
"name": "Избягване на възрастови ограничения"
},
"captions-selector": {
"description": "Избор на надписи за аудио тракове в {{applicationName}}",
"menu": {
"autoload": "Автоматично избиране на последно използвания надпис",
"disable-captions": "Без надписи по подразбиране"
},
"name": "Избор на надписи",
"prompt": {
"selector": {
"label": "Език на надписи: {{language}}",
"none": "Нищо",
"title": "Избери език на надписите"
}
},
"templates": {
"title": "Отвори избора на надписи"
},
"toast": {
"caption-changed": "Надписите са сменени на {{language}}",
"caption-disabled": "Надписите са деактивирани",
"no-captions": "Няма налични надписи за тази песен"
}
},
"compact-sidebar": {
"description": "Винаги настройвай страничната лента в компактен режим",
"name": "Компактна странична лента"
},
"crossfade": {
"description": "Плавно преминаване през песните",
"menu": {
"advanced": "Разширено"
},
"name": "Плавно преминаване [Beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Продължителност на преливането (милисекунди)",
"fade-out-duration": "Продължителност на затихването (милисекунди)",
"fade-scaling": {
"label": "Скалиране на избледняването",
"linear": "Линейно",
"logarithmic": "Логаритмично"
},
"seconds-before-end": "Преливане N секунди преди края"
},
"title": "Опции за преливане"
}
}
},
"custom-output-device": {
"description": "Конфигуриране на изходно медийно устройство за песни",
"menu": {
"device-selector": "Избери устройство"
},
"name": "Персонализирано изходно устройство",
"prompt": {
"device-selector": {
"label": "Избери изходното медийно устройство",
"title": "Избери изходно устройство"
}
}
},
"disable-autoplay": {
"description": "Започва песента в паузиран режим",
"menu": {
"apply-once": "Важи само на стартиране"
},
"name": "Изключи автоматичното пускане"
},
"discord": {
"backend": {
"already-connected": "Опит за свързване с активна връзка",
"connected": "Свързано с Discord",
"disconnected": "Прекъсната връзка с Discord"
},
"description": "Покажи на приятелите си какво слушате с Rich Presence",
"menu": {
"auto-reconnect": "Автоматично повторно свързване",
"clear-activity": "Изчистване на активността",
"clear-activity-after-timeout": "Изчистване на активността след изтичане на времето",
"connected": "Свързано",
"disconnected": "Прекъснато",
"hide-duration-left": "Скрий оставащото време",
"hide-github-button": "Скрий бутона за линк към GitHub",
"play-on-application": "Възпроизведи в {{applicationName}}",
"set-inactivity-timeout": "Задай таймаут за неактивност",
"set-status-display-type": {
"label": "Статус текст",
"submenu": {
"artist": "Слушам {artist}",
"title": "Слушам {song title}",
"application": "Слушам {{applicationName}}"
}
}
},
"name": "Дискорд Разширен статус",
"prompt": {
"set-inactivity-timeout": {
"label": "Въведете таймаута за неактивност в секунди:",
"title": "Задайте таймаут за неактивност"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "ОК"
},
"message": "Ох! Извинявайте, изтеглянето не успя…",
"title": "Грешка при изтегляне!"
},
"start-download-playlist": {
"buttons": {
"ok": "ОК"
},
"detail": "({{playlistSize}} песни)",
"message": "Изтегляне на плейлист {{playlistTitle}}",
"title": "Изтеглянето започна"
}
},
"feedback": {
"conversion-progress": "Конвертиране: {{percent}}%",
"converting": "Превръщане…",
"done": "Готово: {{filePath}}",
"download-info": "Изтегляне на {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Изтегляне: {{percent}}%",
"downloading": "Изтегляне…",
"downloading-counter": "Изтегляне {{current}}/{{total}}…",
"downloading-playlist": "Изтегляне на плейлист \"{{playlistTitle}}\" - {{playlistSize}} песни ({{playlistId}})",
"error-while-downloading": "Грешка при изтегляне на \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "Папката {{playlistFolder}} вече съществува",
"getting-playlist-info": "Получаване на информация за плейлист…",
"loading": "Зареждане…",
"playlist-has-only-one-song": "Плейлистът съдържа само един елемент, изтегля се директно",
"playlist-id-not-found": "Не е намерен ID на плейлист",
"playlist-is-empty": "Плейлистът е празен",
"playlist-is-mix-or-private": "Грешка при получаване на информация за плейлист: уверете се, че не е частен или \"Смесено за вас\" плейлист\n\n{{error}}",
"preparing-file": "Подготвяне на файла…",
"saving": "Записване…",
"trying-to-get-playlist-id": "Опитвам се да получа ID на плейлист: {{playlistId}}",
"video-id-not-found": "Видео не е намерено",
"writing-id3": "Записване на ID3 тагове…"
}
},
"description": "Изтегля MP3 / източниково аудио директно от интерфейса",
"menu": {
"choose-download-folder": "Изберете папка за изтегляне",
"download-finish-settings": {
"label": "Изтегляне при завършване",
"prompt": {
"last-percent": "След x процента",
"last-seconds": "Последни x секунди",
"title": "Конфигурирайте кога да изтеглите"
},
"submenu": {
"advanced": "Разширени настройки",
"enabled": "Активирано",
"mode": "Режим на време",
"percent": "Процент",
"seconds": "Секунди"
}
},
"download-playlist": "Изтегляне на плейлист",
"presets": "Предварително зададени настройки",
"skip-existing": "Пропусни съществуващите файлове"
},
"name": "Изтегляч",
"renderer": {
"can-not-update-progress": "Не може да се актуализира напредъкът"
},
"templates": {
"button": "Изтегляне"
}
},
"equalizer": {
"description": "Добавя еквалайзер към плеъра",
"menu": {
"presets": {
"label": "Предварителни настройки",
"list": {
"bass-booster": "Усилвател на басове"
}
}
},
"name": "Еквалайзер"
},
"exponential-volume": {
"description": "Прави плъзгача за сила на звука експоненциален, така че да е по-лесно да се избират по-ниски нива на звук.",
"name": "Експоненциален звук"
},
"in-app-menu": {
"description": "Придава на меню баровете стилен, тъмен или с цвят на албума вид",
"menu": {
"hide-dom-window-controls": "Скрий контролните елементи на DOM прозореца"
},
"name": "Меню в приложението"
},
"lumiastream": {
"description": "Добавя поддръжка за Lumia Stream",
"name": "Lumia Stream [Бета]"
},
"lyrics-genius": {
"description": "Добавя поддръжка за текстове за повечето песни",
"menu": {
"romanized-lyrics": "Романизирани текстове"
},
"name": "Текстове от Genius",
"renderer": {
"fetched-lyrics": "Изтеглени текстове от Genius"
}
},
"music-together": {
"description": "Сподели плейлист с други. Когато хостът пусне песен, всички останали ще чуят същата песен",
"dialog": {
"enter-host": "Въведи ID на хоста"
},
"internal": {
"save": "Запазване",
"track-source": "Източник на трак",
"unknown-user": "Неизвестен потребител"
},
"menu": {
"click-to-copy-id": "Копирай ID на хост",
"close": "Затвори Music Together",
"connected-users": "Свързани потребители",
"disconnect": "Прекъсни Music Together",
"empty-user": "Няма свързани потребители",
"host": "Хост на Music Together",
"join": "Присъедини се към Music Together",
"permission": {
"all": "Позволи на гостите да управляват плейлист и плеър",
"host-only": "Само хостът може да управлява плейлист и плеър",
"playlist": "Позволи на гостите да управляват плейлист"
},
"set-permission": "Промени разрешението за управление",
"status": {
"disconnected": "Прекъснато",
"guest": "Свързан като гост",
"host": "Свързан като хост"
}
},
"name": "Music Together [Бета]",
"toast": {
"add-song-failed": "Неуспешно добавяне на песен",
"closed": "Music Together е затворена",
"disconnected": "Music Together е прекъсната",
"host-failed": "Неуспешно хостване на Music Together",
"id-copied": "ID на хоста е копиран в клипборда",
"id-copy-failed": "Неуспешно копиране на ID на хоста в клипборда",
"join-failed": "Неуспешно присъединяване към Music Together",
"joined": "Присъединен към Music Together",
"permission-changed": "Разрешението за Music Together е променено на \"{{permission}}\"",
"remove-song-failed": "Неуспешно премахване на песен",
"user-connected": "{{name}} се присъедини към Music Together",
"user-disconnected": "{{name}} напусна Music Together"
}
},
"navigation": {
"description": "Навигационни стрелки Напред/Назад, директно интегрирани в интерфейса, както в любимия ви браузър",
"name": "Навигация",
"templates": {
"back": {
"title": "Предишна страница"
},
"forward": {
"title": "Следваща страница"
}
}
},
"no-google-login": {
"description": "Премахни бутоните за вход с Google и връзките от интерфейса",
"name": "Няма вход с Google"
},
"notifications": {
"description": "Показване на известие при стартиране на песен (интерактивни известия са налични за Windows)",
"menu": {
"interactive": "Интерактивни известия",
"interactive-settings": {
"label": "Интерактивни настройки",
"submenu": {
"hide-button-text": "Скрий текста на бутоните",
"refresh-on-play-pause": "Обновяване при Възпроизвеждане/Пауза",
"tray-controls": "Отваряне/Затваряне при клик в тавата"
}
},
"priority": "Приоритет на известията",
"toast-style": "Стил на toast (кратки изскачащи известия)",
"unpause-notification": "Показване на известие при възобновяване"
},
"name": "Известия"
},
"performance-improvement": {
"description": "Подобри производителността като пуснеш експериментални скриптове",
"name": "Производителни подобрения"
},
"picture-in-picture": {
"description": "Позволява превключване на приложението в режим картинка във картинка",
"menu": {
"always-on-top": "Винаги на преден план",
"hotkey": {
"label": "Клавишна комбинация",
"prompt": {
"keybind-options": {
"hotkey": "Клавишна комбинация"
},
"label": "Изберете клавишна комбинация за превключване на картинка във картинка",
"title": "Клавишна комбинация за картинка във картинка"
}
},
"save-window-position": "Запомняне на позицията на прозореца",
"save-window-size": "Запомняне на размера на прозореца",
"use-native-pip": "Използвайте вградения картинка във картинка на браузера"
},
"name": "Картинка във картинка",
"templates": {
"button": "Картинка във картинка"
}
},
"playback-speed": {
"description": "Слушай бързо, слушай бавно! Добавя плъзгач, който управлява скоростта на песните",
"name": "Скорост на възпроизвеждане",
"templates": {
"button": "Скорост"
}
},
"precise-volume": {
"description": "Управлявайте прецизно силата на звука чрез колелото на мишката или бързи клавиши, с персонализиран HUD и настройвани нива на звука",
"menu": {
"arrows-shortcuts": "Локални контроли със стрелки",
"custom-volume-steps": "Задайте персонализирани нива на звука",
"global-shortcuts": "Глобални бързи клавиши"
},
"name": "Точна сила на звука",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Намаляване на звука",
"increase": "Усилване на звука"
},
"label": "Изберете глобални клавишни комбинации за сила на звука:",
"title": "Глобални клавишни комбинации за звук"
},
"volume-steps": {
"label": "Изберете стъпки за увеличаване/намаляване на звука",
"title": "Стъпки на звука"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Текущо качество: {{quality}}",
"message": "Изберете качество на видеото:",
"title": "Изберете качество на видеото"
}
}
},
"description": "Позволява промяна на качеството на видеото с бутон върху видеото",
"name": "Промяна на качеството на видеото",
"renderer": {
"quality-settings-button": {
"label": "Отвори настройките за качество на плейъра"
}
}
},
"scrobbler": {
"description": "Добавяне на скробблинг поддръжка (last.fm, Listenbrainz и т.н.)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Грешка при удостоверяване с Last.fm\nСкрий изкачащия прозорец до следващо пускане.",
"title": "Грешка при удостоверяване"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Настройки за Last.fm API"
},
"listenbrainz": {
"token": "Въведете ListenBrainz потребителски токен"
},
"scrobble-alternative-artist": "Използвай алтернативни изпълнители",
"scrobble-alternative-title": "Използвай алтернативни заглавия",
"scrobble-other-media": "Скробъл на други медии"
},
"name": "Скробълър",
"prompt": {
"lastfm": {
"api-key": "Last.fm API ключ",
"api-secret": "Last.fm API тайна"
},
"listenbrainz": {
"token": {
"label": "Въведете вашия ListenBrainz потребителски токен:",
"title": "ListenBrainz токен"
}
}
}
},
"shortcuts": {
"description": "Позволява задаване на глобални бързи клавиши за възпроизвеждане (пускане/пауза/следваща/предишна), изключване на медиен OSD чрез презаписване на медийни клавиши, включване на Ctrl/CMD + F за търсене, включване на Linux MPRIS поддръжка за медийни клавиши и персонализирани бързи клавиши за напреднали потребители",
"menu": {
"override-media-keys": "Презаписване на медийни клавиши",
"set-keybinds": "Задайте глобални контроли за песни"
},
"name": "Клавишни комбинации (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Следваща",
"play-pause": "Пусни / Пауза",
"previous": "Предишна"
},
"label": "Изберете глобални клавишни комбинации за контрол на песните:",
"title": "Глобални клавишни комбинации"
}
}
},
"skip-disliked-songs": {
"description": "Прескача нехаресаните песни",
"name": "Прескачане на нехаресани песни"
},
"skip-silences": {
"description": "Автоматично прескачане на тихи участъци в песните",
"name": "Прескачане на тишини"
},
"sponsorblock": {
"description": "Автоматично прескача не-музикални части като встъпление/изход или части от музикални клипове, където песента не се пуска",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "Предоставя синхронизирани текстове на песни, използвайки доставчици като LRClib.",
"errors": {
"fetch": "⚠️\tВъзникна грешка при извличане на текста.\n\tМоля, опитайте по-късно.",
"not-found": "⚠️ За тази песен не са намерени текстове."
},
"menu": {
"default-text-string": {
"label": "Подразбиращ се знак между текстовете",
"tooltip": "Изберете знака, който да се използва за интервала между текстовете"
},
"line-effect": {
"label": "Линеен ефект",
"submenu": {
"fancy": {
"label": "Украсено",
"tooltip": "Използвайте големи, приложно-подобни ефекти на текущия ред"
},
"focus": {
"label": "Фокус",
"tooltip": "Направете само текущия ред бял"
},
"offset": {
"label": "Отместване",
"tooltip": "Отместване на текущия ред вдясно"
},
"scale": {
"label": "Мащаб",
"tooltip": "Мащабирайте текущия ред"
}
},
"tooltip": "Изберете ефекта, който да се приложи към текущия ред"
},
"precise-timing": {
"label": "Направете текстовете перфектно синхронизирани",
"tooltip": "Изчислете до милисекунда показването на следващия ред (може да има малък ефект върху производителността)"
},
"preferred-provider": {
"label": "Предпочитан доставчик",
"none": {
"label": "Празно",
"tooltip": "Без предпочитан доставчик"
},
"tooltip": "Изберете доставчик по подразбиране"
},
"romanization": {
"label": "Романизиране на текстовете",
"tooltip": "Ако текстовете са на друг език, опитайте да покажете латинска версия."
},
"show-lyrics-even-if-inexact": {
"label": "Показване на текстовете, дори ако са неточни",
"tooltip": "Ако песента не бъде намерена, добавката се опитва отново с различен поисков запрос.\nРезултатът от втория опит може да не е точен."
},
"show-time-codes": {
"label": "Показване на временни кодове",
"tooltip": "Показване на временни кодове до текстовете"
}
},
"name": "Синхронизирани текстове",
"refetch-btn": {
"fetching": "Извличане...",
"normal": "Повторно извличане на текстовете"
},
"warnings": {
"duration-mismatch": "⚠️ - Текстовете може да не са синхронизирани поради несъответствие в продължителността.",
"inexact": "⚠️ - Текстовете за тази песен може да не са точни",
"instrumental": "⚠️ - Това е инструментална песен"
}
},
"taskbar-mediacontrol": {
"description": "Управление на възпроизвеждането от лентата с задачи на Windows",
"name": "Управление на медията от лентата със задачи"
},
"touchbar": {
"description": "Добавя уиджет за TouchBar за потребители на macOS",
"name": "TouchBar"
},
"transparent-player": {
"description": "Прави прозореца на приложението прозрачен",
"menu": {
"opacity": {
"label": "Прозрачност",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Тип",
"submenu": {
"acrylic": "Акрил",
"mica": "Слюда",
"none": "Празно",
"tabbed": "С раздели"
}
}
},
"name": "Прозрачен плейър"
},
"tuna-obs": {
"description": "Интеграция с плъгина Tuna за OBS",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Предотвратява изскачането на плеъра при възпроизвеждане на песен",
"name": "Неназойлив плеър"
},
"video-toggle": {
"description": "Добавя бутон за превключване между видео/песен режим. Също така може по избор да премахва целия раздел за видео",
"menu": {
"align": {
"label": "Подравняване",
"submenu": {
"left": "Ляво",
"middle": "В средата",
"right": "Дясно"
}
},
"force-hide": "Принудително премахване на раздела за видео",
"mode": {
"label": "Режим",
"submenu": {
"custom": "Персонализиран превключвател",
"disabled": "Изключено",
"native": "Вграден превключвател"
}
}
},
"name": "Превключване на видео",
"templates": {
"button-song": "Песен",
"button-video": "Видео"
}
},
"visualizer": {
"description": "Добавя визуализатор към плеъра",
"menu": {
"visualizer-type": "Тип визуализатор"
},
"name": "Визуализатор"
}
}
}

899
src/i18n/resources/bn.json Normal file
View File

@ -0,0 +1,899 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "প্লাগইন {{pluginName}}::{{contextName}} কার্যকর করতে ব্যর্থ হয়েছে",
"executed-at-ms": "প্লাগইন {{pluginName}}::{{contextName}} {{ms}}মিলিসেকেন্ডে কার্যকর হয়েছে",
"initialize-failed": "প্লাগইন \"{{pluginName}}\" চালু করতে ব্যর্থ হয়েছে",
"load-all": "সকল প্লাগইন লোড করা হচ্ছে",
"load-failed": "প্লাগইন \"{{pluginName}}\" লোড হতে ব্যর্থ হয়েছে",
"loaded": "প্লাগইন \"{{pluginName}}\" লোড হয়েছে",
"unload-failed": "প্লাগইন \"{{pluginName}}\" আনলোড করতে ব্যর্থ হয়েছে",
"unloaded": "প্লাগইন \"{{pluginName}}\" আনলোড হয়েছে"
}
}
},
"language": {
"code": "bn",
"local-name": "বাংলা",
"name": "Bengali"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "লোড সম্পন্ন হয়েছে। ডেভটুলস খোলা হয়েছে"
},
"i18n": {
"loaded": "i18n লোড হয়েছে"
},
"second-instance": {
"receive-command": "প্রোটোকলের মাধ্যমে কমান্ড গ্রহণ করা হয়েছে: \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS ফাইল \"{{cssFile}}\" পাওয়া যায়নি, ইগনোর করা হয়েছে"
},
"unresponsive": {
"details": "অকার্যকর ত্রুটি!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "অ্যাপ ক্যাশ মুছে ফেলা হচ্ছে"
},
"window": {
"tried-to-render-offscreen": "উইন্ডোটি স্ক্রিনের বাইরে রেন্ডার করার চেষ্টা করেছে, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "মেনু লুকানো রয়েছে, দেখতে 'Alt' চাপুন ( অথবা ইন-অ্যাপ মেনু ব্যবহার করে থাকলে 'Escape' চাপুন )",
"message": "মেনু লুকান সক্রিয় করা হয়েছে",
"title": "মেনু লুকান সক্রিয় হয়েছে"
},
"need-to-restart": {
"buttons": {
"later": "পরে",
"restart-now": "রিস্টার্ট করুন"
},
"detail": "\"{{pluginName}}\" প্লাগইন কার্যকর করতে পুনরারম্ভ করতে হবে",
"message": "\"{{pluginName}}\" পুনরায় চালু করা প্রয়োজন",
"title": "পুনরায় চালু করা প্রয়োজন"
},
"unresponsive": {
"buttons": {
"quit": "বন্ধ করুন",
"relaunch": "পুনরায় চালু করুন",
"wait": "অপেক্ষা করুন"
},
"detail": "অসুবিধার জন্য আমরা দুঃখিত! অনুগ্রহ করে কী করতে চান তা নির্বাচন করুন:",
"message": "অ্যাপ্লিকেশনটি কাজ করছে না",
"title": "উইন্ডোটি কাজ করছে না"
},
"update-available": {
"buttons": {
"disable": "আপডেট বন্ধ করুন",
"download": "ডাউনলোড",
"ok": "ওকে"
},
"detail": "একটি নতুন ভার্সন এসেছে এবং এটি {{downloadLink}} থেকে ডাউনলোড করতে পারেন",
"message": "একটি নতুন ভার্সন এসেছে",
"title": "আপডেট করতে পারেন"
}
},
"menu": {
"about": "সম্পর্কে",
"navigation": {
"label": "নেভিগেশন",
"submenu": {
"copy-current-url": "বর্তমান URL কপি করুন",
"go-back": "পেছনে যান",
"go-forward": "সামনে যান",
"quit": "বন্ধ",
"restart": "অ্যাপ পুনরায় চালু করুন"
}
},
"options": {
"label": "অপশন",
"submenu": {
"advanced-options": {
"label": "এডভ্যান্স অপশন",
"submenu": {
"auto-reset-app-cache": "অ্যাপ চালুর সময় ক্যাশ রিসেট করুন",
"disable-hardware-acceleration": "হার্ডওয়্যার অ্যাকসেলারেশন নিষ্ক্রিয় করুন",
"edit-config-json": "config.json এডিট করুন",
"override-user-agent": "ইউজার এজেন্ট বদলান",
"restart-on-config-changes": "কনফিগ পরিবর্তন হলে আবার চালু করুন",
"set-proxy": {
"label": "প্রক্সি সেট করুন",
"prompt": {
"label": "প্রক্সি ঠিকানা দিন: (বন্ধ করতে ফাকা রাখুন)",
"placeholder": "যেমন: SOCKS5://127.0.0.1:9999",
"title": "প্রক্সি সেট করুন"
}
},
"toggle-dev-tools": "ডেভ টুল চালু/বন্ধ"
}
},
"always-on-top": "সবসময় উপরে রাখুন",
"auto-update": "স্বয়ংক্রিয় আপডেট চালু করুন",
"hide-menu": {
"dialog": {
"message": "পরবর্তী চালুর সময় মেনু লুকানো থাকবে, দেখতে [Alt] চাপুন (অথবা ইন-অ্যাপ মেনু হলে [`] ব্যবহার করুন)",
"title": "মেনু লুকানো হয়েছে"
},
"label": "মেনু লুকান"
},
"language": {
"dialog": {
"message": "পুনরায় চালু করলে ভাষা পরিবর্তন হয়ে যাবে",
"title": "ভাষা নির্বাচন করুন"
},
"label": "ভাষা",
"submenu": {
"to-help-translate": "অনুবাদে সাহায্য করতে চান? এখানে চাপ দিন"
}
},
"resume-on-start": "অ্যাপ চালু হলে শেষ গানটি আবার চালু করুন",
"single-instance-lock": "একক ইনস্ট্যান্স লক",
"start-at-login": "লগইনের সময় চালু করুন",
"starting-page": {
"label": "শুরুর পেজ",
"unset": "নির্ধারণ করা হয়নি"
},
"tray": {
"label": "ট্রে",
"submenu": {
"disabled": "ট্রে বন্ধ",
"enabled-and-hide-app": "ট্রে চালু ও অ্যাপ লুকান",
"enabled-and-show-app": "ট্রে চালু ও অ্যাপ দেখান",
"play-pause-on-click": "ট্রে ক্লিক করলে প্লে/পজ"
}
},
"visual-tweaks": {
"label": "দৃষ্টিনন্দন পরিবর্তন",
"submenu": {
"custom-window-title": {
"label": "কাস্টম উইন্ডো টাইটেল",
"prompt": {
"label": "নিজস্ব উইন্ডোর টাইটেল দিন (বন্ধ করতে ফাঁকা রাখুন)",
"placeholder": "উদাহরণস্বরূপ: {{applicationName}}"
}
},
"like-buttons": {
"default": "ডিফল্ট লাইক বাটন",
"force-show": "সবসময় লাইক বাটন দেখান",
"hide": "লাইক বাটন লুকান",
"label": "লাইক বাটনের নিয়ন্ত্রণ"
},
"remove-upgrade-button": "আপগ্রেড বাটন সরান",
"theme": {
"dialog": {
"button": {
"cancel": "বাতিল",
"remove": "থিম সরান"
},
"remove-theme": "থিম সরাতে চান?",
"remove-theme-message": "এটি কাস্টম থিমটি বাদ দিয়ে দিবে"
},
"label": "থিম",
"submenu": {
"import-css-file": "CSS ফাইল ইমপোর্ট করুন",
"no-theme": "কোন থিম নেই"
}
}
}
}
}
},
"plugins": {
"enabled": "প্লাগইন চালু",
"label": "প্লাগইন",
"new": "নতুন প্লাগইন"
},
"view": {
"label": "দেখুন",
"submenu": {
"force-reload": "জোর করে রিফ্রেশ করুন",
"reload": "রিফ্রেশ করুন",
"reset-zoom": "জুম রিসেট করুন",
"toggle-fullscreen": "ফুলস্ক্রিন চালু/বন্ধ",
"zoom-in": "বড় করুন",
"zoom-out": "ছোট করুন"
}
}
},
"tray": {
"next": "নেক্সট",
"play-pause": "চালু/বন্ধ",
"previous": "পূর্ববর্তী",
"quit": "বন্ধ",
"restart": "অ্যাপ পুনরায় চালু করুন",
"show": "উইন্ডো দেখান",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "বিজ্ঞাপন চললে, এটি অডিও বন্ধ করে দেয় এবং প্লেব্যাক গতি ১৬ গুণ করে দেয়",
"name": "বিজ্ঞাপন দ্রুত করুন"
},
"adblocker": {
"description": "সব বিজ্ঞাপন ও ট্র্যাকিং শুরু থেকেই ব্লক করুন",
"menu": {
"blocker": "ব্লকার"
},
"name": "এড ব্লকার"
},
"album-actions": {
"description": "প্লেলিস্ট বা অ্যালবামের সব গানেই প্রয়োগ করতে আনডিসলাইক, ডিসলাইক, লাইক ও আনলাইক বাটন যোগ করে",
"name": "অ্যালবাম অ্যাকশনসমূহ"
},
"album-color-theme": {
"description": "অ্যালবামের রঙের উপর ভিত্তি করে ডাইনামিক থিম ও ভিজ্যুয়াল ইফেক্ট প্রয়োগ করুন",
"menu": {
"color-mix-ratio": {
"label": "কালার মিক্স রেশিও",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "এলবাম এর কালার থিম"
},
"ambient-mode": {
"description": "ভিডিও থেকে নরম আলো ছড়িয়ে আপনার স্ক্রিনের ব্যাকগ্রাউন্ডে লাইটিং ইফেক্ট প্রয়োগ করে",
"menu": {
"blur-amount": {
"label": "ব্লার এর পরিমাণ",
"submenu": {
"pixels": "{{blurAmount}} পিক্সেল"
}
},
"buffer": {
"label": "বাফার",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "স্বচ্ছতা",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "কোয়ালিটি",
"submenu": {
"pixels": "{{quality}}পিক্সেল"
}
},
"size": {
"label": "আকার",
"submenu": {
"percent": "{{size}}শতাংশ"
}
},
"smoothness-transition": {
"label": "মসৃণ রূপান্তর",
"submenu": {
"during": "{{interpolationTime}} সেকেন্ড সময়কালে"
}
},
"use-fullscreen": {
"label": "পূর্ণপর্দা ব্যবহার করা"
}
},
"name": "পরিবেষ্টিত মোড"
},
"amuse": {
"description": "ইউটিউব মিউজিকে অ্যামিউজ সমর্থন যোগ করা হয়েছে যা এখন ৬কে ল্যাবস উইজেটে চলছে",
"name": "মনোরঞ্জন",
"response": {
"query": "অ্যামিউজ API সার্ভার চলছে। /query ব্যবহার করে গান সম্পর্কিত তথ্য পান।"
}
},
"api-server": {
"description": "প্লেয়ার নিয়ন্ত্রণের জন্য একটি API সার্ভার যোগ করা হয়েছে",
"dialog": {
"request": {
"buttons": {
"allow": "অনুমতি দিন",
"deny": "অস্বীকার করা"
},
"message": "{{ID}} ({{origin}}) কে API ব্যবহারের অনুমতি দিবেন?",
"title": "API অথোরাইজ এর অনুরোধ"
}
},
"menu": {
"auth-strategy": {
"label": "অথোরাইজেশন স্ট্র্যাটেজি",
"submenu": {
"auth-at-first": {
"label": "প্রথম অনুরোধে অথোরাইজ করুন"
},
"none": {
"label": "কোন অথোরাইজেশন নেই"
}
}
},
"hostname": {
"label": "হোস্টনেম"
},
"port": {
"label": "পোর্ট"
}
},
"name": "API সার্ভার [বেটা]",
"prompt": {
"hostname": {
"label": "API সার্ভারের জন্য হোস্টনেম (যেমন 0.0.0.0) লিখুন:",
"title": "হোস্টনেম"
},
"port": {
"label": "API সার্ভারের জন্য পোর্ট লিখুন:",
"title": "পোর্ট"
}
}
},
"audio-compressor": {
"description": "অডিওতে কম্প্রেশন প্রয়োগ করুন (উচ্চতর শব্দের অংশগুলোর ভলিউম কমিয়ে দেয় এবং নীরবতম অংশগুলোর ভলিউম বাড়িয়ে দেয়)",
"name": "অডিও কম্প্রেসর"
},
"auth-proxy-adapter": {
"description": "অথেনটিকেশন প্রক্সি সার্ভিস ব্যবহারের সাপোর্ট",
"menu": {
"disable": "প্রক্সি অ্যাডাপ্টার বন্ধ করুন",
"enable": "প্রক্সি অ্যাডাপ্টার চালু করুন",
"hostname": {
"label": "হোস্টনেম"
},
"port": {
"label": "পোর্ট"
}
},
"name": "অথেনটিকেশন প্রক্সি অ্যাডাপ্টার",
"prompt": {
"hostname": {
"label": "লোকাল প্রক্সি সার্ভারের জন্য হোস্টনেম লিখুন (পুনরায় চালু করতে হবে):",
"title": "প্রক্সি হোস্টনেম"
},
"port": {
"label": "লোকাল প্রক্সি সার্ভারের জন্য পোর্ট লিখুন (পুনরায় চালু করতে হবে):",
"title": "প্রক্সি পোর্ট"
}
}
},
"blur-nav-bar": {
"description": "নেভিগেশন বারকে স্বচ্ছ এবং ঝাপসা করে",
"name": "নেভিগেশন বার ঝাপসা করুন"
},
"bypass-age-restrictions": {
"description": "ইউটিউবের বয়স যাচাইকরণ এড়িয়ে যান",
"name": "বয়স সীমাবদ্ধতা এড়ান"
},
"captions-selector": {
"description": "ইউটিউব মিউজিক অডিও ট্র্যাকের জন্য ক্যাপশন নির্বাচক",
"menu": {
"autoload": "সর্বশেষ ব্যবহৃত ক্যাপশন স্বয়ংক্রিয়ভাবে নির্বাচন করুন",
"disable-captions": "ডিফল্টভাবে কোন ক্যাপশন নেই"
},
"name": "ক্যাপশন নির্বাচক",
"prompt": {
"selector": {
"label": "বর্তমান ক্যাপশন ভাষা: {{language}}",
"none": "কোনোটি নয়",
"title": "ক্যাপশন ভাষা নির্বাচন করুন"
}
},
"templates": {
"title": "ক্যাপশন নির্বাচক খুলুন"
},
"toast": {
"caption-changed": "ক্যাপশন {{language}} ভাষায় পরিবর্তিত হয়েছে",
"caption-disabled": "ক্যাপশন বন্ধ করা হয়েছে",
"no-captions": "এই গানটির জন্য কোনো ক্যাপশন উপলব্ধ নেই"
}
},
"compact-sidebar": {
"description": "সাইডবারকে সবসময় কম্প্যাক্ট মোডে সেট করুন",
"name": "কম্প্যাক্ট সাইডবার"
},
"crossfade": {
"description": "গানগুলির মধ্যে ক্রসফেড করুন",
"menu": {
"advanced": "এডভান্স"
},
"name": "ক্রসফেড [বেটা]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "ফেড-ইন সময়কাল (ms)",
"fade-out-duration": "ফেড-আউট সময়কাল (ms)",
"fade-scaling": {
"label": "ফেড স্কেলিং",
"linear": "রৈখিক",
"logarithmic": "লগারিদমিক"
},
"seconds-before-end": "শেষ হওয়ার N সেকেন্ড আগে ক্রসফেড করুন"
},
"title": "ক্রসফেড অপশনসমূহ"
}
}
},
"disable-autoplay": {
"description": "গান \"পজ\" মোডে শুরু করে",
"menu": {
"apply-once": "শুধুমাত্র স্টার্টআপে প্রয়োগ হয়"
},
"name": "অটোপ্লে বন্ধ করুন"
},
"discord": {
"backend": {
"already-connected": "একটিভ সংযোগের সাথে সংযোগ করার চেষ্টা করা হয়েছে",
"connected": "ডিসকর্ডের সাথে সংযুক্ত",
"disconnected": "ডিসকর্ড থেকে সংযোগ বিচ্ছিন্ন"
},
"description": "রিচ প্রেজেন্স ব্যবহার করে আপনি কি শুনছেন তা আপনার বন্ধুদের দেখান",
"menu": {
"auto-reconnect": "স্বয়ংক্রিয় রিকানেক্ট",
"clear-activity": "কার্যকলাপ মুছুন",
"clear-activity-after-timeout": "সময়সীমা শেষ হওয়ার পরে কার্যকলাপ মুছুন",
"connected": "সংযুক্ত",
"disconnected": "সংযোগ বিচ্ছিন্ন",
"hide-duration-left": "অবশিষ্ট সময় লুকান",
"hide-github-button": "গিটহাব লিঙ্ক বাটন লুকান",
"play-on-application": "ইউটিউব মিউজিকে চালান",
"set-inactivity-timeout": "নিষ্ক্রিয়তার সময়সীমা সেট করুন"
},
"name": "ডিসকর্ড রিচ প্রেজেন্স",
"prompt": {
"set-inactivity-timeout": {
"label": "নিষ্ক্রিয়তার সময়সীমা সেকেন্ডে লিখুন:",
"title": "নিষ্ক্রিয়তার সময়সীমা সেট করুন"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "ঠিক আছে"
},
"message": "আহ! দুঃখিত, ডাউনলোড ব্যর্থ হয়েছে…",
"title": "ডাউনলোডে সমস্যা!"
},
"start-download-playlist": {
"buttons": {
"ok": "ঠিক আছে"
},
"detail": "({{playlistSize}} টি গান)",
"message": "প্লেলিস্ট {{playlistTitle}} ডাউনলোড করা হচ্ছে",
"title": "ডাউনলোড শুরু হয়েছে"
}
},
"feedback": {
"conversion-progress": "রূপান্তর: {{percent}}%",
"converting": "রূপান্তর করা হচ্ছে…",
"done": "সম্পন্ন: {{filePath}}",
"download-info": "ডাউনলোড হচ্ছে {{artist}} - {{title}} [{{videoId}}",
"download-progress": "ডাউনলোড: {{percent}}%",
"downloading": "ডাউনলোড হচ্ছে…",
"downloading-counter": "ডাউনলোড হচ্ছে {{current}}/{{total}}…",
"downloading-playlist": "প্লেলিস্ট \"{{playlistTitle}}\" - {{playlistSize}}টি গান ({{playlistId}}) ডাউনলোড হচ্ছে",
"error-while-downloading": "\"{{author}} - {{title}}\" ডাউনলোড করতে সমস্যা: {{error}}",
"folder-already-exists": "{{playlistFolder}} ফোল্ডারটি ইতিমধ্যে বিদ্যমান",
"getting-playlist-info": "প্লেলিস্ট তথ্য নেওয়া হচ্ছে…",
"loading": "লোড হচ্ছে…",
"playlist-has-only-one-song": "প্লেলিস্টে শুধুমাত্র একটি আইটেম আছে, সরাসরি ডাউনলোড করা হচ্ছে",
"playlist-id-not-found": "কোনো প্লেলিস্ট আইডি পাওয়া যায়নি",
"playlist-is-empty": "প্লেলিস্ট খালি",
"playlist-is-mix-or-private": "প্লেলিস্ট তথ্য পেতে সমস্যা: নিশ্চিত করুন এটি প্রাইভেট বা \"আপনার জন্য মিক্সড\" প্লেলিস্ট নয়\n\n{{error}}",
"preparing-file": "ফাইল প্রস্তুত করা হচ্ছে…",
"saving": "সংরক্ষণ করা হচ্ছে…",
"trying-to-get-playlist-id": "প্লেলিস্ট আইডি পাওয়ার চেষ্টা করা হচ্ছে: {{playlistId}}",
"video-id-not-found": "ভিডিও পাওয়া যায়নি",
"writing-id3": "ID3 ট্যাগ লেখা হচ্ছে…"
}
},
"description": "ইন্টারফেস থেকে সরাসরি MP3 / উৎস অডিও ডাউনলোড করে",
"menu": {
"choose-download-folder": "ডাউনলোড ফোল্ডার বেছে নিন",
"download-finish-settings": {
"label": "শেষ হলে ডাউনলোড করুন",
"prompt": {
"last-percent": "x শতাংশ পরে",
"last-seconds": "শেষ x সেকেন্ড",
"title": "কখন ডাউনলোড করবেন তা কনফিগার করুন"
},
"submenu": {
"advanced": "উন্নত",
"enabled": "সক্রিয়",
"mode": "টাইম মোড",
"percent": "শতাংশ",
"seconds": "সেকেন্ড"
}
},
"download-playlist": "প্লেলিস্ট ডাউনলোড করুন",
"presets": "প্রিসেট",
"skip-existing": "বিদ্যমান ফাইলগুলি এড়িয়ে যান"
},
"name": "ডাউনলোডার",
"renderer": {
"can-not-update-progress": "প্রগ্রেস আপডেট করা যাচ্ছে না"
},
"templates": {
"button": "ডাউনলোড"
}
},
"equalizer": {
"description": "প্লেয়ারে একটি ইকুয়ালাইজার যোগ করে",
"menu": {
"presets": {
"label": "প্রিসেট",
"list": {
"bass-booster": "বেস বুস্টার"
}
}
},
"name": "ইকুয়ালাইজার"
},
"exponential-volume": {
"description": "ভলিউম স্লাইডারকে এক্সপোটেনশিয়াল করে তোলে যাতে কম ভলিউম নির্বাচন করা সহজ হয়।",
"name": "এক্সপোটেনশিয়াল ভলিউম"
},
"in-app-menu": {
"description": "মেনু-বারগুলোকে আকর্ষণীয়, গাঢ় বা অ্যালবাম-রঙের চেহারা দেয়",
"menu": {
"hide-dom-window-controls": "DOM উইন্ডো কন্ট্রোলগুলো লুকান"
},
"name": "অ্যাপ-ভিতরের মেনু"
},
"lumiastream": {
"description": "লুমিয়া স্ট্রিম সমর্থন যোগ করে",
"name": "লুমিয়া স্ট্রিম [বেটা]"
},
"lyrics-genius": {
"description": "বেশিরভাগ গানের জন্য লিরিক্স সমর্থন যোগ করে",
"menu": {
"romanized-lyrics": "রোমানাইজড লিরিক্স"
},
"name": "লিরিক্স জিনিয়াস",
"renderer": {
"fetched-lyrics": "জিনিয়াসের জন্য লিরিক্স সংগ্রহ করা হয়েছে"
}
},
"music-together": {
"description": "অন্যদের সাথে প্লেলিস্ট শেয়ার করুন। যখন হোস্ট একটি গান বাজায়, অন্য সবাই একই গানটি শুনবে",
"dialog": {
"enter-host": "হোস্ট আইডি লিখুন"
},
"internal": {
"save": "সংরক্ষণ করুন",
"track-source": "ট্র্যাক উৎস",
"unknown-user": "অজানা ব্যবহারকারী"
},
"menu": {
"click-to-copy-id": "হোস্ট আইডি কপি করুন",
"close": "মিউজিক টুগেদার বন্ধ করুন",
"connected-users": "সংযুক্ত ব্যবহারকারীরা",
"disconnect": "মিউজিক টুগেদার সংযোগ বিচ্ছিন্ন করুন",
"empty-user": "কোন সংযুক্ত ব্যবহারকারী নেই",
"host": "মিউজিক টুগেদার হোস্ট",
"join": "মিউজিক টুগেদারে যোগ দিন",
"permission": {
"all": "অতিথিদের প্লেলিস্ট এবং প্লেয়ার নিয়ন্ত্রণ করতে দিন",
"host-only": "শুধুমাত্র হোস্ট প্লেলিস্ট এবং প্লেয়ার নিয়ন্ত্রণ করতে পারবেন",
"playlist": "অতিথিদের প্লেলিস্ট নিয়ন্ত্রণ করতে দিন"
},
"set-permission": "নিয়ন্ত্রণ অনুমতি পরিবর্তন করুন",
"status": {
"disconnected": "সংযোগ বিচ্ছিন্ন",
"guest": "অতিথি হিসাবে সংযুক্ত",
"host": "হোস্ট হিসাবে সংযুক্ত"
}
},
"name": "মিউজিক টুগেদার [বেটা]",
"toast": {
"add-song-failed": "গান যোগ করা ব্যর্থ হয়েছে",
"closed": "মিউজিক টুগেদার বন্ধ হয়েছে",
"disconnected": "মিউজিক টুগেদার সংযোগ বিচ্ছিন্ন হয়েছে",
"host-failed": "মিউজিক টুগেদার হোস্ট করা ব্যর্থ হয়েছে",
"id-copied": "হোস্ট আইডি ক্লিপবোর্ডে কপি করা হয়েছে",
"id-copy-failed": "হোস্ট আইডি ক্লিপবোর্ডে কপি করা ব্যর্থ হয়েছে",
"join-failed": "মিউজিক টুগেদারে যোগদান ব্যর্থ হয়েছে",
"joined": "মিউজিক টুগেদারে যোগ দেওয়া হয়েছে",
"permission-changed": "মিউজিক টুগেদার অনুমতি \"{{permission}}\" এ পরিবর্তন করা হয়েছে",
"remove-song-failed": "গান সরানো ব্যর্থ হয়েছে",
"user-connected": "{{name}} মিউজিক টুগেদারে যোগ দিয়েছেন",
"user-disconnected": "{{name}} মিউজিক টুগেদার ছেড়ে চলে গেছেন"
}
},
"navigation": {
"description": "পরবর্তী/পূর্ববর্তী নেভিগেশন তীরগুলি আপনার প্রিয় ব্রাউজারের মতো সরাসরি ইন্টারফেসে অন্তর্ভুক্ত করা হয়েছে",
"name": "নেভিগেশন",
"templates": {
"back": {
"title": "আগের পাতায় যান"
},
"forward": {
"title": "পরের পাতায় যান"
}
}
},
"no-google-login": {
"description": "ইন্টারফেস থেকে Google লগইন বাটন এবং লিঙ্কগুলি সরান",
"name": "গুগল লগইন নয়"
},
"notifications": {
"description": "একটি গান বাজতে শুরু হলে একটি বিজ্ঞপ্তি প্রদর্শন করে (উইন্ডোজে ইন্টারঅ্যাকটিভ বিজ্ঞপ্তিগুলি উপলব্ধ)",
"menu": {
"interactive": "ইন্টারঅ্যাকটিভ বিজ্ঞপ্তিসমূহ",
"interactive-settings": {
"label": "ইন্টারঅ্যাকটিভ সেটিংস",
"submenu": {
"hide-button-text": "বাটন টেক্সট লুকান",
"refresh-on-play-pause": "প্লে/পজে রিফ্রেশ করুন",
"tray-controls": "ট্রে ক্লিকে খুলুন/বন্ধ করুন"
}
},
"priority": "বিজ্ঞপ্তি অগ্রাধিকার",
"toast-style": "টোস্ট স্টাইল",
"unpause-notification": "বিরতি থেকে ফিরলে বিজ্ঞপ্তি দেখান"
},
"name": "বিজ্ঞপ্তিসমূহ"
},
"performance-improvement": {
"description": "পরীক্ষামূলক স্ক্রিপ্টগুলি সক্ষম করে পারফরম্যান্স উন্নত করুন",
"name": "পারফরম্যান্স উন্নতিকরণ [বেটা]"
},
"picture-in-picture": {
"description": "অ্যাপকে পিকচার-ইন-পিকচার মোডে স্যুইচ করতে অনুমতি দেয়",
"menu": {
"always-on-top": "সবসময় উপরে",
"hotkey": {
"label": "হটকি",
"prompt": {
"keybind-options": {
"hotkey": "হটকি"
},
"label": "পিকচার-ইন-পিকচার টগল করার জন্য একটি হটকি নির্বাচন করুন",
"title": "পিকচার-ইন-পিকচার হটকি"
}
},
"save-window-position": "উইন্ডো অবস্থান সংরক্ষণ করুন",
"save-window-size": "উইন্ডো আকার সংরক্ষণ করুন",
"use-native-pip": "ব্রাউজারের নেটিভ PiP ব্যবহার করুন"
},
"name": "পিকচার-ইন-পিকচার",
"templates": {
"button": "পিকচার-ইন-পিকচার"
}
},
"playback-speed": {
"description": "দ্রুত শুনুন, ধীরে শুনুন! গানের গতি নিয়ন্ত্রণ করার জন্য একটি স্লাইডার যোগ করে",
"name": "প্লেব্যাক স্পিড",
"templates": {
"button": "গতি"
}
},
"precise-volume": {
"description": "মাউসহুইল/হটকি ব্যবহার করে সঠিকভাবে ভলিউম নিয়ন্ত্রণ করুন, কাস্টম HUD এবং কাস্টমাইজযোগ্য ভলিউম স্টেপ সহ",
"menu": {
"arrows-shortcuts": "লোকাল অ্যারো-কি কন্ট্রোল",
"custom-volume-steps": "কাস্টম ভলিউম স্টেপ সেট করুন",
"global-shortcuts": "গ্লোবাল হটকি"
},
"name": "নির্ভুল ভলিউম",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "ভলিউম কমান",
"increase": "ভলিউম বাড়ান"
},
"label": "গ্লোবাল ভলিউম কিবাইন্ড নির্বাচন করুন:",
"title": "গ্লোবাল ভলিউম কিবাইন্ড"
},
"volume-steps": {
"label": "ভলিউম বৃদ্ধি/হ্রাস স্টেপ নির্বাচন করুন",
"title": "ভলিউম স্টেপস"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "বর্তমান কোয়ালিটি: {{quality}}",
"message": "ভিডিও কোয়ালিটি নির্বাচন করুন:",
"title": "ভিডিও কোয়ালিটি নির্বাচন করুন"
}
}
},
"description": "ভিডিও ওভারলেতে একটি বাটনের মাধ্যমে ভিডিও কোয়ালিটি পরিবর্তন করতে দেয়",
"name": "ভিডিও কোয়ালিটি পরিবর্তক",
"renderer": {
"quality-settings-button": {
"label": "প্লেয়ারের মান পরিবর্তনের অপশন খুলুন"
}
}
},
"scrobbler": {
"description": "স্ক্রবলিং সমর্থন যোগ করুন (যেমন last.fm, Listenbrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Last.fm এর সাথে প্রমাণীকরণ ব্যর্থ হয়েছে\nপরবর্তী পুনরায় চালু না হওয়া পর্যন্ত পপআপ লুকান।",
"title": "প্রমাণীকরণ ব্যর্থ হয়েছে"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Last.fm API সেটিংস"
},
"listenbrainz": {
"token": "ListenBrainz ব্যবহারকারী টোকেন লিখুন"
},
"scrobble-alternative-title": "বিকল্প শিরোনাম ব্যবহার করুন",
"scrobble-other-media": "অন্যান্য মিডিয়া স্ক্রবল করুন"
},
"name": "স্ক্রবলার",
"prompt": {
"lastfm": {
"api-key": "Last.fm API কি",
"api-secret": "Last.fm API সিক্রেট"
},
"listenbrainz": {
"token": {
"label": "আপনার ListenBrainz ব্যবহারকারী টোকেন লিখুন:",
"title": "ListenBrainz টোকেন"
}
}
}
},
"shortcuts": {
"description": "প্লেব্যাকের জন্য গ্লোবাল হটকি (প্লে/পজ/পরবর্তী/পূর্ববর্তী) সেট করতে এবং মিডিয়া কী ওভাররাইড করে মিডিয়া OSD বন্ধ করতে, Ctrl/CMD + F চালু করে অনুসন্ধান করতে, মিডিয়া কীগুলির জন্য Linux MPRIS সমর্থন চালু করতে এবং অ্যাডভান্সড ব্যবহারকারীদের জন্য কাস্টম হটকি সেট করতে অনুমতি দেয়",
"menu": {
"override-media-keys": "মিডিয়া কী ওভাররাইড করুন",
"set-keybinds": "গ্লোবাল গান কন্ট্রোল সেট করুন"
},
"name": "শর্টকাট (এবং MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "পরবর্তী",
"play-pause": "চালান / বিরতি",
"previous": "পূর্ববর্তী"
},
"label": "গান নিয়ন্ত্রণের জন্য গ্লোবাল কিবাইন্ড নির্বাচন করুন:",
"title": "গ্লোবাল কিবাইন্ড"
}
}
},
"skip-disliked-songs": {
"description": "পছন্দ হয়নি এমন গানগুলো এড়িয়ে যায়",
"name": "অপছন্দ গান এড়ান"
},
"skip-silences": {
"description": "স্বয়ংক্রিয়ভাবে গানের নীরব অংশগুলো এড়িয়ে যান",
"name": "নীরবতা এড়িয়ে যান"
},
"sponsorblock": {
"description": "স্বয়ংক্রিয়ভাবে ইন্ট্রো/আউটট্রো বা মিউজিক ভিডিওর যেসব অংশে গান বাজছে না সেগুলি এড়িয়ে যায়",
"name": "স্পনসরব্লক"
},
"synced-lyrics": {
"description": "LRClib এর মত প্রোভাইডার ব্যবহার করে গানের সাথে সিঙ্ক করা লিরিক্স প্রদান করে।",
"errors": {
"fetch": "⚠️\tলিরিক্স আনার সময় একটি ত্রুটি ঘটেছে।\n\tঅনুগ্রহ করে পরে আবার চেষ্টা করুন।",
"not-found": "⚠️ এই গানের জন্য কোন লিরিক্স পাওয়া যায়নি।"
},
"menu": {
"default-text-string": {
"label": "লিরিক্সের মাঝে ডিফল্ট অক্ষর",
"tooltip": "লিরিক্সের মধ্যে ফাঁকের জন্য ব্যবহৃত ডিফল্ট অক্ষর নির্বাচন করুন"
},
"line-effect": {
"label": "লাইন ইফেক্ট",
"submenu": {
"fancy": {
"label": "ফ্যান্সি",
"tooltip": "বর্তমান লাইনে বড়, অ্যাপের মত ইফেক্ট ব্যবহার করুন"
},
"focus": {
"label": "ফোকাস",
"tooltip": "শুধুমাত্র বর্তমান লাইনটি সাদা করুন"
},
"offset": {
"label": "অফসেট",
"tooltip": "বর্তমান লাইনকে ডানদিকে অফসেট করুন"
},
"scale": {
"label": "স্কেল",
"tooltip": "বর্তমান লাইন স্কেল করুন"
}
},
"tooltip": "বর্তমান লাইনে প্রয়োগ করার জন্য ইফেক্ট নির্বাচন করুন"
},
"precise-timing": {
"label": "লিরিক্স পুরোপুরি সিঙ্ক করুন",
"tooltip": "পরবর্তী লাইন প্রদর্শনের মিলিসেকেন্ড পর্যন্ত গণনা করুন (পারফরম্যান্সে সামান্য প্রভাব পড়তে পারে)"
},
"romanization": {
"label": "লিরিক্স রোমানাইজ করুন",
"tooltip": "যদি লিরিক্স ভিন্ন ভাষায় হয়, তাহলে একটি ল্যাটিন সংস্করণ প্রদর্শন করার চেষ্টা করুন।"
},
"show-lyrics-even-if-inexact": {
"label": "অনির্ভুল হলেও লিরিক্স দেখান",
"tooltip": "যদি গানটি না পাওয়া যায়, প্লাগইনটি একটি ভিন্ন অনুসন্ধান কোয়েরি দিয়ে আবার চেষ্টা করে।\nদ্বিতীয় প্রচেষ্টার ফলাফল সঠিক নাও হতে পারে।"
},
"show-time-codes": {
"label": "টাইম কোড দেখান",
"tooltip": "লিরিক্সের পাশে টাইম কোড দেখান"
}
},
"name": "সিঙ্ক করা লিরিক্স",
"refetch-btn": {
"fetching": "আনছে..।",
"normal": "লিরিক্স পুনরায় আনুন"
},
"warnings": {
"duration-mismatch": "⚠️ - সময়কাল মিলে না যাওয়ার কারণে লিরিক্স সিঙ্ক হতে নাও পারে।",
"inexact": "⚠️ - এই গানের লিরিক্স সঠিক নাও হতে পারে",
"instrumental": "⚠️ - এটি একটি ইনস্ট্রুমেন্টাল গান"
}
},
"taskbar-mediacontrol": {
"description": "উইন্ডোজ টাস্কবার থেকে প্লেব্যাক নিয়ন্ত্রণ করুন",
"name": "টাস্কবার মিডিয়া কন্ট্রোল"
},
"touchbar": {
"description": "macOS ব্যবহারকারীদের জন্য একটি টাচবার উইজেট যোগ করে",
"name": "টাচবার"
},
"tuna-obs": {
"description": "OBS এর প্লাগইন টুনার সাথে সংযোগ",
"name": "টুনা OBS"
},
"unobtrusive-player": {
"description": "গান চালানোর সময় প্লেয়ারকে পপ আপ হওয়া থেকে বিরত রাখে",
"name": "অনাড়ম্বর প্লেয়ার"
},
"video-toggle": {
"description": "ভিডিও/গান মোডের মধ্যে স্যুইচ করার জন্য একটি বাটন যোগ করে। ঐচ্ছিকভাবে সম্পূর্ণ ভিডিও ট্যাবও সরাতে পারে",
"menu": {
"align": {
"label": "সারিবদ্ধকরণ",
"submenu": {
"left": "বাম",
"middle": "মাঝখানে",
"right": "ডান"
}
},
"force-hide": "জোর করে ভিডিও ট্যাব সরান",
"mode": {
"label": "মোড",
"submenu": {
"custom": "কাস্টম টগল",
"disabled": "নিষ্ক্রিয়",
"native": "নেটিভ টগল"
}
}
},
"name": "ভিডিও টগল",
"templates": {
"button-song": "গান",
"button-video": "ভিডিও"
}
},
"visualizer": {
"description": "প্লেয়ারে একটি ভিজ্যুয়ালাইজার যোগ করে",
"menu": {
"visualizer-type": "ভিজ্যুয়ালাইজার প্রকার"
},
"name": "ভিজ্যুয়ালাইজার"
}
}
}

271
src/i18n/resources/bs.json Normal file
View File

@ -0,0 +1,271 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Greška u izvršavanju dodatka {{pluginName}}::{{contextName}}",
"executed-at-ms": "Dodatak {{pluginName}}::{{contextName}} se izvršio za {{ms}}ms",
"initialize-failed": "Greška prilikom inicijalizacije dodatka \"{{pluginName}}\"",
"load-all": "Učitavanje svih dodataka",
"load-failed": "Greška u učitavanju dodatka \"{{pluginName}}\"",
"loaded": "Dodatak \"{{pluginName}}\" učitan",
"unload-failed": "Greška prilikom onesposobljavanja dodatka \"{{pluginName}}\"",
"unloaded": "Dodatak \"{{pluginName}}\" ugašen"
}
}
},
"language": {
"code": "ba",
"local-name": "Bosanski",
"name": "Bosnian"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Završeno učitavanje. DevTools otvoren"
},
"i18n": {
"loaded": "i18n učitan"
},
"second-instance": {
"receive-command": "Comanda primljena preko protokola \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS datoteka \"{{cssFile}}\" ne postoji, ignorišem"
},
"unresponsive": {
"details": "Greška u aplikaciji!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Čistim predmemoriju aplikacije"
},
"window": {
"tried-to-render-offscreen": "Prozor se pokušao prikazati van okvira ekrana, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Meni je sakriven, koristite 'Alt' da ga prikazete (ili 'ESC' ako koristite meni u aplikaciji)",
"message": "Sakrivanje menija je uključeno",
"title": "Meni sakriven"
},
"need-to-restart": {
"buttons": {
"later": "Kasnije",
"restart-now": "Pokreni ponovo odmah"
},
"detail": "\"{{pluginName}}\" dodatak zahtjeva ponovno pokretanje kako bi se uključio",
"message": "\"{{pluginName}}\" potrebno je resetovat",
"title": "Restart je potreban"
},
"unresponsive": {
"buttons": {
"quit": "Napusti",
"relaunch": "Ponovo otvori",
"wait": "Pricekajte"
},
"detail": "Izvinjavamo se zbog zabune! molimo vas da odaberete sta zelite uciniti",
"message": "Aplikacija ne reagira",
"title": "Prozor ne reagira"
},
"update-available": {
"buttons": {
"disable": "Ugasite Nadogradnje",
"download": "Skinuti",
"ok": "OK"
},
"detail": "Nova verzija je dostupna i može biti skinuta na {{downloadLink}}",
"message": "Nova verzija je dostupna",
"title": "Azuriranje dostupno"
}
},
"menu": {
"about": "O nama",
"navigation": {
"label": "Plejer",
"submenu": {
"copy-current-url": "Kopirajte trenutni link",
"go-back": "Idi Nazad",
"go-forward": "Idi Naprijed",
"quit": "Izadji",
"restart": "Restartujte Aplikaciju"
}
},
"options": {
"label": "Opcije",
"submenu": {
"advanced-options": {
"label": "Napredne opcije",
"submenu": {
"auto-reset-app-cache": "Resetuje kes memoriju kad se aplikacija pokrene",
"disable-hardware-acceleration": "Ugasite hardversko ubrzanje",
"edit-config-json": "Uredite config.json",
"override-user-agent": "Nadjacaj User-Agent",
"restart-on-config-changes": "Ponovno pokretanje nakon promjena konfiguracije",
"set-proxy": {
"label": "Postavi proxy",
"prompt": {
"label": "Unesite adresu proxyja: (ostavite prazno za onemogućavanje)",
"placeholder": "Primjer: SOCKS5://127.0.0.1:9999",
"title": "Postavi proxy"
}
},
"toggle-dev-tools": "Uključi/isključi DevTools"
}
},
"always-on-top": "Uvijek na vrhu",
"auto-update": "Automatski Update",
"hide-menu": {
"dialog": {
"message": "Meni će biti skriven pri sljedećem pokretanju, koristite [Alt] da ga prikažete (ili upotrijebite [`] ako koristite meni u aplikaciji)",
"title": "Sakrij meni omogućen"
},
"label": "Sakrij meni"
},
"language": {
"dialog": {
"message": "Jezik će se promijeniti nakon ponovnog pokretanja",
"title": "Jezik je uspješno promjenjen"
},
"label": "Jezik",
"submenu": {
"to-help-translate": "Želite da pomognete s prijevodom? Kliknite ovdje"
}
},
"resume-on-start": "Nastavi posljednju pjesmu pri sljedećem pokretaju",
"single-instance-lock": "Sprječavanje višestrukog pokretanja",
"start-at-login": "Pokreni čim se prijavite",
"starting-page": {
"label": "Početna stranica",
"unset": "Ukinite postavu"
},
"tray": {
"label": "Tacna",
"submenu": {
"disabled": "Onemogućeno",
"enabled-and-hide-app": "Tacna je uključena, i prozor aplikacije skrijte",
"enabled-and-show-app": "Tacna je uključena, i prozor aplikacije prikažite",
"play-pause-on-click": "Pokreni/Zaustavi na klik"
}
},
"visual-tweaks": {
"label": "Vizualne postavke",
"submenu": {
"custom-window-title": {
"label": "Prilagođeni naslov prozora",
"prompt": {
"label": "Unesite vlastiti naslov prozora: (ostavite prazno za isključenje)",
"placeholder": "Primjer: {{applicationName}}"
}
},
"like-buttons": {
"default": "Zadano",
"force-show": "Prinudno prikaži",
"hide": "Sakrij",
"label": "'Sviđa mi se' dugmadi"
},
"remove-upgrade-button": "Ukloni dugme za nadogradnju",
"theme": {
"dialog": {
"button": {
"cancel": "Otkaži",
"remove": "Ukloni"
},
"remove-theme": "Jeste li sigurni da želite ukloniti prilagođenu temu?",
"remove-theme-message": "Ovo će ukloniti prilagođenu temu"
},
"label": "Tema",
"submenu": {
"import-css-file": "Uvoz prilagođene CSS datoteke",
"no-theme": "Bez teme"
}
}
}
}
}
},
"plugins": {
"enabled": "Omogućeno",
"label": "Dodaci",
"new": "Novo"
},
"view": {
"label": "Pogled",
"submenu": {
"force-reload": "Silom Ponovo Učitaj",
"reload": "Ponovo Učitaj",
"reset-zoom": "Stvarna Veličina",
"toggle-fullscreen": "Uključi/Isključi Prikaz Cijelog Ekrana",
"zoom-in": "Uvećaj",
"zoom-out": "Umanji"
}
}
},
"tray": {
"next": "Slijedeće",
"play-pause": "Plej/Pauza",
"previous": "Prethodno",
"quit": "Izlaz",
"restart": "Ponovo Pokreni Aplikaciju",
"show": "Pokaži prozor",
"tooltip": {
"default": "{{applicationName}}"
}
}
},
"plugins": {
"ambient-mode": {
"menu": {
"quality": {
"label": "Kvalitet"
}
}
},
"discord": {
"menu": {
"set-status-display-type": {
"submenu": {
"application": "Slušate {{applicationName}}",
"artist": "Slušate {muzičar}",
"title": "Slušate {naziv pesme}"
}
}
},
"name": "Diskord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "Unesi ograničenje neaktivnosti u sekundama:",
"title": "Postavi ograničenje neaktivnosti"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "OK"
},
"message": "Ufff! Izvinite, preuzimanje nije uspelo…",
"title": "Greška u preuzimanju!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"detail": "({{Playlist Size}} pjesme)",
"message": "Preuzimanje Plejliste {{playlist Title}}",
"title": "Preuzimanje počelo"
}
},
"feedback": {
"conversion-progress": "Pretvaranje: {{percent}}%",
"converting": "Pretvaranje…",
"done": "Gotovo: {{file Path}}",
"download-info": "Preuzimanje {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Preuzimanje: {{percent}}%",
"downloading": "Preuzimanje…"
}
}
}
}
}

951
src/i18n/resources/ca.json Normal file
View File

@ -0,0 +1,951 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Error en l'execució de l'extensió {{pluginName}}::{{contextName}}",
"executed-at-ms": "L'extensió {{pluginName}}::{{contextName}} s'ha executat als {{ms}}ms",
"initialize-failed": "Ha fallat la inicialització de l'extensió \"{{pluginName}}\"",
"load-all": "Carregant totes les extensions",
"load-failed": "Error en carregar l'extensió «{{pluginName}}»",
"loaded": "L'extensió «{{pluginName}}» s'ha carregat",
"unload-failed": "Error en deshabilitar l'extensió «{{pluginName}}»",
"unloaded": "Extensió «{{pluginName}}» deshabilitada"
}
}
},
"language": {
"code": "ca",
"local-name": "Català",
"name": "Catalan"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Càrrega finalitzada. S'han obert les DevTools"
},
"i18n": {
"loaded": "i18n carregat"
},
"second-instance": {
"receive-command": "Comanda rebuda a través del protocol: «{{command}}»"
},
"theme": {
"css-file-not-found": "L'arxiu CSS «{{cssFile}}» no existeix, s'ha ignorat"
},
"unresponsive": {
"details": "Error sense resposta!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Netejant la memòria cau de l'aplicació"
},
"window": {
"tried-to-render-offscreen": "La finestra s'ha intentat mostrar fora de la pantalla, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "El menú es troba amagat, premi «Alt» per mostrar-lo (o «Escapament» si utilitza el menú integrat In-App)",
"message": "S'ha habilitat l'amagament del menú",
"title": "Amagament del menú habilitat"
},
"need-to-restart": {
"buttons": {
"later": "Més tard",
"restart-now": "Reinicia ara"
},
"detail": "L'extensió «{{pluginName}}» requereix reiniciar l'aplicació per fer tenir efecte",
"message": "\"{{pluginName}}\" necessita reiniciar-se",
"title": "Es requereix reiniciar"
},
"unresponsive": {
"buttons": {
"quit": "Marxar",
"relaunch": "Rellançar",
"wait": "Espera"
},
"detail": "Ho sentim per les molèsties! si us plau, tria què fer:",
"message": "L'aplicació ha deixat de respondre",
"title": "La finestra ha deixat de respondre"
},
"update-available": {
"buttons": {
"disable": "Deshabilita les actualitzacions",
"download": "Descarrega",
"ok": "D'acord"
},
"detail": "Hi ha una nova versió disponible i pot ser descarregada a {{downloadLink}}",
"message": "Hi ha una nova versió disponible",
"title": "Actualització disponible"
}
},
"menu": {
"about": "Quant a",
"navigation": {
"label": "Navegació",
"submenu": {
"copy-current-url": "Copia l'URL actual",
"go-back": "Ves enrere",
"go-forward": "Ves endavant",
"quit": "Surt",
"restart": "Reinicia l'aplicació"
}
},
"options": {
"label": "Opcions",
"submenu": {
"advanced-options": {
"label": "Opcions avançades",
"submenu": {
"auto-reset-app-cache": "Reinicialitza la memòria cau de l'aplicació quan es reiniciï",
"disable-hardware-acceleration": "Deshabilita l'acceleració per hardware",
"edit-config-json": "Edita el config.json",
"override-user-agent": "Sobreescriu l'agent d'usuari (User-Agent)",
"restart-on-config-changes": "Reinicia quan es canviï la configuració",
"set-proxy": {
"label": "Definir servidor intermediari (proxy)",
"prompt": {
"label": "Introduir l'adreça del servidor intermediari: (deixar en blanc per deshabilitar)",
"placeholder": "Exemple: SOCKS5://127.0.0.1:9999",
"title": "Definir servidor intermediari (proxy)"
}
},
"toggle-dev-tools": "Commuta les DevTools"
}
},
"always-on-top": "Mostra sempre per sobre",
"auto-update": "Actualitza automàticament",
"hide-menu": {
"dialog": {
"message": "El menú s'amagarà la següent vegada que s'iniciï l'aplicació, prem «Alt» per mostrar-lo (o accent obert « ` » si utilitza el menú integrat In-App)",
"title": "Amagament del menú habilitat"
},
"label": "Amaga el menú"
},
"language": {
"dialog": {
"message": "L'idioma es canviarà un cop es reiniciï",
"title": "Idioma canviat"
},
"label": "Idioma",
"submenu": {
"to-help-translate": "Vols ajudar a traduir? Clica aquí"
}
},
"resume-on-start": "Reprèn l'última cançó quan s'inicia l'aplicació",
"single-instance-lock": "Bloqueja en una única instància",
"start-at-login": "Obre a l'iniciar sessió",
"starting-page": {
"label": "Pàgina d'inici",
"unset": "Sense establir"
},
"tray": {
"label": "Safata d'icones",
"submenu": {
"disabled": "Deshabilitat",
"enabled-and-hide-app": "Mostra la icona i amaga l'aplicació",
"enabled-and-show-app": "Mostra la icona i mostra l'aplicació",
"play-pause-on-click": "Reprodueix / pausa en clicar"
}
},
"visual-tweaks": {
"label": "Opcions visuals",
"submenu": {
"custom-window-title": {
"label": "Títol personalitzat de la finestra",
"prompt": {
"label": "Introdueix un títol personalitzat per a la finestra (deixa-ho buit per deshabilitar-ho)",
"placeholder": "Exemple: {{applicationName}}"
}
},
"like-buttons": {
"default": "Per defecte",
"force-show": "Força que es mostri",
"hide": "Amaga",
"label": "Botons de «m'agrada»"
},
"remove-upgrade-button": "Elimina el botó «Actualitza a Music Premium»",
"theme": {
"dialog": {
"button": {
"cancel": "Cancel·la",
"remove": "Elimina"
},
"remove-theme": "De debó vols eliminar el tema personalitzat?",
"remove-theme-message": "Això eliminarà el tema personalitzat"
},
"label": "Tema",
"submenu": {
"import-css-file": "Importa un arxiu CSS personalitzat",
"no-theme": "Cap tema"
}
}
}
}
}
},
"plugins": {
"enabled": "Habilitat",
"label": "Extensions",
"new": "NOU"
},
"view": {
"label": "Veure",
"submenu": {
"force-reload": "Força la recàrrega",
"reload": "Recarrega",
"reset-zoom": "Mida real",
"toggle-fullscreen": "Commuta la pantalla completa",
"zoom-in": "Apropa el zoom",
"zoom-out": "Allunya el zoom"
}
}
},
"tray": {
"next": "Següent",
"play-pause": "Reprodueix/Pausa",
"previous": "Anterior",
"quit": "Tanca",
"restart": "Reinicia l'aplicació",
"show": "Mostra la finestra",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Si es reprodueix un anunci, silencia l'àudio i el reprodueix a la velocitat 16x",
"name": "Accelera els anuncis"
},
"adblocker": {
"description": "Bloqueja tots els anuncis i el seguiment",
"menu": {
"blocker": "Bloquejador"
},
"name": "Bloquejador d'anuncis"
},
"album-actions": {
"description": "Afegeix botons de «no m'agrada / retirar el no m'agrada» i «m'agrada / retirar el m'agrada» per aplicar-ho a totes les cançons en una llista de reproducció o àlbum",
"name": "Accions a l'àlbum"
},
"album-color-theme": {
"description": "Aplica un tema dinàmic i efectes visuals basats en la paleta de colors de l'àlbum",
"menu": {
"color-mix-ratio": {
"label": "Proporció de la barreja de colors",
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Activar el tema en la barra de progrés"
},
"name": "Tema de color de l'àlbum"
},
"ambient-mode": {
"description": "Aplica un efecte d'il·luminació que projecta colors difusos del vídeo al fons de la pantalla",
"menu": {
"blur-amount": {
"label": "Quantitat de desenfocament",
"submenu": {
"pixels": "{{blurAmount}} píxels"
}
},
"buffer": {
"label": "Buffer",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Opacitat",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Qualitat",
"submenu": {
"pixels": "{{quality}} píxels"
}
},
"size": {
"label": "Mida",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Transició suau",
"submenu": {
"during": "Durant {{interpolationTime}} s"
}
},
"use-fullscreen": {
"label": "Utilitza en pantalla completa"
}
},
"name": "Mode ambient"
},
"amuse": {
"description": "Afegeix suport a {{applicationName}} per el widget \"now playing\" d'Amuse per 6K Labs",
"name": "Amuse",
"response": {
"query": "L'API del servidor de Amuse està funcionant. GET /query per tenir informació de la cançó."
}
},
"api-server": {
"description": "Afegeix un servidor API per controlar el reproductor",
"dialog": {
"request": {
"buttons": {
"allow": "Permet",
"deny": "Denegar"
},
"message": "Permetre que {{ID}} ({{origin}}) accedeixi a l'API?",
"title": "Petició d'autorització API"
}
},
"menu": {
"auth-strategy": {
"label": "Estratègia d'autorització",
"submenu": {
"auth-at-first": {
"label": "Autoritza a la primera petició"
},
"none": {
"label": "Sense autorització"
}
}
},
"hostname": {
"label": "Nom del host"
},
"port": {
"label": "Port"
}
},
"name": "Servidor API [Beta]",
"prompt": {
"hostname": {
"label": "Introdueix el nom del host (per exemple 0.0.0.0) pel servidor API:",
"title": "Nom del host"
},
"port": {
"label": "Introdueix el port pel servidor API:",
"title": "Port"
}
}
},
"audio-compressor": {
"description": "Aplica compressió a l'àudio (baixa el volum de les parts més sorolloses de la senyal d'àudio i puja el volum de les parts més fluixes)",
"name": "Compressió d'àudio"
},
"auth-proxy-adapter": {
"description": "Suport per l'ús de servidors d'autenticació proxy",
"menu": {
"disable": "Desactivar adaptador Proxy",
"enable": "Activar adaptador Proxy",
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "Adaptador de proxy d'autenticació",
"prompt": {
"hostname": {
"label": "Posa hostname pel servidor del proxy local (requereix reiniciar):",
"title": "Hostname del proxy"
},
"port": {
"label": "Entra un port pel servidor local del proxy (requereix reiniciar):",
"title": "Port proxy"
}
}
},
"blur-nav-bar": {
"description": "Desenfoca i aplica transparència a la barra de navegació",
"name": "Desenfoca la barra de navegació"
},
"bypass-age-restrictions": {
"description": "Esquiva la verificació d'edat de Music Player",
"name": "Esquiva les restriccions d'edat"
},
"captions-selector": {
"description": "Selector de subtítols per les pistes d'àudio de {{applicationName}}",
"menu": {
"autoload": "Selecciona automàticament l'últim subtítol emprat",
"disable-captions": "Sense subtítols per defecte"
},
"name": "Selector de subtítols",
"prompt": {
"selector": {
"label": "Idioma actual dels subtítols: {{language}}",
"none": "Cap",
"title": "Selecciona l'idioma dels subtítols"
}
},
"templates": {
"title": "Obra el selector de subtítols"
},
"toast": {
"caption-changed": "Subtítols canviats a {{language}}",
"caption-disabled": "Subtítols desactivats",
"no-captions": "Subtítols no disponibles per aquesta cançó"
}
},
"compact-sidebar": {
"description": "Sempre mostrar la barra lateral en mode compacte",
"name": "Barra lateral compacta"
},
"crossfade": {
"description": "Transició creuada (crossfade) entre cançons",
"menu": {
"advanced": "Avançat"
},
"name": "Transició creuada [Beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Durada de la transició d'entrada (ms)",
"fade-out-duration": "Durada de la transició de sortida (ms)",
"fade-scaling": {
"label": "Escala de la transició",
"linear": "Linear",
"logarithmic": "Logarítmica"
},
"seconds-before-end": "Transiciona N segons abans del final"
},
"title": "Opcions de transició creuada"
}
}
},
"custom-output-device": {
"description": "Configura un dispositiu multimèdia de sortida personalitzat per a cançons",
"menu": {
"device-selector": "Selecciona un dispositiu"
},
"name": "Dispositiu de sortida personalitzat",
"prompt": {
"device-selector": {
"label": "Trieu el dispositiu de sortida que s'utilitzarà",
"title": "Escull el dispositiu de sortida"
}
}
},
"disable-autoplay": {
"description": "Fa que la cançó comenci en mode «pausat»",
"menu": {
"apply-once": "Tan sols s'aplica a l'inici"
},
"name": "Deshabilita la reproducció automàtica"
},
"discord": {
"backend": {
"already-connected": "S'ha intentat connectar amb una connexió activa",
"connected": "Connectat a Discord",
"disconnected": "Desconnectat de Discord"
},
"description": "Mostra als teus amics allò que escoltes a l'estat d'activitat",
"menu": {
"auto-reconnect": "Reconnecta automàticament",
"clear-activity": "Esborra l'activitat",
"clear-activity-after-timeout": "Esborra l'activitat al cap d'un temps",
"connected": "Connectat",
"disconnected": "Desconnectat",
"hide-duration-left": "Amaga la durada restant",
"hide-github-button": "Amaga el botó de l'enllaç a GitHub",
"play-on-application": "Reprodueix a {{applicationName}}",
"set-inactivity-timeout": "Estableix temps d'espera d'inactivitat",
"set-status-display-type": {
"label": "Text d'estat",
"submenu": {
"artist": "Escoltant {artist}",
"application": "Escoltant {{applicationName}}",
"title": "Escoltant {song title}"
}
}
},
"name": "Estat d'activitat de Discord",
"prompt": {
"set-inactivity-timeout": {
"label": "Introdueix el temps d'espera d'inactivitat en segons:",
"title": "Estableix el temps d'espera d'inactivitat"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "D'acord"
},
"message": "Caram! Ho sentim, ha fallat la descàrrega…",
"title": "Error a la descàrrega!"
},
"start-download-playlist": {
"buttons": {
"ok": "D'acord"
},
"detail": "({{playlistSize}} cançons)",
"message": "Descarregant llista de reproducció {{playlistTitle}}",
"title": "Descàrrega començada"
}
},
"feedback": {
"conversion-progress": "Conversió: {{percent}}%",
"converting": "Convertint…",
"done": "Fet: {{filePath}}",
"download-info": "Descarregant {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Descàrrega: {{percent}}%",
"downloading": "Descarregant…",
"downloading-counter": "Descarregant {{current}}/{{total}}…",
"downloading-playlist": "Descarregant la llista de reproducció «{{playlistTitle}}» - {{playlistSize}} cançons ({{playlistId}})",
"error-while-downloading": "Error al descarregar «{{author}} - {{title}}»: {{error}}",
"folder-already-exists": "La carpeta {{playlistFolder}} ja existeix",
"getting-playlist-info": "Obtenint la informació de la llista de reproducció…",
"loading": "Carregant…",
"playlist-has-only-one-song": "La llista de reproducció té un sol element, descarregant-lo directament",
"playlist-id-not-found": "No s'ha trobat cap ID de llista de reproducció",
"playlist-is-empty": "La llista de reproducció és buida",
"playlist-is-mix-or-private": "Error obtenint la informació de la llista de reproducció: assegura't que no és una llista de reproducció privada o de «Mixos per a tu»\n\n{{error}}",
"preparing-file": "Preparant arxiu…",
"saving": "Desant…",
"trying-to-get-playlist-id": "Intentant obtenir l'ID de la llista de reproducció: {{playlistId}}",
"video-id-not-found": "Vídeo no trobat",
"writing-id3": "Escrivint les etiquetes ID3…"
}
},
"description": "Descarrega el MP3 / àudio d'origen directament des de la interfície",
"menu": {
"choose-download-folder": "Tria la carpeta de descàrrega",
"download-finish-settings": {
"label": "Descarrega en finalitzar",
"prompt": {
"last-percent": "Desprès del x percent",
"last-seconds": "Últims x segons",
"title": "Configura quan descarregar"
},
"submenu": {
"advanced": "Avançat",
"enabled": "Habilitat",
"mode": "Mode de temps",
"percent": "Percentatge",
"seconds": "Segons"
}
},
"download-playlist": "Descarrega la llista de reproducció",
"presets": "Configuracions predefinides",
"skip-existing": "Omet els arxius existents"
},
"name": "Descàrregues",
"renderer": {
"can-not-update-progress": "No es pot actualitzar el progrés"
},
"templates": {
"button": "Descarrega"
}
},
"equalizer": {
"description": "Afegeix un equalitzador al reproductor",
"menu": {
"presets": {
"label": "Predefinits",
"list": {
"bass-booster": "Augmentar baixos"
}
}
},
"name": "Equalitzador"
},
"exponential-volume": {
"description": "Fa que el control lliscant del volum sigui exponencial per que sigui més fàcil seleccionar volums més baixos.",
"name": "Volum exponencial"
},
"in-app-menu": {
"description": "Fa que la barra de menú superior tingui un elegant aspecte fosc o basat en el color de l'àlbum",
"menu": {
"hide-dom-window-controls": "Amaga els controls de la finestra del DOM"
},
"name": "Menú integrat In-App"
},
"lumiastream": {
"description": "Afegeix suport pel Lumia Stream",
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "Afegeix suport per la lletra de la majoria de cançons",
"menu": {
"romanized-lyrics": "Lletra romanitzada"
},
"name": "Lletres de Genius",
"renderer": {
"fetched-lyrics": "S'ha buscat la lletra a Genius"
}
},
"music-together": {
"description": "Comparteix una llista de reproducció amb els demés. Quan l'amfitrió reprodueix una cançó, la resta també sentiran la mateixa",
"dialog": {
"enter-host": "Introdueix l'ID de l'amfitrió"
},
"internal": {
"save": "Desa",
"track-source": "Origen de la pista",
"unknown-user": "Usuari desconegut"
},
"menu": {
"click-to-copy-id": "Copia l'ID d'amfitrió",
"close": "Tanca el Music Together",
"connected-users": "Usuaris connectats",
"disconnect": "Desconnecta el Music Together",
"empty-user": "No hi ha usuaris connectats",
"host": "Amfitrió de Music Together",
"join": "Uneix-te a Music Together",
"permission": {
"all": "Permet que els convidats controlin la llista de reproducció i el reproductor",
"host-only": "Tan sols l'amfitrió pot controlar la llista de reproducció i el reproductor",
"playlist": "Permet que els convidats controlin la llista de reproducció"
},
"set-permission": "Canvia els permisos de control",
"status": {
"disconnected": "Desconnectat",
"guest": "Connectat com a convidat",
"host": "Connectat com amfitrió"
}
},
"name": "Music Together [Beta]",
"toast": {
"add-song-failed": "Error al afegir la cançó",
"closed": "Music Together tancat",
"disconnected": "Music Together desconnectat",
"host-failed": "No s'ha pogut començar el Music Together",
"id-copied": "L'ID d'amfitrió s'ha copiat al porta-retalls",
"id-copy-failed": "Error al copiar l'ID d'amfitrió al porta-retalls",
"join-failed": "Error al unir-se al Music Together",
"joined": "T'has unit al Music Together",
"permission-changed": "Els permisos de Music Together han canviat a «{{permission}}»",
"remove-song-failed": "Error al eliminar la cançó",
"user-connected": "{{name}} s'ha unit al Music Together",
"user-disconnected": "{{name}} s'ha desconnectat del Music Together"
}
},
"navigation": {
"description": "Fletxes de navegació Següent / Enrere integrades directament a la interfície, com al teu navegador preferit",
"name": "Navegació",
"templates": {
"back": {
"title": "Pàgina anterior"
},
"forward": {
"title": "Pàgina següent"
}
}
},
"no-google-login": {
"description": "Elimina els botons d'inici de sessió de Google de la interfície",
"name": "Amaga l'inici de sessió de Google"
},
"notifications": {
"description": "Mostra una notificació quan una cançó es comença a reproduir (les notificacions interactives estan disponibles a Windows)",
"menu": {
"interactive": "Notificacions interactives",
"interactive-settings": {
"label": "Configuració interactiva",
"submenu": {
"hide-button-text": "Amaga text del botó",
"refresh-on-play-pause": "Recarrega al Reproduir/Pausar",
"tray-controls": "Obra/Tanca en clicar a la safata"
}
},
"priority": "Prioritat de les notificacions",
"toast-style": "Estil dels missatges emergents",
"unpause-notification": "Mostra notificació en reprendre la reproducció"
},
"name": "Notificacions"
},
"performance-improvement": {
"description": "Millora el rendiment habilitant scripts experimentals",
"name": "Millora del rendiment [Beta]"
},
"picture-in-picture": {
"description": "Permet commutar el mode d'imatge en imatge (PiP)",
"menu": {
"always-on-top": "Mostra sempre a sobre",
"hotkey": {
"label": "Drecera del teclat",
"prompt": {
"keybind-options": {
"hotkey": "Drecera del teclat"
},
"label": "Tria una drecera per commutar el mode d'imatge en imatge (PiP)",
"title": "Drecera del mode imatge en imatge (PiP)"
}
},
"save-window-position": "Desa la posició de la finestra",
"save-window-size": "Desa la mida de la finestra",
"use-native-pip": "Utilitza l'imatge en imatge (PiP) nativa del navegador"
},
"name": "Imatge en imatge (PiP)",
"templates": {
"button": "Imatge en imatge (PiP)"
}
},
"playback-speed": {
"description": "Escolta-ho ràpid, escolta-ho lent! Afegeix un control lliscant per canviar la velocitat de la cançó",
"name": "Velocitat de la reproducció",
"templates": {
"button": "Velocitat"
}
},
"precise-volume": {
"description": "Controla el volum de manera precisa a través de la rodeta del ratolí / dreceres del teclat, amb una interfície personalitzada i passos de volum personalitzats",
"menu": {
"arrows-shortcuts": "Controls locals de tecles de fletxa",
"custom-volume-steps": "Estableix passos de volum personalitzats",
"global-shortcuts": "Dreceres de teclat globals"
},
"name": "Volum precís",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Baixa el volum",
"increase": "Puja el volum"
},
"label": "Tria les dreceres globals de volum:",
"title": "Dreceres globals de volum"
},
"volume-steps": {
"label": "Tria els passos d'augment o disminució del volum",
"title": "Passos de volum"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Qualitat actual: {{quality}}",
"message": "Tria la qualitat del vídeo:",
"title": "Tria la qualitat del vídeo"
}
}
},
"description": "Permet canviar la qualitat del vídeo amb un botó que s'hi mostra a sobre",
"name": "Botó de qualitat del vídeo",
"renderer": {
"quality-settings-button": {
"label": "Obre les opcions de qualitat del reproductor"
}
}
},
"scrobbler": {
"description": "Afegeix suport per scrobbling (Last.fm, ListenBrainz, etc.)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Error al autenticar amb Last.fm\nAmaga la finestra emergent fins el següent reinici.",
"title": "Error d'autenticació"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Configuració de l'API de Last.fm"
},
"listenbrainz": {
"token": "Introduir token d'usuari de ListenBrainz"
},
"scrobble-alternative-artist": "Utilitza artistes alternatius",
"scrobble-alternative-title": "Useu títols alternatius",
"scrobble-other-media": "Scrobble amb altres mitjans"
},
"name": "Scrobbler",
"prompt": {
"lastfm": {
"api-key": "Clau d'API de Last.fm",
"api-secret": "Clau secreta de l'API de Last.fm"
},
"listenbrainz": {
"token": {
"label": "Introdueix el teu token de ListenBrainz:",
"title": "Token de ListenBrainz"
}
}
}
},
"shortcuts": {
"description": "Permet l'ús de dreceres globals del teclat per la reproducció (reproduir/pausar/següent/anterior) i desactivar l'OSD dels mitjans en sobreescriure les tecles de control multimèdia, habilita el Ctrl/CMD + F per buscar, habilita el suport MPRIS a Linux per tecles de control multimèdia, i dreceres de teclat personalitzades per usuaris avançats",
"menu": {
"override-media-keys": "Sobreescriu les tecles de control multimèdia",
"set-keybinds": "Estableix controls globals de les cançons"
},
"name": "Dreceres i MPRIS",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Següent",
"play-pause": "Reproduir / Pausar",
"previous": "Anterior"
},
"label": "Tria combinacions de tecles per controlar les cançons:",
"title": "Dreceres globals"
}
}
},
"skip-disliked-songs": {
"description": "Salta les cançons amb «no m'agrada»",
"name": "Salta les cançons que no t'agraden"
},
"skip-silences": {
"description": "Omet automàticament les seccions amb silenci a les cançons",
"name": "Omet els silencis"
},
"sponsorblock": {
"description": "Omet automàticament els segments dels vídeos que no son música, com la intro o el final",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "Proporciona lletres sincronitzades amb les cançons, a través de proveïdors com LRClib.",
"errors": {
"fetch": "⚠️\tS'ha produït un error en descarregar la lletra.\n\tSi us plau, intenta-ho més tard.",
"not-found": "⚠️ No s'ha trobat la lletra per aquesta cançó."
},
"menu": {
"default-text-string": {
"label": "Caràcter per defecte entre lletres",
"tooltip": "Tria el caràcter per defecte que es mostrarà a l'espai entre les lletres"
},
"line-effect": {
"label": "Efecte de la línia",
"submenu": {
"fancy": {
"label": "Caprici",
"tooltip": "Utilitza efectes grans \"app-like\" en la línia actual"
},
"focus": {
"label": "Focus",
"tooltip": "Mostra tan sols la línia actual en blanc"
},
"offset": {
"label": "Desplaçament",
"tooltip": "Desplaçament a la dreta de la línia actual"
},
"scale": {
"label": "Escala",
"tooltip": "Redimensiona la línia actual"
}
},
"tooltip": "Tria l'efecte a aplicar a la línia actual"
},
"precise-timing": {
"label": "Fes que les lletres es sincronitzin a la perfecció",
"tooltip": "Calcula al mil·lisegon l'aparició de la següent línia (pot tenir un petit impacte en el rendiment)"
},
"preferred-provider": {
"label": "Proveïdor preferit",
"none": {
"label": "Cap",
"tooltip": "Cap proveïdor preferit"
},
"tooltip": "Trieu el proveïdor predeterminat que voleu utilitzar"
},
"romanization": {
"label": "Romanitza les lletres",
"tooltip": "Si les lletres són en un idioma diferent, intenta mostrar la versió amb alfabet llatí."
},
"show-lyrics-even-if-inexact": {
"label": "Mostra la lletra tot i que sigui inexacta",
"tooltip": "Si no es troba la cançó, el plugin torna a intentar obtenir la lletra amb una cerca diferent.\nEl resultat d'aquesta segona cerca podria no ser exacte."
},
"show-time-codes": {
"label": "Mostra els codis de temps",
"tooltip": "Mostra els codis de temps al costat de la lletra"
}
},
"name": "Lletres sincronitzades",
"refetch-btn": {
"fetching": "Obtenint...",
"normal": "Tornar a obtenir la lletra"
},
"warnings": {
"duration-mismatch": "⚠️ - La lletra podria no estar ben sincronitzada, la durada no és coincident.",
"inexact": "⚠️ - La lletra d'aquesta cançó podria no ser exacta",
"instrumental": "⚠️ - Aquesta cançó és instrumental"
}
},
"taskbar-mediacontrol": {
"description": "Controla la reproducció des de la barra de tasques del Windows",
"name": "Control multimèdia a la barra de tasques"
},
"touchbar": {
"description": "Afegeix un giny a la Touch Bar per usuaris de macOS",
"name": "TouchBar"
},
"transparent-player": {
"description": "Fa la finestra de l'aplicació transparent",
"menu": {
"opacity": {
"label": "Opacitat",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Tipus",
"submenu": {
"acrylic": "Acrílic",
"mica": "Mica",
"none": "Cap",
"tabbed": "En pestanyes"
}
}
},
"name": "Reproductor Transparent"
},
"tuna-obs": {
"description": "Integració amb l'extensió «Tuna» del OBS",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Impedeix que salti el reproductor mentre se sent una cançó",
"name": "Reproductor Discret"
},
"video-toggle": {
"description": "Afegeix un botó per commutar entre el mode de vídeo o de cançó. Opcionalment, es pot eliminar la pestanya de vídeo per complet",
"menu": {
"align": {
"label": "Alineament",
"submenu": {
"left": "Esquerra",
"middle": "Mig",
"right": "Dreta"
}
},
"force-hide": "Força amagar la pestanya de vídeo",
"mode": {
"label": "Mode",
"submenu": {
"custom": "Commutador personalitzat",
"disabled": "Deshabilitat",
"native": "Commutador nadiu"
}
}
},
"name": "Botó de vídeo",
"templates": {
"button-song": "Cançó",
"button-video": "Vídeo"
}
},
"visualizer": {
"description": "Afegeix un visualitzador al reproductor",
"menu": {
"visualizer-type": "Tipus de visualitzador"
},
"name": "Visualitzador"
}
}
}

View File

@ -8,7 +8,7 @@
"load-all": "Načítání všech pluginů",
"load-failed": "Selhalo načtení \"{{pluginName}}\" pluginu",
"loaded": "Plugin \"{{pluginName}}\" načten",
"unload-failed": "Selhalo unload \"{{pluginName}}\" pluginu",
"unload-failed": "Selhalo vypnutí \"{{pluginName}}\" pluginu",
"unloaded": "Plugin {{pluginName}} byl odnačten"
}
}
@ -39,12 +39,12 @@
"clearing-cache-after-20s": "Čištění mezipaměti aplikace"
},
"window": {
"tried-to-render-offscreen": "Okno se pokusilo vykreslit na pozadí, velikost okna = {{windowSize}}, display velikost = {{displaySize}}, pozice = {{position}}"
"tried-to-render-offscreen": "Okno se pokusilo vykreslit na pozadí, velikost okna = {{windowSize}}, zobrazovací velikost = {{displaySize}}, pozice = {{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Menu je skryté, stiskněte 'Alt' k jeho zobrazení (nebo 'Escape', pokud používáte in-app-menu)",
"detail": "Menu je skryté, stiskněte 'Alt' k jeho zobrazení (nebo 'ESC', pokud používáte vestavěné menu)",
"message": "Skrýt menu je povoleno",
"title": "Skrýt menu Povolené"
},
@ -150,6 +150,13 @@
"visual-tweaks": {
"label": "Vzhledové vylepšení",
"submenu": {
"custom-window-title": {
"label": "Vlastní název okna",
"prompt": {
"label": "Zadejte vlastní název okna: (zanechejte prázdné pro zakázání)",
"placeholder": "Příklad: {{applicationName}}"
}
},
"like-buttons": {
"default": "Výchozí",
"force-show": "Vynutit zobrazení",
@ -158,6 +165,14 @@
},
"remove-upgrade-button": "Odebrat upgrade tlačítko",
"theme": {
"dialog": {
"button": {
"cancel": "zrušit",
"remove": "Odstranit"
},
"remove-theme": "Jste si jisti že chcete odstranit tento vlastní motiv?",
"remove-theme-message": "Tohle odstraní vlastní motiv"
},
"label": "Motiv",
"submenu": {
"import-css-file": "Vložit vlastní CSS soubor",
@ -191,27 +206,43 @@
"previous": "Minulý",
"quit": "Ukončit",
"restart": "Restartovat aplikaci",
"show": "Zobrazit okno"
"show": "Zobrazit okno",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Pokud se přehraje reklama tak ztlumí zvuk a nastaví rychlost přehrávání na 16x",
"name": "Zrychlovač Reklam"
},
"adblocker": {
"description": "Blokuje všechny reklamy a sledování ihned od začátku",
"menu": {
"blocker": "Blokátor"
},
"name": "Blokovač reklam"
"name": "Blokátor reklam"
},
"album-actions": {
"description": "Přidává Undislike, Dislike, Like, a Unlike tlačítka k apply this ke všem písničkám v seznamu písniček nebo albumu.",
"name": "Album akce"
"description": "Přidává Undislike, Dislike, Like, a Unlike tlačítka k aplikování tohoto ke všem písničkám v seznamu písniček nebo albumu",
"name": "Možnosti Alba"
},
"album-color-theme": {
"description": "Používá dynamický motiv a vizuální efekty na základě palety barev alba",
"menu": {
"color-mix-ratio": {
"label": "Poměr míchání barev",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "Motiv podle barvy Alba"
},
"ambient-mode": {
"description": "Applies bleskové efekty pomocí casting jemných barev z videa, do vašeho pozadí obrazovky.",
"description": "Aplikuje světelné efekty pomocí vrhání jemných barev z videa, do vašeho pozadí obrazovky",
"menu": {
"blur-amount": {
"label": "Množství rozmazání",
@ -255,20 +286,94 @@
},
"name": "Ambientní režim"
},
"amuse": {
"description": "Přídá {{applicationName}} podporu pro Amuse právě hraje widget od 6K Labs",
"name": "Amuse",
"response": {
"query": "Server Amuse API běží. Pošli požadavek typu GET na /query, aby ses dozvěděl info o písničce."
}
},
"api-server": {
"description": "Vlož API server abys mohl ovládat přehrávač",
"dialog": {
"request": {
"buttons": {
"allow": "Povolit",
"deny": "Zakázat"
},
"message": "Povolit {{ID}} ({{origin}}) přístup k API?",
"title": "dotaz na přihlášení k API"
}
},
"menu": {
"auth-strategy": {
"label": "Možnosti přihlášení",
"submenu": {
"auth-at-first": {
"label": "Ověřit při prvním dotazu"
},
"none": {
"label": "Bez ověření"
}
}
},
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "API server [Beta]",
"prompt": {
"hostname": {
"label": "Zadej hostname API serveru (ve tvaru 0.0.0.0):",
"title": "Hostname"
},
"port": {
"label": "Zadej port API serveru:",
"title": "Port"
}
}
},
"audio-compressor": {
"description": "Apply compression k audiu (snižuje hlasitost nejhlasitěších částí signálu and zvyšuje hlasitost nejjemnějších částí)",
"description": "Aplikuje kompresi k audiu (snižuje hlasitost nejhlasitěších částí signálu a zvyšuje hlasitost nejjemnějších částí)",
"name": "Audio kompresor"
},
"auth-proxy-adapter": {
"description": "Podpora pro použití ověřovacích proxy služeb",
"menu": {
"disable": "Vypnout Proxy Adaptér",
"enable": "Zapnout Proxy Adaptér",
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "Autorizační Proxy adaptér",
"prompt": {
"hostname": {
"label": "Zadejte hostname lokálního proxy serveru (vyžaduje restart):",
"title": "Proxy Hostname"
},
"port": {
"label": "Zadejte port lokálního proxy serveru (vyžaduje restart):",
"title": "Proxy Port"
}
}
},
"blur-nav-bar": {
"description": "Udělá navigační panel průhledný a rozmazaný",
"name": "Rozmazaný navigační panel"
},
"bypass-age-restrictions": {
"description": "Obejít ověření věku na YouTube",
"description": "Obejít ověření věku na Music Player",
"name": "Obejít věková omezení"
},
"captions-selector": {
"description": "Titulkový selector pro zvukové stopy v YouTube Music",
"description": "Titulkový selector pro zvukové stopy v {{applicationName}}",
"menu": {
"autoload": "Automaticky vybrat naposledy použité titulky",
"disable-captions": "Žádné titulky ve vychozím nastavení"
@ -283,6 +388,11 @@
},
"templates": {
"title": "Otevřít titulový selector"
},
"toast": {
"caption-changed": "Titulky změněny na {{language}}",
"caption-disabled": "Titulky vypnuty",
"no-captions": "K této skladbě nejsou titulky dostupné"
}
},
"compact-sidebar": {
@ -298,7 +408,10 @@
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Délka Sílení (ms)",
"fade-out-duration": "Délka Slábnutí (ms)",
"fade-scaling": {
"label": "Škálování Přechodu",
"linear": "Lineární",
"logarithmic": "Logaritmické"
},
@ -308,6 +421,19 @@
}
}
},
"custom-output-device": {
"description": "Nastavte vlastní výstupní zařízení pro skladby",
"menu": {
"device-selector": "Vyberte zařízení"
},
"name": "Vlastní výstupní zařízení",
"prompt": {
"device-selector": {
"label": "Vyberte zařízení pro výstup zvuku",
"title": "Vyberte výstupní zařízení"
}
}
},
"disable-autoplay": {
"description": "Spustí písničku v režimu \"pozastaveno\"",
"menu": {
@ -321,7 +447,7 @@
"connected": "Připojeno k Discordu",
"disconnected": "Odpojeno od Discordu"
},
"description": "Ukažte svým přátelům, co posloucháte s Bohatou přítomností",
"description": "Ukažte svým přátelům, co posloucháte pomocí Rich Persence",
"menu": {
"auto-reconnect": "Automaticky znovu připojit",
"clear-activity": "Vymazat aktivitu",
@ -330,10 +456,18 @@
"disconnected": "Odpojeno",
"hide-duration-left": "Skrýt zbývající duration",
"hide-github-button": "Skrýt tlačítko s odkazem na GitHub",
"play-on-youtube-music": "Hrát na YouTube Music",
"set-inactivity-timeout": "Nastavit timeout pro neaktivitu"
"play-on-application": "Hrát na {{applicationName}}",
"set-inactivity-timeout": "Nastavit timeout pro neaktivitu",
"set-status-display-type": {
"label": "Text statusu",
"submenu": {
"artist": "Poslouchám: {artist}",
"application": "Poslouchám {{applicationName}}",
"title": "Poslouchám {song title}"
}
}
},
"name": "Discord Bohatá přítomnost",
"name": "Discord Rich Persence",
"prompt": {
"set-inactivity-timeout": {
"label": "Zadejte timeout neaktivity v sekundách:",
@ -362,6 +496,7 @@
},
"feedback": {
"conversion-progress": "Konverze: {{percent}}%",
"converting": "Převádím…",
"done": "Hotovo: {{filePath}}",
"download-info": "Stahování {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Stahování: {{percent}}%",
@ -386,6 +521,21 @@
"description": "Stahuje MP3 / source audio přímo z rozhraní",
"menu": {
"choose-download-folder": "Vybrat složku pro stahování",
"download-finish-settings": {
"label": "Stáhnout po dokončení",
"prompt": {
"last-percent": "Po x procentech",
"last-seconds": "Posledních x vteřin",
"title": "Nastavit kdy stahovat"
},
"submenu": {
"advanced": "Pokoročile",
"enabled": "Povoleno",
"mode": "Časový režim",
"percent": "Procent",
"seconds": "Sekundy"
}
},
"download-playlist": "Stáhnout seznam písniček",
"presets": "Předvolby",
"skip-existing": "Přeskočit existující soubory"
@ -398,6 +548,18 @@
"button": "Stáhnout"
}
},
"equalizer": {
"description": "Přidá do přehrávače ekvalizér",
"menu": {
"presets": {
"label": "Předvolby",
"list": {
"bass-booster": "Zesílení basů"
}
}
},
"name": "Ekvalizér"
},
"exponential-volume": {
"description": "Dělá posuvník hlasitosti exponenciální, takže je snazší vybrat nižší hlasitost.",
"name": "Exponenciální hlasitost"
@ -406,7 +568,8 @@
"description": "Dává menu panelům fancy, tmavý nebo album-color vzhled",
"menu": {
"hide-dom-window-controls": "Skrýt DOM window controls"
}
},
"name": "Vestavěné Menu"
},
"lumiastream": {
"description": "Přidává Lumia Stream podporu",
@ -414,21 +577,26 @@
},
"lyrics-genius": {
"description": "Přidává lyrics podporu pro většinu písniček",
"menu": {
"romanized-lyrics": "Romanizované Lyrics"
},
"name": "Lyrics Genius",
"renderer": {
"fetched-lyrics": "Fetched lyrics pro Genius"
}
},
"music-together": {
"description": "Sdílejte seznam písniček s ostatními. Když the host hraje písničku, uslyší jí i všichni ostatní.",
"description": "Sdílejte playlist s ostatními. Když hostitel přehrává skladbu, uslyší jí i všichni ostatní",
"dialog": {
"enter-host": "Zadejte Host ID"
},
"internal": {
"save": "Uložit",
"track-source": "Zdroj Písně",
"unknown-user": "Neznámý uživatel"
},
"menu": {
"click-to-copy-id": "Zkopírovat Host ID",
"click-to-copy-id": "Zkopírovat ID Hosta",
"close": "Zavřít Hudba Spolu",
"connected-users": "Připojení uživatelé",
"disconnect": "Odpojit od Hudby Spolu",
@ -437,7 +605,7 @@
"join": "Připojit se k Hudbě Spolu",
"permission": {
"all": "Povolit hostům ovládat seznam písniček a přehrávač",
"host-only": "Jenom host může ovládat seznam písniček a přehrávač",
"host-only": "Jenom hostitel může ovládat seznam písniček a přehrávač",
"playlist": "Povolit hostům ovládat seznam písniček"
},
"set-permission": "Změnit ovládací oprávnění",
@ -454,6 +622,7 @@
"disconnected": "Hudba Spolu odpojena",
"host-failed": "Selhalo hostování Hudby Spolu",
"id-copied": "Host ID zkopírováno do schránky",
"id-copy-failed": "Kopírování ID Hosta do schránky selhalo",
"join-failed": "Selhalo připojení k Hudba Spolu",
"joined": "Připojil/a jste se k Hudbě Spolu",
"permission-changed": "Oprávnění Hudby Spolu se změnilo na \"{{permission}}\"",
@ -464,7 +633,15 @@
},
"navigation": {
"description": "Další/Zpátky navigační šipky přímo integrovány do rozhraní, jako ve vašem oblíbeném prohlížeči",
"name": "Navigace"
"name": "Navigace",
"templates": {
"back": {
"title": "Přejít na předchozí stránku"
},
"forward": {
"title": "Přejít na další stránku"
}
}
},
"no-google-login": {
"description": "Odstranit tlačítka Google přihlášení a odkazy z rozhraní",
@ -483,10 +660,15 @@
}
},
"priority": "Priorita Oznámení",
"toast-style": "Toast Styl",
"unpause-notification": "Zobrazit oznámení na unpause"
},
"name": "Oznámení"
},
"performance-improvement": {
"description": "Zlepšit výkon povolením experimentálních skriptů",
"name": "Zlepšení výkonu [Beta]"
},
"picture-in-picture": {
"description": "Povoluje switch aplikaci do režimu obrázek v obrázku",
"menu": {
@ -520,6 +702,7 @@
"precise-volume": {
"description": "Přesná kontrola hlasitosti pomocí kolečka myši/klávesnicových zkratek, s vlastní HUD a customizable hlasitostních steps",
"menu": {
"arrows-shortcuts": "Ovádání Šipkami",
"custom-volume-steps": "Nastavit vlastní hlasitostní steps",
"global-shortcuts": "Globální klávesové zkratky"
},
@ -550,7 +733,47 @@
}
},
"description": "Umožňuje měnit kvalitu videa pomocí tlačítka na video overlay",
"name": "Měnič kvality videa"
"name": "Měnič kvality videa",
"renderer": {
"quality-settings-button": {
"label": "Otevřít volbu kvality přehrávače"
}
}
},
"scrobbler": {
"description": "Přidat scrobbing podporu (např .last.fm , Listenbrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Selhalo ověření s Last.fm\nSchovat vyskakovací okno do dalšího restartu.",
"title": "Ověření Selhalo"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Last.fm API nastavení"
},
"listenbrainz": {
"token": "Vložte Listenbrainz user token"
},
"scrobble-alternative-artist": "Použij alternativní umělce",
"scrobble-alternative-title": "Používat alternativní názvy",
"scrobble-other-media": "Scrobble jiné média"
},
"name": "Scrobbler",
"prompt": {
"lastfm": {
"api-key": "Last,fm API klíč",
"api-secret": "Tajný klíč API Last.fm"
},
"listenbrainz": {
"token": {
"label": "Vložte svůj Listenbrainz user token:",
"title": "ListenBrainz token"
}
}
}
},
"shortcuts": {
"description": "Dovoluje nastavit globální klávesové zkratky pro playback (přehrát/pozastavit/další/předchozí) a vypínání media OSD pomocí přepisování media klíčů, zapínání Ctrl/CMD + F k vyhledávání, zapínání Linux MPRIS podporu pro media klíče, a vlastní klávesové zkratky pro pokročilé uživatele.",
@ -583,6 +806,75 @@
"description": "Automaticky přeskakuje nehudební části jako intro/outro nebo části hudebních videí, kde nehraje písnčka",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "Poskytuje synchronizaci textů do písní, pomocí poskytovatelů, jako je LRClib.",
"errors": {
"fetch": "⚠️ Při hledání textu došlo k chybě.\n \tProsím zkuste to znovu později.",
"not-found": "⚠️ Pro tuto skladbu nebyl nalezen žádný text."
},
"menu": {
"default-text-string": {
"label": "Výchozí znak mezi texty",
"tooltip": "Vyberte výchozí znak pro mezeru mezi texty"
},
"line-effect": {
"label": "Efekt řádku",
"submenu": {
"fancy": {
"label": "Luxusní",
"tooltip": "Použijte velké, aplikací inspirované efekty na aktuální řádek"
},
"focus": {
"label": "Soustředění",
"tooltip": "Nechat pouze aktuální řádek bílý"
},
"offset": {
"label": "Posun",
"tooltip": "Posunout aktuální řádek doprava"
},
"scale": {
"label": "Zvětšení",
"tooltip": "Změnit velikost aktuálního řádku"
}
},
"tooltip": "Vyberte efekt pro aktuální řádek"
},
"precise-timing": {
"label": "Dokonale synchronizovat texty",
"tooltip": "Vypočítat zobrazení dalšího řádku na milisekundu (může mít menší dopad na výkon)"
},
"preferred-provider": {
"label": "Preferovaný poskytovatel",
"none": {
"label": "Žádný",
"tooltip": "Žádný preferovaný poskytovatel"
},
"tooltip": "Zvolte výchozího poskytovatele"
},
"romanization": {
"label": "Romanizovat texty",
"tooltip": "Pokud je text v jiném jazyce, zkusit zobrazit verzi v latince."
},
"show-lyrics-even-if-inexact": {
"label": "Zobrazit i nepřesné texty",
"tooltip": "Pokud se píseň nenajde, plugin to zkusí znovu s jiným vyhledávacím výrazem.\nVýsledek druhého pokusu nemusí být přesný."
},
"show-time-codes": {
"label": "Zobrazit časové kódy",
"tooltip": "Zobrazit časové kódy vedle textu"
}
},
"name": "Synchronizované texty",
"refetch-btn": {
"fetching": "Získávání...",
"normal": "Znovu načíst texty"
},
"warnings": {
"duration-mismatch": "⚠️ - Text nemusí být synchronizován kvůli neshodě v délce trvání.",
"inexact": "⚠️ - Text pro tuto skladbu nemusí být přesný",
"instrumental": "⚠️ - Tato skladba je instrumentální"
}
},
"taskbar-mediacontrol": {
"description": "Ovládejte přehrávání z vašeho Windows hlavního panelu",
"name": "Hlavní panel Media Control"
@ -591,10 +883,35 @@
"description": "Přidává Touch Bar widget pro macOS uživatele",
"name": "Touch Bar"
},
"transparent-player": {
"description": "Zprůhlední okno aplikace",
"menu": {
"opacity": {
"label": "Průhlednost",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Typ",
"submenu": {
"acrylic": "Akryl",
"mica": "Mica",
"none": "Žádné",
"tabbed": "Záložkovaný"
}
}
},
"name": "Průhledný přehrávač"
},
"tuna-obs": {
"description": "Integrace s OBS's plugin Tuna",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Zabrání tomu, aby se přehrávač objevil při hraní písně",
"name": "Nepřekážející přehrávač"
},
"video-toggle": {
"description": "Přidává tlačítko k switch mezi video/písničko režimem. Může také odstranit celou video kartu",
"menu": {
@ -618,7 +935,8 @@
},
"name": "Přepínač videa",
"templates": {
"button": "Písnička"
"button-song": "Skladba",
"button-video": "Video"
}
},
"visualizer": {

334
src/i18n/resources/da.json Normal file
View File

@ -0,0 +1,334 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Fejl ved udføring af plugin {{pluginName}}::{{contextName}}",
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} udført på {{ms}}ms",
"initialize-failed": "Fejl ved igangsætning af plugin \"{{pluginName}}\"",
"load-all": "Indlæser alle plugins",
"load-failed": "Fejl ved indlæsning af plugin \"{{pluginName}}\"",
"loaded": "Plugin \"{{pluginName}}\" indlæst",
"unload-failed": "Fejl ved aflæsning af plugin \"{{pluginNavn}}\"",
"unloaded": "Plugin \"{{pluginNavn}}\" aflæssede"
}
}
},
"language": {
"code": "dk",
"local-name": "Dansk",
"name": "Danish"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Indlæsning færdig. DevTools åbnet"
},
"i18n": {
"loaded": "i18n indlæst"
},
"second-instance": {
"receive-command": "Modtog kommando over protokol: \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS fil \"{{cssFile}}\" eksisterer ikke, ignorere"
},
"unresponsive": {
"details": "Uresponsiv fejl!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Rydder op i appens cache"
},
"window": {
"tried-to-render-offscreen": "Windows forsøgte at indlæse uden for skærmen, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Menuen er gemt, brug 'Alt' knappen for at vise den igen (eller 'Escape' hvis In-App menuen bruges)",
"message": "Skjul menuen er aktiveret",
"title": "Skjult menu aktiveret"
},
"need-to-restart": {
"buttons": {
"later": "Senere",
"restart-now": "Genstart nu"
},
"detail": "\"{{pluginName}}\" plugin kræver en genstart for at have en effekt",
"message": "\"{{pluginName}}\" skal genstarte",
"title": "Genstart krævet"
},
"unresponsive": {
"buttons": {
"quit": "Afslut",
"relaunch": "Genåben",
"wait": "Vent"
},
"detail": "Vi undskylder for ubelejligheden! Vælg næste handling:",
"message": "Appen svarer ikke",
"title": "Vindue svarer ikke"
},
"update-available": {
"buttons": {
"disable": "Slå opdateringer fra",
"download": "Hent",
"ok": "OK"
},
"detail": "En ny version er tilgængelig og kan downloades her: {{downloadLink}}",
"message": "En ny version er tilgængelig",
"title": "Opdatering tilgængelig"
}
},
"menu": {
"about": "Om",
"navigation": {
"label": "Navigering",
"submenu": {
"copy-current-url": "Kopier nuværende URL",
"go-back": "Tilbage",
"go-forward": "Frem",
"quit": "Afslut",
"restart": "Genstart Appen"
}
},
"options": {
"label": "Indstillinger",
"submenu": {
"advanced-options": {
"label": "Avancerede indstillinger",
"submenu": {
"auto-reset-app-cache": "Nulstil app cache når appen starter",
"disable-hardware-acceleration": "Deaktiver hardware acceleration",
"edit-config-json": "Rediger config.json",
"override-user-agent": "Erstat Bruger-Agent",
"restart-on-config-changes": "Genstart ved config ændringer",
"set-proxy": {
"label": "Indstil proxy",
"prompt": {
"label": "Skriv proxy adresse: (Efterlad tom for at deaktivere)",
"placeholder": "Eksempel: SOCKS5://127.0.0.1:9999",
"title": "Sæt proxy"
}
},
"toggle-dev-tools": "Skift DevTools"
}
},
"always-on-top": "Altid øverst",
"auto-update": "Automatisk opdatering",
"hide-menu": {
"dialog": {
"message": "Menuen vil være lukket næste gang appen starter. Brug [Alt] for at vise den (Eller backtick [`] hvis in-app-menu bruges)",
"title": "Gemt menu aktiveret"
},
"label": "Skjul menu"
},
"language": {
"dialog": {
"message": "Sproget vil blive ændret efter genstart",
"title": "Sprog ændret"
},
"label": "Sprog",
"submenu": {
"to-help-translate": "Vil du hjælpe med at oversætte? Klik her"
}
},
"resume-on-start": "Genoptag sidste sang når appen starter",
"single-instance-lock": "Enkeltinstans lås",
"start-at-login": "Start ved login",
"starting-page": {
"label": "Startside",
"unset": "Ikke valgt"
},
"tray": {
"label": "Bakke",
"submenu": {
"disabled": "Deaktiveret",
"enabled-and-hide-app": "Bakke aktiveret, og skjul programvindue",
"enabled-and-show-app": "Aktiver og vis app",
"play-pause-on-click": "Start/Stop ved klik"
}
},
"visual-tweaks": {
"label": "Visuelle Justeringer",
"submenu": {
"custom-window-title": {
"label": "Tilpasset vindues titel",
"prompt": {
"label": "Indtast tilpasset vindues titel: (lad være top for deaktiveret)",
"placeholder": "Eksempel: {{applicationName}}"
}
},
"like-buttons": {
"default": "Standard",
"force-show": "Tving visning",
"hide": "Skjul",
"label": "Like knapper"
},
"remove-upgrade-button": "Fjern opgrader knappen",
"theme": {
"dialog": {
"button": {
"cancel": "Annuller",
"remove": "Fjern"
},
"remove-theme": "Er du sikker på at du til fjerne det brugerdefinerede tema?",
"remove-theme-message": "Dette vil fjerne det brugerdefinerede tema"
},
"label": "Tema",
"submenu": {
"import-css-file": "Importer brugerdefinerede CSS fil",
"no-theme": "Intet tema"
}
}
}
}
}
},
"plugins": {
"enabled": "Aktiveret",
"label": "Plugins",
"new": "NY"
},
"view": {
"label": "Vis",
"submenu": {
"force-reload": "Tving Genindlæs",
"reload": "Genindlæs",
"zoom-in": "Zoom ind",
"zoom-out": "Zoom ud"
}
}
},
"tray": {
"next": "Næste",
"play-pause": "Afspil",
"previous": "Sidste",
"quit": "Luk",
"restart": "Genstart app",
"show": "Vis vindue",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Hvis en reklame afspilles, slår den lyden fra og sætter hastigheden til 16x",
"name": "Spol igennem reklamen"
},
"adblocker": {
"description": "Bloker alle reklamer og sporing fra starten af",
"menu": {
"blocker": "Bloker"
},
"name": "Bloker reklamer"
},
"album-color-theme": {
"menu": {
"color-mix-ratio": {
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "Albummets farve tema"
},
"ambient-mode": {
"menu": {
"blur-amount": {
"label": "Sløringsmængde",
"submenu": {
"pixels": "{{blurAmount}} pixel"
}
},
"buffer": {
"label": "Buffer",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Gennemsigtighed",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Kvalitet",
"submenu": {
"pixels": "{{quality}} pixel"
}
},
"size": {
"label": "Størrelse",
"submenu": {
"percent": "{{size}}%"
}
},
"use-fullscreen": {
"label": "Bruger fuldskærm"
}
}
},
"api-server": {
"dialog": {
"request": {
"buttons": {
"allow": "Tillad",
"deny": "Afvis"
},
"message": "Tillad at {{ID}} ({{origin}}) får adgang til API'en?"
}
},
"menu": {
"auth-strategy": {
"label": "Godkendelsesstrategi"
},
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "API Server [Beta]",
"prompt": {
"hostname": {
"label": "Skriv API serverens hostname (f. eks. 0.0.0.0):",
"title": "Hostname"
},
"port": {
"label": "Skriv API serverens port:",
"title": "Port"
}
}
},
"audio-compressor": {
"name": "Lyd kompressor"
},
"blur-nav-bar": {
"description": "Gør navigationsbaren gennemsigtig og sløret",
"name": "Slør navigationsbar"
},
"captions-selector": {
"menu": {
"disable-captions": "Ingen undertekster som standard"
},
"name": "Vælg undertekster",
"prompt": {
"selector": {
"label": "Nuværende sprog på undertekster: {{language}}",
"none": "Ingen",
"title": "Vælg underteksternes sprog"
}
}
},
"crossfade": {
"description": "Fade imellem sange",
"menu": {
"advanced": "Avanceret"
},
"name": "Fade [Beta]"
}
}
}

View File

@ -3,7 +3,7 @@
"console": {
"plugins": {
"execute-failed": "Erweiterung {{pluginName}}::{{contextName}} konnte nicht ausgeführt werden",
"executed-at-ms": "Erweiterung {{pluginName}}::{{contextName}} ausgeführt in {{ms}}ms",
"executed-at-ms": "Erweiterung {{pluginName}}::{{contextName}} in {{ms}}ms ausgeführt",
"initialize-failed": "Initialisierung der Erweiterung \"{{pluginName}}\" fehlgeschlagen",
"load-all": "Lade alle Erweiterungen",
"load-failed": "Laden der Erweiterung \"{{pluginName}}\" fehlgeschlagen",
@ -150,6 +150,13 @@
"visual-tweaks": {
"label": "Visuelle Optimierungen",
"submenu": {
"custom-window-title": {
"label": "Benutzerdefinierter Fenstertitel",
"prompt": {
"label": "Benutzerdefinierten Fenstertitel eingeben: (zum Deaktivieren leer lassen)",
"placeholder": "Beispiel: {{applicationName}}"
}
},
"like-buttons": {
"default": "Standard",
"force-show": "Zeigen erzwungen",
@ -158,6 +165,14 @@
},
"remove-upgrade-button": "Upgrade-Schaltfläche entfernen",
"theme": {
"dialog": {
"button": {
"cancel": "Abbrechen",
"remove": "Entfernen"
},
"remove-theme": "Sind Sie sich sicher, dass Sie das benutzerdefinierte Aussehen ändern wollen?",
"remove-theme-message": "Dies wird das benutzerdefinierte Aussehen löschen"
},
"label": "Thema",
"submenu": {
"import-css-file": "Importiere eigene CSS-Datei",
@ -193,12 +208,16 @@
"restart": "Anwendung neu starten",
"show": "Fenster anzeigen",
"tooltip": {
"default": "YouTube Musik",
"with-song-info": "YouTube Musik: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Wenn eine Werbung spielt, stummt es das Audio und setzt die Wiedergabegeschwindigkeit auf 16x",
"name": "Werbungsbeschleunigung"
},
"adblocker": {
"description": "Blockiere jegliche Werbung und Tracker",
"menu": {
@ -218,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Suchleisten-Design aktivieren"
},
"name": "Thema aus Albumfarbe"
},
@ -267,20 +287,110 @@
},
"name": "Ambiente-Modus"
},
"amuse": {
"description": "Fügt {{applicationName}} Unterstützung für das Amuse \"Spielt gerade\"-Widget von 6K Labs hinzu",
"name": "Amuse",
"response": {
"query": "Amuse API-Server läuft. /query für Liedinformationen."
}
},
"api-server": {
"description": "Fügt einen API-Server hinzu, um die Wiedergabe zu steuern",
"dialog": {
"request": {
"buttons": {
"allow": "Erlauben",
"deny": "Ablehnen"
},
"message": "{{ID}} ({{origin}}) den Zugriff zur API erlauben?",
"title": "API-Autorisierungs-Anfrage"
}
},
"menu": {
"auth-strategy": {
"label": "Autorisations-Methode",
"submenu": {
"auth-at-first": {
"label": "Beim ersten Zugriff autorisieren"
},
"none": {
"label": "Keine Autorisierung"
}
}
},
"hostname": {
"label": "Hostname"
},
"https": {
"label": "HTTPS & Zertifikate",
"submenu": {
"cert": {
"dialogTitle": "HTTPS Zertifikat Datei auswählen",
"label": "Zertifikate Datei (.crt/.pem)"
},
"enable-https": {
"label": "HTTPS aktivieren"
},
"key": {
"dialogTitle": "HTTPS privaten Schlüssel Datei auswählen",
"label": "Privater Schlüssel Datei (.key/.pem)"
}
}
},
"port": {
"label": "Port"
}
},
"name": "API-Server [Beta]",
"prompt": {
"hostname": {
"label": "Hostname des API-Servers vergeben (z. B. 0.0.0.0):",
"title": "Hostname"
},
"port": {
"label": "Port des API-Server:",
"title": "Port"
}
}
},
"audio-compressor": {
"description": "Kompressor auf Audio anwenden (senkt die Lautstärke der lautesten Teile des Signals und hebt die Lautstärke der leisesten Teile an)",
"name": "Audio-Komprimierer"
},
"auth-proxy-adapter": {
"description": "Unterstützung für Proxy-Authentifizierungsdienste",
"menu": {
"disable": "Proxy-Adapter deaktivieren",
"enable": "Proxy-Adapter aktivieren",
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "Authentifizierungs-Proxyadapter",
"prompt": {
"hostname": {
"label": "Hostnamen eingeben für lokalen Proxy-Server (Neustart erforderlich):",
"title": "Proxy Hostname"
},
"port": {
"label": "Geben Sie den Port für den lokalen Proxyserver ein (Neustart erforderlich):",
"title": "Proxy Port"
}
}
},
"blur-nav-bar": {
"description": "Macht Navigationsleiste durchsichtig und unscharf",
"name": "Verschwommene Navigationsleiste"
},
"bypass-age-restrictions": {
"description": "Youtubes Altersbestätigung umgehen",
"description": "Music Player Altersbestätigung umgehen",
"name": "Altersbeschränkungen umgehen"
},
"captions-selector": {
"description": "Untertitelwähler für YouTube Music-Audio-Lieder",
"description": "Untertitelwähler für {{applicationName}}-Audio-Lieder",
"menu": {
"autoload": "Wähle automatisch den zuletzt verwendeten Untertitel",
"disable-captions": "Standardmäßig keine Untertitel"
@ -295,6 +405,11 @@
},
"templates": {
"title": "Untertitelwähler öffnen"
},
"toast": {
"caption-changed": "Untertitel gewechselt zu {{language}}",
"caption-disabled": "Untertitel deaktiviert",
"no-captions": "Keine Untertitel für dieses Lied verfügbar"
}
},
"compact-sidebar": {
@ -323,6 +438,19 @@
}
}
},
"custom-output-device": {
"description": "Einen maßgeschneiderten Ausgabemedienträger für Lieder einrichten",
"menu": {
"device-selector": "Gerät auswählen"
},
"name": "Benutzerdefiniertes Ausgabegerät",
"prompt": {
"device-selector": {
"label": "Wähle das Ausgabegerät, welches benutzt werden soll",
"title": "Wähle ein Ausgabegerät"
}
}
},
"disable-autoplay": {
"description": "Startet Lied im pausierten Modus",
"menu": {
@ -345,8 +473,16 @@
"disconnected": "Getrennt",
"hide-duration-left": "Verbleibende Zeit verstecken",
"hide-github-button": "Knopf mit Link zu GitHub ausblenden",
"play-on-youtube-music": "Auf YouTube Music abspielen",
"set-inactivity-timeout": "Inaktivitätstimeout setzen"
"play-on-application": "Auf {{applicationName}} abspielen",
"set-inactivity-timeout": "Inaktivitätstimeout setzen",
"set-status-display-type": {
"label": "Status Text",
"submenu": {
"application": "Hört {{applicationName}}",
"artist": "Hört {artist} zu",
"title": "Du hörst {song title}"
}
}
},
"name": "Discords Aktivitätsstatus",
"prompt": {
@ -402,6 +538,21 @@
"description": "Lädt MP3-/Original-Audio direkt von der Schnittstelle herunter",
"menu": {
"choose-download-folder": "Downloadordner wählen",
"download-finish-settings": {
"label": "Song am Ende runterladen",
"prompt": {
"last-percent": "Nach x Prozent",
"last-seconds": "Letzten x Sekunden",
"title": "Konfiguriere wann runtergeladen werden soll"
},
"submenu": {
"advanced": "Erweitert",
"enabled": "Aktiviert",
"mode": "Zeitmodus",
"percent": "Prozent",
"seconds": "Sekunden"
}
},
"download-playlist": "Wiedergabeliste herunterladen",
"presets": "Voreinstellungen",
"skip-existing": "Vorhandene Dateien überspringen"
@ -414,6 +565,18 @@
"button": "Herunterladen"
}
},
"equalizer": {
"description": "Fügt einen Equalizer zum Player hinzu",
"menu": {
"presets": {
"label": "Vorgaben",
"list": {
"bass-booster": "Bass-Verstärker"
}
}
},
"name": "Equalizer"
},
"exponential-volume": {
"description": "Macht den Lautstärkeregler exponentiell, damit es einfacher ist leise Lautstärken zu wählen.",
"name": "Exponentielle Lautstärke"
@ -434,7 +597,7 @@
"menu": {
"romanized-lyrics": "Romanisierte Songtexte"
},
"name": "Liedtexte von Genius",
"name": "Songtexte von Genius",
"renderer": {
"fetched-lyrics": "Liedtexte für Genius abgerufen"
}
@ -460,7 +623,7 @@
"permission": {
"all": "Gästen erlauben, Wiederhabeliste und Player zu bedienen",
"host-only": "Nur der Host kann die Playlist und den Player kontrollieren",
"playlist": "Gäste das Kontrollieren der Playlist erlauben"
"playlist": "Gästen das Kontrollieren der Playlist erlauben"
},
"set-permission": "Kontrollberechtigung ändern",
"status": {
@ -487,7 +650,15 @@
},
"navigation": {
"description": "Vorwärts/Zurück Navigationspfeile direkt in die Oberfläche integriert - wie in deinem geliebten Browser",
"name": "Navigation"
"name": "Navigation",
"templates": {
"back": {
"title": "Zur vorherigen Seite gehen"
},
"forward": {
"title": "Zur nächsten Seite gehen"
}
}
},
"no-google-login": {
"description": "Googles Anmelden-Knöpfe und -Links von der Oberfläche entfernen",
@ -511,6 +682,10 @@
},
"name": "Benachrichtigungen"
},
"performance-improvement": {
"description": "Leistung durch Aktivieren experimenteller Skripte verbessern",
"name": "Leistungs Verbesserung [Beta]"
},
"picture-in-picture": {
"description": "Erlaubt die App in den Bild-im-Bild-Modus zu wechseln",
"menu": {
@ -575,7 +750,12 @@
}
},
"description": "Erlaubt die Videoqualität über einen Knopf auf dem Video",
"name": "Videoqualitätsänderer"
"name": "Videoqualitätsänderer",
"renderer": {
"quality-settings-button": {
"label": "Videoqualität ändern"
}
}
},
"scrobbler": {
"description": "Scrobbling-Unterstützung aktivieren (z.B. für last.fm, Listenbrainz)",
@ -594,6 +774,8 @@
"listenbrainz": {
"token": "ListenBrainz-Benutzer-Token eintragen"
},
"scrobble-alternative-artist": "Benutze Alternative Künstler",
"scrobble-alternative-title": "Nutze alternative Titel",
"scrobble-other-media": "Andere Medien scrobbeln"
},
"name": "Scrobbler",
@ -641,6 +823,75 @@
"description": "Überspringt automatisch nicht-musikalische Teile wie Intro/Outro oder Teile von Musikvideos, in denen der Song nicht gespielt wird",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "Bietet synchronisierte Liedtexte zu Songs, verwendet Anbieter wie LRClib.",
"errors": {
"fetch": "⚠️ - \tBeim Abrufen des Liedtexts ist ein Fehler aufgetreten. \n\tBitte versuchen Sie es später nochmal.",
"not-found": "⚠️ Kein Text für diesen Song gefunden."
},
"menu": {
"default-text-string": {
"label": "Standardzeichen zwischen Texten",
"tooltip": "Standardzeichen für die Lücke zwischen Songtexten auswählen"
},
"line-effect": {
"label": "Zeileneffekt",
"submenu": {
"fancy": {
"label": "schick",
"tooltip": "Verwende große, app-ähnliche Effekte in der aktuellen Zeile"
},
"focus": {
"label": "Fokussieren",
"tooltip": "Nur aktive Zeile weiß darstellen"
},
"offset": {
"label": "Versatz",
"tooltip": "Verschiebe die aktuelle Zeile nach rechts"
},
"scale": {
"label": "Skalieren",
"tooltip": "Aktuelle Zeile skalieren"
}
},
"tooltip": "Effekt für aktive Zeile auswählen"
},
"precise-timing": {
"label": "Den Songtext perfekt synchronisieren",
"tooltip": "Auf die Millisekunde genau berechnen, wann die nächste Zeile angezeigt werden soll (Kann Einfluss auf die Leistung haben)"
},
"preferred-provider": {
"label": "bevorzugter Anbieter",
"none": {
"label": "Nichts",
"tooltip": "Kein bevorzugter Anbieter"
},
"tooltip": "Standardanbieter auswählen"
},
"romanization": {
"label": "Lateinische Umschrift anzeigen",
"tooltip": "Wenn der Liedtext in einer anderen Schrift ist, zeige nach Möglichkeit eine Version in lateinischer Schrift an."
},
"show-lyrics-even-if-inexact": {
"label": "Songtext anzeigen, auch wenn er ungenau ist",
"tooltip": "Die Erweiterung sucht mit anderen Suchparameter nochmals, wenn der Song nicht gefunden wurde.\nEs kann sein, dass das Ergebnis von der zweiten Anfrage nicht genau ist."
},
"show-time-codes": {
"label": "Zeitkodierungen anzeigen",
"tooltip": "Zeitkodierungen neben Songtext anzeigen"
}
},
"name": "Synchronisierte Texte",
"refetch-btn": {
"fetching": "Hole Songtext...",
"normal": "Songtext neu holen"
},
"warnings": {
"duration-mismatch": "⚠️ - Es kann sein, dass die Synchronization nicht stimmt, da die Songdauer nicht übereinstimmt.",
"inexact": "⚠️ - Der Songtext stimmt möglicherweise nicht überein",
"instrumental": "⚠️ - Das ist ein instrumentales Lied"
}
},
"taskbar-mediacontrol": {
"description": "Wiedergabe aus der Windows Taskleiste kontrollieren",
"name": "Mediensteuerung in der Taskleiste"
@ -649,10 +900,35 @@
"description": "Fügt ein TouchBar-Widget für macOS-Benutzer hinzu",
"name": "TouchBar"
},
"transparent-player": {
"description": "Macht das Player-Fenster transparent",
"menu": {
"opacity": {
"label": "Hintergrund-Sichtbarkeit",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Typ",
"submenu": {
"acrylic": "Acryl",
"mica": "Mica",
"none": "Nichts",
"tabbed": "Mit Registerkarten"
}
}
},
"name": "Transparenter Player"
},
"tuna-obs": {
"description": "Integration mit dem OBS-Plugin Tuna",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Verhindert das Aufpoppen des Spielers während ein Song gespielt wird",
"name": "Unauffälliger Player"
},
"video-toggle": {
"description": "Fügt einen Knopf hinzu, um zwischen Video-/Liedmodus zu wechseln. kann auch genutzt werden, um den ganzen Videoabschnitt zu entfernen",
"menu": {
@ -676,7 +952,8 @@
},
"name": "Videoumschalter",
"templates": {
"button": "Lied"
"button-song": "Lied",
"button-video": "Video"
}
},
"visualizer": {

View File

@ -2,14 +2,14 @@
"common": {
"console": {
"plugins": {
"execute-failed": "Αποτυχία εκτέλεσης προσθέτου {{pluginName}}::{{contextName}}",
"execute-failed": "Απέτυχε η εκτέλεση του πρόσθετου {{pluginName}}::{{contextName}}",
"executed-at-ms": "Το πρόσθετο {{pluginName}}::{{contextName}} εκτελέστηκε σε {{ms}}ms",
"initialize-failed": "Απέτυχε η αρχικοποίηση του πρόσθετου \"{{pluginName}}\"",
"load-all": "Φόρτωση όλων των πρόσθετων",
"load-failed": "Απέτυχε η φόρτωση του πρόσθετου \"{{pluginName}}\"",
"loaded": "Το πρόσθετο \"{{pluginName}}\" φορτώθηκε",
"unload-failed": "Απέτυχε η απεγκατάσταση του πρόσθετου \"{{pluginName}}\"",
"unloaded": "Το πρόσθετο \"{{pluginName}}\" απεγκαταστάθηκε"
"unload-failed": "Απέτυχε η κατάργηση φόρτωσης του πρόσθετου \"{{pluginName}}\"",
"unloaded": "Η φόρτωση του πρόσθετου \"{{pluginName}}\" καταργήθηκε"
}
}
},
@ -21,7 +21,7 @@
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Η φόρτωση ολοκληρώθηκε. Τα DevTools άνοιξαν"
"dev-tools": "Ολοκληρώθηκε η φόρτωση. Τα DevTools άνοιξαν"
},
"i18n": {
"loaded": "Το i18n φορτώθηκε"
@ -30,13 +30,13 @@
"receive-command": "Λήφθηκε εντολή μέσω πρωτοκόλλου: \"{{command}}\""
},
"theme": {
"css-file-not-found": "Το αρχείο CSS \"{{cssFile}}\" δεν υπάρχει, αγνοείται"
"css-file-not-found": "Το αρχείο CSS \"{{cssFile}}\" δεν υπάρχει, αγνόηση"
},
"unresponsive": {
"details": "Σφάλμα ανταπόκρισης!\n{{error}}"
"details": "Σφάλμα απόκρισης!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Εκκαθάριση της cache της εφαρμογής"
"clearing-cache-after-20s": "Εκκαθάριση μνήμης cache εφαρμογής"
},
"window": {
"tried-to-render-offscreen": "Το παράθυρο προσπάθησε να απεικονίσει εκτός οθόνης, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
@ -45,81 +45,81 @@
"dialog": {
"hide-menu-enabled": {
"detail": "Το μενού είναι κρυμμένο, χρησιμοποιήστε το 'Alt' για να το εμφανίσετε (ή το 'Escape' αν χρησιμοποιείτε το μενού εφαρμογής)",
"message": "Απόκρυψη μενού είναι ενεργοποιημένο",
"title": "Ενεργοποιήθηκε η Απόκρυψη του Μενού"
"message": "Η απόκρυψη μενού είναι ενεργοποιημένη",
"title": "Η απόκρυψη μενού ενεργοποιήθηκε"
},
"need-to-restart": {
"buttons": {
"later": "Αργότερα",
"restart-now": "Επανεκκίνηση Τώρα"
"restart-now": "Επανεκκίνηση τώρα"
},
"detail": "Το πρόσθετο \"{{pluginName}}\" απαιτεί επανεκκίνηση για να ισχύσει",
"message": "Το \"{{pluginName}}\" χρειάζεται επανεκκίνηση",
"title": "Απαιτείται Επανεκκίνηση"
"title": "Απαιτείται επανεκκίνηση"
},
"unresponsive": {
"buttons": {
"quit": "Έξοδος",
"quit": "Τερματισμός",
"relaunch": "Επανεκκίνηση",
"wait": "Περίμενε"
"wait": "Αναμονή"
},
"detail": "Λυπούμαστε για την ταλαιπωρία! Παρακαλούμε επιλέξτε τι να κάνετε:",
"message": "Η εφαρμογή δεν ανταποκρίνεται",
"title": "Το παράθυρο δεν ανταποκρίνεται"
"detail": "Λυπούμαστε για την ταλαιπωρία! Παρακαλώ επιλέξτε τι να κάνετε:",
"message": "Η εφαρμογή δεν αποκρίνεται",
"title": "Το παράθυρο δεν αποκρίνεται"
},
"update-available": {
"buttons": {
"disable": "Απενεργοποίηση Ενημερώσεων",
"disable": "Απενεργοποίηση ενημερώσεων",
"download": "Λήψη",
"ok": "Εντάξει"
"ok": "OK"
},
"detail": "Μια νέα έκδοση είναι διαθέσιμη και μπορεί να ληφθεί από τον σύνδεσμο {{downloadLink}}",
"detail": "Μια νέα έκδοση είναι διαθέσιμη και μπορεί να ληφθεί από το {{downloadLink}}",
"message": "Μια νέα έκδοση είναι διαθέσιμη",
"title": "Υπάρχει Διαθέσιμη Ενημέρωση"
"title": "Διατίθεται ενημέρωση"
}
},
"menu": {
"about": "Σχετικά",
"about": "Πληροφορίες",
"navigation": {
"label": "Πλοήγηση",
"submenu": {
"copy-current-url": "Αντιγραφή τρέχουσας διεύθυνσης URL",
"go-back": ήγαινε πίσω",
"go-forward": "Πήγαινε μπροστά",
"go-back": "Πίσω",
"go-forward": "Εμπρός",
"quit": "Έξοδος",
"restart": "Επανεκκίνηση Εφαρμογής"
"restart": "Επανεκκίνηση εφαρμογής"
}
},
"options": {
"label": "Επιλογές",
"submenu": {
"advanced-options": {
"label": "Προηγμένες επιλογές",
"label": "Επιλογές για προχωρημένους",
"submenu": {
"auto-reset-app-cache": "Επαναφορά της cache της εφαρμογής κατά την εκκίνηση της εφαρμογής",
"auto-reset-app-cache": "Επαναφορά μνήμης cache εφαρμογής όταν η εφαρμογή ξεκινά",
"disable-hardware-acceleration": "Απενεργοποίηση επιτάχυνσης υλικού",
"edit-config-json": "Επεξεργασία του config.json",
"override-user-agent": "Αντικατάσταση του User-Agent",
"restart-on-config-changes": "Επανεκκίνηση κατά τις αλλαγές στο config",
"restart-on-config-changes": "Επανεκκίνηση σε αλλαγές του config",
"set-proxy": {
"label": "Ορισμός διακομιστή μεσολάβησης (proxy)",
"label": "Ορισμός μεσολάβησης",
"prompt": {
"label": "Εισαγωγή διεύθυνσης διακομιστή μεσολάβησης (proxy): (αφήστε κενό για απενεργοποίηση)",
"label": "Εισαγωγή διεύθυνσης μεσολάβησης: (αφήστε κενό για απενεργοποίηση)",
"placeholder": "Παράδειγμα: SOCKS5://127.0.0.1:9999",
"title": "Ορισμός διακομιστή μεσολάβησης (proxy)"
"title": "Ορισμός μεσολάβησης"
}
},
"toggle-dev-tools": "Εναλλαγή DevTools"
}
},
"always-on-top": "Πάντα επάνω",
"auto-update": "Αυτόματη Ενημέρωση",
"always-on-top": "Πάντα σε πρώτο πλάνο",
"auto-update": "Αυτόματη ενημέρωση",
"hide-menu": {
"dialog": {
"message": "Το μενού θα κρυφτεί στην επόμενη εκκίνηση, χρησιμοποιήστε [Alt] για να το εμφανίσετε (ή το πλήκτρο backtick [`] αν χρησιμοποιείτε το μενού εφαρμογής)",
"title": "Η Δυνατότητα Απόκρυψης του Μενού ενεργοποιήθηκε"
"title": "Η απόκρυψη μενού ενεργοποιήθηκε"
},
"label": "Απόκρυψη Μενού"
"label": "Απόκρυψη μενού"
},
"language": {
"dialog": {
@ -131,15 +131,15 @@
"to-help-translate": "Θέλετε να βοηθήσετε στη μετάφραση; Κάντε κλικ εδώ"
}
},
"resume-on-start": "Συνέχιση του τελευταίου τραγουδιού όταν η εφαρμογή ξεκινά",
"single-instance-lock": "Κλείδωμα Μοναδικής Εκδοχής",
"start-at-login": "Έναρξη κατά την σύνδεση",
"resume-on-start": "Συνέχιση τελευταίου τραγουδιού όταν η εφαρμογή ξεκινά",
"single-instance-lock": "Κλείδωμα μοναδικής εκδοχής",
"start-at-login": "Έναρξη κατά τη σύνδεση",
"starting-page": {
"label": "Σελίδα Έναρξης",
"unset": "Κατάργηση Ορισμού"
"label": "Αρχική σελίδα",
"unset": "Κατάργηση ορισμού"
},
"tray": {
"label": "Δίσκος",
"label": "Περιοχή συστήματος",
"submenu": {
"disabled": "Απενεργοποιημένο",
"enabled-and-hide-app": "Ενεργοποιημένο και απόκρυψη της εφαρμογής",
@ -148,14 +148,35 @@
}
},
"visual-tweaks": {
"label": "Οπτικές προσαρμογές",
"submenu": {
"like-buttons": {
"default": "Default"
"custom-window-title": {
"label": "Προσαρμοσμένος τίτλος παραθύρου",
"prompt": {
"label": "Εισαγωγή προσαρμοσμένου τίτλου παραθύρου: (κενό για απενεργοποίηση)",
"placeholder": "Παράδειγμα: {{applicationName}}"
}
},
"like-buttons": {
"default": "Προεπιλογή",
"force-show": "Επιβολή εμφάνισης",
"hide": "Απόκρυψη",
"label": "Κουμπιά Μου αρέσει"
},
"remove-upgrade-button": "Αφαίρεση κουμπιού αναβάθμισης",
"theme": {
"label": "Theme",
"dialog": {
"button": {
"cancel": "Άκυρο",
"remove": "Αφαίρεση"
},
"remove-theme": "Είστε βέβαιοι ότι θέλετε να αφαιρέσετε το προσαρμοσμένο θέμα;",
"remove-theme-message": "Αυτό θα αφαιρέσει το προσαρμοσμένο θέμα"
},
"label": "Θέμα",
"submenu": {
"no-theme": "No theme"
"import-css-file": "Εισαγωγή προσαρμοσμένου αρχείου CSS",
"no-theme": "Χωρίς θέμα"
}
}
}
@ -163,93 +184,240 @@
}
},
"plugins": {
"label": "Plugins"
"enabled": "Ενεργοποιημένο",
"label": "Πρόσθετα",
"new": "ΝΕΟ"
},
"view": {
"label": "View"
"label": "Προβολή",
"submenu": {
"force-reload": "Επιβολή επαναφόρτωσης",
"reload": "Επαναφόρτωση",
"reset-zoom": "Πραγματικό μέγεθος",
"toggle-fullscreen": "Εναλλαγή πλήρους οθόνης",
"zoom-in": "Μεγέθυνση",
"zoom-out": "Σμίκρυνση"
}
}
},
"tray": {
"next": "Επόμενο",
"play-pause": "Αναπαραγωγή/Παύση",
"previous": "Προηγούμενο",
"quit": "Έξοδος",
"restart": "Επανεκκίνηση εφαρμογής",
"show": "Εμφάνιση παραθύρου",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Εάν ξεκινήσει διαφήμιση, ο ήχος απενεργοποιείται και η ταχύτητα αναπαραγωγής ορίζεται σε 16x",
"name": "Επιτάχυνση διαφημίσεων"
},
"adblocker": {
"description": "Αποκλεισμός όλων των διαφημίσεων και tracker",
"description": "Αποκλεισμός όλων των διαφημίσεων και της παρακολούθησης από προεπιλογή",
"menu": {
"blocker": "Μέθοδος αποκλεισμού"
"blocker": "Πρόγραμμα αποκλεισμού"
},
"name": "Adblocker"
"name": "Πρόγραμμα αποκλεισμού διαφημίσεων"
},
"album-actions": {
"description": "Προσθέτει κουμπιά Like/Unlike και Dislike/Undislike που δρουν συνολικά σε όλα τα κομμάτια μιας playlist ή ενός άλμπουμ",
"name": "Ενέργειες σε Άλμπουμ"
},
"album-color-theme": {
"description": "Εφαρμόζει ένα δυναμικό θέμα και εφέ με βάση τη χρωματική παλέτα του άλμπουμ",
"name": "Album Color Theme"
"description": "Εφαρμόζει ένα δυναμικό θέμα και οπτικά εφέ βάσει της παλέτας χρωμάτων του άλμπουμ",
"menu": {
"color-mix-ratio": {
"label": "Αναλογία ανάμειξης χρωμάτων",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "Θέμα χρωμάτων άλμπουμ"
},
"ambient-mode": {
"description": "Εφαρμόζει ένα εφέ φωτισμού ρίχνοντας απαλά χρώματα από το βίντεο, στο φόντο της οθόνης σας.",
"description": "Εφαρμόζει ένα εφέ φωτισμού ρίχνοντας απαλά χρώματα από το βίντεο στο φόντο της οθόνης σας",
"menu": {
"blur-amount": {
"label": "Ποσότητα θολώματος",
"submenu": {
"pixels": "{{blurAmount}} pixels"
}
},
"buffer": {
"label": "Buffer",
"label": "Ενδιάμεση μνήμη",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Ποσότητα αδιαφάνειας",
"label": "Αδιαφάνεια",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Ποιότητα",
"submenu": {
"pixels": "{{quality}} pixels"
}
},
"size": {
"label": "Μέγεθος",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Ομαλή μετάβαση",
"submenu": {
"during": "Σε {{interpolationTime}} δεύτερα"
"during": "Για {{interpolationTime}} δευτερόλεπτα"
}
},
"use-fullscreen": {
"label": "Σε πλήρη οθόνη"
}
},
"name": "Λειτουργία περιβάλλοντος"
},
"amuse": {
"description": "Προσθέτει υποστήριξη {{applicationName}} στο widget Amuse now playing από την 6K Labs",
"name": "Amuse",
"response": {
"query": "Ο διακομιστής Amuse API εκτελείται. GET /query για να λάβετε πληροφορίες για το τραγούδι."
}
},
"api-server": {
"description": "Προσθέτει έναν διακομιστή API για τον έλεγχο του παίκτη",
"dialog": {
"request": {
"buttons": {
"allow": "Αποδοχή",
"deny": "Άρνηση"
},
"message": "Επιτρέψτε {{ID}} ({{origin}}) να έχει πρόσβαση στο API;",
"title": "Αίτημα εξουσιοδότησης API"
}
},
"menu": {
"auth-strategy": {
"label": "Στρατηγική εξουσιοδότησης",
"submenu": {
"auth-at-first": {
"label": "Εξουσιοδότηση στο πρώτο αίτημα"
},
"none": {
"label": "Χωρίς εξουσιοδότηση"
}
}
},
"hostname": {
"label": "Όνομα κεντρικού υπολογιστή"
},
"port": {
"label": "Θύρα"
}
},
"name": "Διακομιστής API [Beta]",
"prompt": {
"hostname": {
"label": "Εισάγετε το όνομα κεντρικού υπολογιστή (όπως 0.0.0.0.0) για τον διακομιστή API:",
"title": "Όνομα κεντρικού υπολογιστή"
},
"port": {
"label": "Εισάγετε τη θύρα για το διακομιστή API:",
"title": "Θύρα"
}
}
},
"audio-compressor": {
"description": "Συμπίεση ήχου (μειώνει την ένταση των πιο δυνατών τμημάτων του κύματος και αυξάνει την ένταση των πιο μαλακών τμημάτων)"
"description": "Συμπίεση ήχου (μειώνει την ένταση των πιο δυνατών τμημάτων του κύματος και αυξάνει την ένταση των πιο μαλακών τμημάτων)",
"name": "Συμπιεστής ήχου"
},
"blur-nav-bar": {
"description": "Κάνει τη γραμμή πλοήγησης διαφανή και θολή"
},
"bypass-age-restrictions": {
"description": "Παράκαμψη της επαλήθευσης ηλικίας του YouTube"
},
"captions-selector": {
"auth-proxy-adapter": {
"description": "Υποστήριξη για τη χρήση υπηρεσιών μεσολάβησης αυθεντικοποίησης",
"menu": {
"disable": "Απενεργοποίηση προσαρμογέα μεσολάβησης",
"enable": "Ενεργοποίηση προσαρμογέα μεσολάβησης",
"hostname": {
"label": "Όνομα οικοδεσπότη"
},
"port": {
"label": "Θύρα"
}
},
"name": "Προσαρμογέας μεσολάβησης Auth",
"prompt": {
"selector": {
"none": "None"
"hostname": {
"label": "Εισάγετε το όνομα κεντρικού υπολογιστή για τον τοπικό διακομιστή μεσολάβησης (απαιτείται επανεκκίνηση):",
"title": "Όνομα κεντρικού υπολογιστή μεσολάβησης"
},
"port": {
"label": "Εισάγετε τη θύρα για τον τοπικό διακομιστή μεσολάβησης (απαιτεί επανεκκίνηση):",
"title": "Θύρα διακομιστή μεσολάβησης"
}
}
},
"blur-nav-bar": {
"description": "θέτει τη γραμμή πλοήγησης διαφανή και θολή",
"name": "Θόλωμα γραμμής πλοήγησης"
},
"bypass-age-restrictions": {
"description": "Παράκαμψη επαλήθευσης ηλικίας στο Music Player",
"name": "Παράκαμψη ηλικιακών περιορισμών"
},
"captions-selector": {
"description": "Επιλογέας λεζάντας για μουσικά κομμάτια ήχου του {{applicationName}}",
"menu": {
"autoload": "Αυτόματη επιλογή της τελευταίας χρησιμοποιούμενης λεζάντας",
"disable-captions": "Χωρίς λεζάντες από προεπιλογή"
},
"name": "Επιλογέας λεζάντες",
"prompt": {
"selector": {
"label": "Τρέχουσα γλώσσα λεζάντας: {{language}}",
"none": "None",
"title": "Επιλογή γλώσσας λεζάντας"
}
},
"templates": {
"title": "Ανοίξτε τον επιλογέα λεζάντας"
},
"toast": {
"caption-changed": "Λεζάντα άλλαξε σε {{language}}",
"caption-disabled": "Λεζάντες απενεργοποιήθηκαν",
"no-captions": "Λεζάντες μη διαθέσιμες για αυτό το τραγούδι"
}
},
"compact-sidebar": {
"description": "Να είναι πάντα συμπαγές το sidebar"
"description": "Να είναι πάντα συμπαγές το sidebar",
"name": "Συμπαγής πλευρική μπάρα"
},
"crossfade": {
"description": "Crossfade μεταξύ τραγουδιών",
"menu": {
"advanced": "Για προχωρημένους"
},
"name": "Crossfade [Beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Διάρκεια εξασθένισης (ms)",
"fade-out-duration": "Διάρκεια σβήσιμου (ms)",
"fade-scaling": {
"label": "Κλιμάκωση εξασθένισης",
"linear": "Γραμμική",
"logarithmic": "Λογαριθμική"
}
}
},
"seconds-before-end": "Crossfade N δευτερόλεπτα πριν το τέλος"
},
"title": "Επιλογές Crossfade"
}
}
},
@ -257,14 +425,33 @@
"description": "Κάνει τα τραγούδια να είναι αυτόματα σε παύση",
"menu": {
"apply-once": "Εφαρμόζεται μόνο στο πρώτο τραγούδι"
}
},
"name": "Απενεργοποίηση αυτόματης αναπαραγωγής"
},
"discord": {
"backend": {
"already-connected": "Προσπάθεια σύνδεσης με ενεργή σύνδεση",
"connected": "Συνδεδεμένος με το Discord",
"disconnected": "Αποσυνδεδεμένος από το Discord"
},
"description": "Δείξτε στους φίλους σας τι ακούτε με το Rich Presence",
"menu": {
"auto-reconnect": "Αυτόματη επανασύνδεση",
"clear-activity": "Εκκαθάριση δραστηριότητας",
"clear-activity-after-timeout": "Εκκαθάριση δραστηριότητας μετά από χρονικό όριο",
"connected": "Συνδεδεμένο",
"disconnected": "Αποσυνδεδεμένο",
"hide-duration-left": "Απόκρυψη της διάρκειας που απομένει",
"hide-github-button": "Απόκρυψη του συνδέσμου προς GitHub",
"hide-github-button": "Απόκρυψη κουμπιού συνδέσμου GitHub",
"play-on-application": "Αναπαραγωγή στο {{applicationName}}",
"set-inactivity-timeout": "Ορισμός χρονικού ορίου αδράνειας"
},
"name": "Discord Πλούσια παρουσία",
"prompt": {
"set-inactivity-timeout": {
"label": "Εισαγωγή χρονικού ορίου αδράνειας σε δευτερόλεπτα:",
"title": "Ορισμός χρονικού ορίου αδράνειας"
}
}
},
"downloader": {
@ -274,68 +461,439 @@
"buttons": {
"ok": "OK"
},
"title": "Error in download!"
"message": "Ωχ! Λυπούμαστε, η λήψη απέτυχε…",
"title": "Σφάλμα στη λήψη!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"message": "Λήψη λίστας αναπαραγωγής {{playlistTitle}}",
"title": "Λήψη ξεκίνησε"
"detail": "{{playlistSize}} τραγούδια)",
"message": "Λήψη της λίστας αναπαραγωγής {{playlistTitle}}",
"title": "Η λήψη ξεκίνησε"
}
},
"feedback": {
"conversion-progress": "Μετατροπή: {{percent}}%",
"download-progress": "Download: {{percent}}%",
"preparing-file": "Προετοιμασία αρχείου…"
"converting": "Μετατροπή…",
"done": "Τέλος: {{filePath}}",
"download-info": "Λήψη του {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Λήψη: {{percent}}%",
"downloading": "Λήψη…",
"downloading-counter": "Λήψη {{current}}/{{total}}…",
"downloading-playlist": "Λήψη της λίστας αναπαραγωγής \"{{playlistTitle}}\" - {{playlistSize}} τραγούδια ({{playlistId}})",
"error-while-downloading": "Σφάλμα λήψης \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "Ο φάκελος {{playlistFolder}} υπάρχει ήδη",
"getting-playlist-info": "Λήψη πληροφοριών λίστας αναπαραγωγής…",
"loading": "Φόρτωση…",
"playlist-has-only-one-song": "Η λίστα αναπαραγωγής έχει μόνο ένα στοιχείο, κατεβάζοντάς το απευθείας",
"playlist-id-not-found": "Δεν βρέθηκε ID λίστας αναπαραγωγής",
"playlist-is-empty": "Η λίστα αναπραγωγής είναι άδεια",
"playlist-is-mix-or-private": "Σφάλμα λήψης πληροφοριών λίστας αναπαραγωγής: βεβαιωθείτε ότι δεν είναι ιδιωτική ή «Μικτή για εσάς» λίστα αναπαραγωγής\n\n{{error}}",
"preparing-file": "Προετοιμασία αρχείου…",
"saving": "Αποθήκευση…",
"trying-to-get-playlist-id": "Προσπαθώ να πάρω το αναγνωριστικό της λίστας αναπαραγωγής: {{playlistId}}",
"video-id-not-found": "Το βίντεο δεν βρέθηκε",
"writing-id3": "Εγγραφή ετικετών ID3…"
}
},
"description": "Λήψεις MP3 / ήχου πηγής απευθείας από τη διεπαφή",
"menu": {
"choose-download-folder": "Επιλογή φακέλου λήψης",
"download-finish-settings": {
"label": "Λήψη στο τέλος",
"prompt": {
"last-percent": "Μετά από x ποσοστό",
"last-seconds": "Τελευταία x δευτερόλεπτα",
"title": "Ρύθμιση του πότε θα γίνεται λήψη"
},
"submenu": {
"advanced": "Για προχωρημένους",
"enabled": "Ενεργοποιημένο",
"mode": "Λειτουργία χρόνου",
"percent": "Ποσοστό",
"seconds": "Δευτερόλεπτα"
}
},
"download-playlist": "Λήψη λίστας αναπαραγωγής",
"presets": "Προεπιλογές",
"skip-existing": "Παράλειψη υπάρχοντων αρχείων"
},
"name": "Κατεβαστής",
"renderer": {
"can-not-update-progress": "Δεν μπορεί να ενημερωθεί η πρόοδος"
},
"templates": {
"button": "Download"
"button": "Λήψη"
}
},
"equalizer": {
"description": "Προσθέτει έναν ισοσταθμιστή στο πρόγραμμα αναπαραγωγής",
"menu": {
"presets": {
"label": "Προεπιλογές",
"list": {
"bass-booster": "Ενίσχυση μπάσου"
}
}
},
"name": "Ισοσταθμιστής"
},
"exponential-volume": {
"description": "Κάνει το ρυθμιστικό έντασης εκθετικό, ώστε να είναι ευκολότερη η επιλογή χαμηλότερων εντάσεων.",
"name": "Εκθετικός όγκος"
},
"in-app-menu": {
"description": "Δίνει στις γραμμές μενού μια φανταχτερή, σκοτεινή ή άλμπουμ-χρωματική εμφάνιση",
"menu": {
"hide-dom-window-controls": "Απόκρυψη στοιχείων ελέγχου παραθύρου DOM"
},
"name": "Μενού εντός της εφαρμογής"
},
"lumiastream": {
"description": "Προσθέτει υποστήριξη Lumia Stream",
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "Προσθέτει υποστήριξη στίχων για τα περισσότερα τραγούδια",
"menu": {
"romanized-lyrics": "Ρομαντικοποιημένοι στίχοι"
},
"name": "Στίχοι Genius",
"renderer": {
"fetched-lyrics": "Στίχοι για το Genius"
}
},
"music-together": {
"description": "Μοιραστείτε μια λίστα αναπαραγωγής με άλλους. Όταν ο οικοδεσπότης παίζει ένα τραγούδι, όλοι οι άλλοι θα ακούσουν το ίδιο τραγούδι",
"dialog": {
"enter-host": "Εισαγωγή ID κεντρικού υπολογιστή"
},
"internal": {
"save": "Αποθήκευση",
"track-source": "Πηγή διαδρομής",
"unknown-user": "Άγνωστος χρήστης"
},
"menu": {
"click-to-copy-id": "Αντιγραφή ID κεντρικού υπολογιστή",
"close": "Κλείσιμο Music Together",
"connected-users": "Συνδεδεμένοι χρήστες",
"disconnect": "Αποσύνδεση Music Together",
"empty-user": "Κανένας συνδεδεμένος χρήστης",
"host": "Κεντρικός υπολογιστής Music Together",
"join": "Γίνετε μέλος της Μουσικής Μαζί",
"permission": {
"all": "Επιτρέψτε στους επισκέπτες να ελέγχουν τη λίστα αναπαραγωγής και τον παίκτη",
"host-only": "Μόνο ο οικοδεσπότης μπορεί να ελέγχει τη λίστα αναπαραγωγής και τον παίκτη",
"playlist": "Επιτρέψτε στους επισκέπτες να ελέγχουν τη λίστα αναπαραγωγής"
},
"set-permission": "Άδεια ελέγχου αλλαγής",
"status": {
"disconnected": "Αποσυνδεδεμένο",
"guest": "Συνδεδεμένος ως επισκέπτης",
"host": "Συνδεδεμένος ως οικοδεσπότης"
}
},
"name": "Music Together [Beta]",
"toast": {
"add-song-failed": "Απέτυχε η προσθήκη τραγουδιού",
"closed": "Το Music Together έκλεισε",
"disconnected": "Το Music Together αποσυνδέθηκε",
"host-failed": "Απέτυχε να φιλοξενήσει το Μουσική Μαζί",
"id-copied": "Το ID κεντρικού υπολογιστή αντιγράφηκε στο πρόχειρο",
"id-copy-failed": "Απέτυχε η αντιγραφή ID κεντρικού υπολογιστή στο πρόχειρο",
"join-failed": "Απέτυχε να ενταχθεί στη Μουσική Μαζί",
"joined": "Ενωμένη μουσική μαζί",
"permission-changed": "Η άδεια «Μουσική Μαζί» άλλαξε σε «{{permission}}»",
"remove-song-failed": "Απέτυχε η αφαίρεση τραγουδιού",
"user-connected": "{{name}} εντάχθηκε στη Μουσική Μαζί",
"user-disconnected": "{{name}} αριστερά Μουσική Μαζί"
}
},
"navigation": {
"name": "Navigation"
"description": "Βέλη πλοήγησης Επόμενο/Πίσω ενσωματωμένα απευθείας στο περιβάλλον εργασίας, όπως στο αγαπημένο σας πρόγραμμα περιήγησης",
"name": "Πλοήγηση",
"templates": {
"back": {
"title": "Μετάβαση στην προηγούμενη σελίδα"
},
"forward": {
"title": "Μετάβαση στην επόμενη σελίδα"
}
}
},
"no-google-login": {
"description": "Αφαίρεση των κουμπιών και των συνδέσμων σύνδεσης Google από το περιβάλλον εργασίας",
"name": "No Google Login"
},
"notifications": {
"name": "Notifications"
"description": "Εμφάνιση ειδοποίησης όταν ξεκινάει η αναπαραγωγή ενός τραγουδιού (οι διαδραστικές ειδοποιήσεις είναι διαθέσιμες στα Windows)",
"menu": {
"interactive": "Διαδραστικές ειδοποιήσεις",
"interactive-settings": {
"label": "Διαδραστικές ρυθμίσεις",
"submenu": {
"hide-button-text": "Απόκρυψη κειμένου κουμπιού",
"refresh-on-play-pause": "Ανανέωση σε Αναπαραγωγή/Παύση",
"tray-controls": "Άνοιγμα/κλείσιμο με κλικ στο δίσκο"
}
},
"priority": "Προτεραιότητα κοινοποίησης",
"toast-style": "Στυλ τοστ",
"unpause-notification": "Εμφάνιση ειδοποίησης κατά την κατάργηση της παύσης"
},
"name": "Ειδοποιήσεις"
},
"performance-improvement": {
"description": "Βελτιώστε την απόδοση ενεργοποιώντας πειραματικές δέσμες ενεργειών",
"name": "Βελτίωση της απόδοσης με την ενεργοποίηση επικίνδυνων σεναρίωνΒελτίωση της απόδοσης [Beta]"
},
"picture-in-picture": {
"description": "Επιτρέπει την εναλλαγή της εφαρμογής σε λειτουργία εικόνας σε εικόνα",
"menu": {
"always-on-top": "Πάντα σε πρώτο πλάνο",
"hotkey": {
"label": "Πλήκτρο πρόσβασης",
"prompt": {
"keybind-options": {
"hotkey": "Πλήκτρο πρόσβασης"
},
"label": "Επιλέξτε ένα πλήκτρο συντόμευσης για να ενεργοποιήσετε την εικόνα στην εικόνα",
"title": "Πλήκτρο Hotkey Εικόνα-σε-Εικόνα"
}
},
"save-window-position": "Αποθήκευση θέσης παραθύρου",
"save-window-size": "Αποθήκευση μεγέθους παραθύρου",
"use-native-pip": "Χρήση εγγενούς PiP του προγράμματος περιήγησης"
},
"name": "Εικόνα-στην-εικόνα",
"templates": {
"button": "Εικόνα-στην-εικόνα"
}
},
"playback-speed": {
"description": "Ακούστε γρήγορα, ακούστε αργά! Προσθέτει ένα ρυθμιστικό που ελέγχει την ταχύτητα του τραγουδιού",
"name": "Ταχύτητα αναπαραγωγής",
"templates": {
"button": "Ταχύτητα"
}
},
"precise-volume": {
"description": "Ελέγξτε την ένταση του ήχου με ακρίβεια χρησιμοποιώντας τον τροχό του ποντικιού/τα πλήκτρα, με ένα προσαρμοσμένο HUD και προσαρμόσιμα βήματα έντασης",
"menu": {
"arrows-shortcuts": "Τοπικά πλήκτρα βέλους Έλεγχοι",
"custom-volume-steps": "Ορισμός προσαρμοσμένων βημάτων έντασης ήχου",
"global-shortcuts": "Παγκόσμια πλήκτρα συντόμευσης"
},
"name": "Ακριβής Ήχος",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Μείωση έντασης",
"increase": "Αύξηση έντασης"
},
"label": "Επιλέξτε Παγκόσμια δέσμευση πλήκτρων έντασης ήχου:",
"title": "Επιλέξτε Παγκόσμια δέσμευση πλήκτρων έντασης ήχου"
},
"volume-steps": {
"label": "Επιλέξτε Βήματα αύξησης/μείωσης έντασης ήχου",
"title": "Βήματα έντασης"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Τρέχουσα ποιότητα: {{quality}}",
"message": "Επιλογή ποιότητας βίντεο:",
"title": "Επιλογή ποιότητας βίντεο"
}
}
},
"description": "Επιτρέπει την αλλαγή της ποιότητας βίντεο με ένα κουμπί στην επικάλυψη βίντεο",
"name": "Αλλαγή ποιότητας βίντεο",
"renderer": {
"quality-settings-button": {
"label": "Άνοιγμα ρυθμίσεων ποιότητας αναπαραγωγέα"
}
}
},
"scrobbler": {
"description": "Προσθήκη υποστήριξης scrobbling (κ.λπ. last.fm, Listenbrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Απέτυχε η πιστοποίηση ταυτότητας στο Last.fm\nΚρύψτε το αναδυόμενο παράθυρο μέχρι την επόμενη επανεκκίνηση.",
"title": "Αποτυχία ελέγχου ταυτότητας"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Ρυθμίσεις API Last.fm"
},
"listenbrainz": {
"token": "Εισάγετε το διακριτικό χρήστη ListenBrainz"
},
"scrobble-alternative-title": "Χρήση εναλλακτικών τίτλων",
"scrobble-other-media": "Scrobble άλλα μέσα ενημέρωσης"
},
"name": "Σκρόμπλερ",
"prompt": {
"lastfm": {
"api-key": "Κλειδί API Last.fm",
"api-secret": "Μυστικό API του Last.fm"
},
"listenbrainz": {
"token": {
"label": "Εισάγετε το διακριτικό χρήστη ListenBrainz:",
"title": "Κουπόνι ListenBrainz"
}
}
}
},
"shortcuts": {
"description": "Επιτρέπετε τον καθορισμό παγκόσμιων πλήκτρων άμεσης πρόσβασης για την παρακολούθηση (αναπαραγωγή/παύση/επόμενη/προηγούμενη) και την απενεργοποίηση του OSD πολυμέσων με παράκαμψη των πλήκτρων πολυμέσων, την ενεργοποίηση του Ctrl/CMD + F για αναζήτηση, την ενεργοποίηση της υποστήριξης Linux MPRIS για τα πλήκτρα πολυμέσων και προσαρμοσμένα πλήκτρα άμεσης πρόσβασης για προχωρημένους χρήστες",
"menu": {
"override-media-keys": "Παράκαμψη κλειδιών πολυμέσων",
"set-keybinds": "Ορισμός παγκόσμιων ελέγχων τραγουδιού"
},
"name": "Συντομεύσεις (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Next"
}
"next": "Επόμενο",
"play-pause": "Αναπαραγωγή / Παύση",
"previous": "Προηγούμενο"
},
"label": "Επιλέξτε Global Keybinds για το τραγούδι Έλεγχος:",
"title": "Παγκόσμια δέσμευση πλήκτρων"
}
}
},
"skip-disliked-songs": {
"description": "Παραλείπει τα αρεστά τραγούδια",
"name": "Παραλείψτε τα τραγούδια που δεν άρεσαν"
},
"skip-silences": {
"description": "Αυτόματη παράλειψη τμημάτων σιωπής σε τραγούδια",
"name": "Παραλείψτε τις σιωπές"
},
"sponsorblock": {
"description": "Παραλείπει αυτόματα μέρη που δεν είναι μουσικά, όπως intro/outro ή μέρη μουσικών βίντεο όπου δεν παίζεται το τραγούδι",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "Παρέχει συγχρονισμένους στίχους σε τραγούδια, χρησιμοποιώντας παρόχους όπως η LRClib.",
"errors": {
"fetch": "⚠️ Προέκυψε σφάλμα κατά την ανάκτηση των στίχων.\n\tΠροσπαθήστε ξανά αργότερα.",
"not-found": "⚠️ Δεν βρέθηκαν στίχοι για αυτό το τραγούδι."
},
"menu": {
"default-text-string": {
"label": "Προεπιλεγμένος χαρακτήρας μεταξύ στίχων",
"tooltip": "Επιλέξτε τον προεπιλεγμένο χαρακτήρα που θα χρησιμοποιηθεί για το κενό μεταξύ των στίχων"
},
"line-effect": {
"label": "Επίδραση γραμμής",
"submenu": {
"fancy": {
"label": "Φανταχτερό",
"tooltip": "Χρήση μεγάλων εφέ που μοιάζουν με εφαρμογές στην τρέχουσα γραμμή"
},
"focus": {
"label": "Εστίαση",
"tooltip": "Κάντε μόνο την τρέχουσα γραμμή λευκή"
},
"offset": {
"label": "Μετατόπιση",
"tooltip": "Μετατόπιση προς τα δεξιά της τρέχουσας γραμμής"
},
"scale": {
"label": "Κλίμακα",
"tooltip": "Κλιμάκωση της τρέχουσας γραμμής"
}
},
"tooltip": "Επιλέξτε το εφέ που θα εφαρμοστεί στην τρέχουσα γραμμή"
},
"precise-timing": {
"label": "Κάντε τους στίχους τέλεια συγχρονισμένους",
"tooltip": "Υπολογίζει με ακρίβεια χιλιοστού του δευτερολέπτου την εμφάνιση της επόμενης γραμμής (μπορεί να έχει μικρή επίπτωση στην απόδοση)"
},
"romanization": {
"label": "Στίχοι Ρομαντικοποίηση",
"tooltip": "Αν οι στίχοι είναι σε διαφορετική γλώσσα, προσπαθήστε να εμφανίσετε μια λατινική έκδοση."
},
"show-lyrics-even-if-inexact": {
"label": "Εμφάνιση στίχων ακόμα και αν είναι ανακριβείς",
"tooltip": "Εάν το τραγούδι δεν βρεθεί, το πρόσθετο προσπαθεί ξανά με διαφορετικό ερώτημα αναζήτησης.\nΤο αποτέλεσμα της δεύτερης προσπάθειας μπορεί να μην είναι ακριβές."
},
"show-time-codes": {
"label": "Εμφάνιση κωδικών ώρας",
"tooltip": "Εμφάνιση των κωδικών ώρας δίπλα στους στίχους"
}
},
"name": "Συγχρονισμένοι στίχοι",
"refetch-btn": {
"fetching": "Φέρνοντας...",
"normal": "Στίχοι Refetch"
},
"warnings": {
"duration-mismatch": "⚠️ - Οι στίχοι ενδέχεται να μην είναι συγχρονισμένοι λόγω αναντιστοιχίας διάρκειας.",
"inexact": "⚠️ - Οι στίχοι για αυτό το τραγούδι μπορεί να μην είναι ακριβείς",
"instrumental": "⚠️ - Αυτό είναι ένα ορχηστρικό τραγούδι"
}
},
"taskbar-mediacontrol": {
"description": "Έλεγχος αναπαραγωγής από τη γραμμή εργασιών των Windows",
"name": "Έλεγχος μέσων γραμμής εργασιών"
},
"touchbar": {
"description": "Προσθέτει ένα γραφικό στοιχείο TouchBar για χρήστες macOS",
"name": "TouchBar"
},
"tuna-obs": {
"description": "Ενσωμάτωση με το plugin Tuna του OBS",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Αποτρέπει την εμφάνιση του προγράμματος αναπαραγωγής κατά την αναπαραγωγή ενός τραγουδιού",
"name": "Ανεπαίσθητος παίκτης"
},
"video-toggle": {
"description": "Προσθέτει ένα κουμπί για εναλλαγή μεταξύ της λειτουργίας βίντεο/τραγουδιού. μπορεί επίσης προαιρετικά να αφαιρέσει ολόκληρη την καρτέλα βίντεο",
"menu": {
"align": {
"label": "Στοίχιση",
"submenu": {
"left": "Αριστερά",
"middle": "Middle",
"right": "Right"
"right": "Δεξιά"
}
},
"force-hide": "Αναγκαστική αφαίρεση καρτέλας βίντεο",
"mode": {
"label": "Mode"
"label": "Mode",
"submenu": {
"custom": "Προσαρμοσμένη εναλλαγή",
"disabled": "Απενεργοποιημένο",
"native": "Γηγενής εναλλαγή"
}
}
},
"name": "Εναλλαγή βίντεο",
"templates": {
"button": "Song"
"button-song": "Τραγούδι",
"button-video": "Βίντεο"
}
},
"visualizer": {
"description": "Προσθέτει έναν απεικονιστή στο πρόγραμμα αναπαραγωγής",
"menu": {
"visualizer-type": "Τύπος απεικονιστή"
},
"name": "Απεικονιστής"
}
}
}

View File

@ -156,20 +156,27 @@
"hide": "Hide",
"label": "Like buttons"
},
"custom-window-title": {
"label": "Custom window title",
"prompt": {
"label": "Enter custom window title: (leave empty to disable)",
"placeholder": "Example: {{applicationName}}"
}
},
"remove-upgrade-button": "Remove upgrade button",
"theme": {
"dialog": {
"button": {
"cancel": "Cancel",
"remove": "Remove"
},
"remove-theme": "Are you sure you want to remove the custom theme?",
"remove-theme-message": "This will remove the custom theme"
},
"label": "Theme",
"submenu": {
"import-css-file": "Import custom CSS file",
"no-theme": "No theme"
},
"dialog": {
"remove-theme": "Are you sure you want to remove the custom theme?",
"remove-theme-message": "This will remove the custom theme",
"button": {
"cancel": "Cancel",
"remove": "Remove"
}
}
}
}
@ -201,12 +208,16 @@
"restart": "Restart App",
"show": "Show window",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "If an ad play it mutes the audio and sets playback speed to 16x",
"name": "Ad Speedup"
},
"adblocker": {
"description": "Block all ads and tracking out of the box",
"menu": {
@ -220,15 +231,16 @@
},
"album-color-theme": {
"description": "Applies a dynamic theme and visual effects based on the album color palette",
"name": "Album Color Theme",
"menu": {
"color-mix-ratio": {
"label": "Color mix ratio",
"submenu": {
"percent": "{{ratio}}%"
}
}
}
},
"enable-seekbar": "Enable seekbar theming"
},
"name": "Album Color Theme"
},
"ambient-mode": {
"description": "Applies a lighting effect by casting gentle colors from the video, into your screens background",
@ -275,20 +287,110 @@
},
"name": "Ambient Mode"
},
"amuse": {
"description": "Adds {{applicationName}} support for the Amuse now playing widget by 6K Labs",
"name": "Amuse",
"response": {
"query": "Amuse API server is running. GET /query to get song info."
}
},
"api-server": {
"description": "Adds an API server to control the player",
"dialog": {
"request": {
"buttons": {
"allow": "Allow",
"deny": "Deny"
},
"message": "Allow {{ID}} ({{origin}}) to access the API?",
"title": "API authorization request"
}
},
"menu": {
"auth-strategy": {
"label": "Authorization strategy",
"submenu": {
"auth-at-first": {
"label": "Authorize at first request"
},
"none": {
"label": "No authorization"
}
}
},
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
},
"https": {
"label": "HTTPS & Certificates",
"submenu": {
"enable-https": {
"label": "Enable HTTPS"
},
"cert": {
"label": "Certificate file (.crt/.pem)",
"dialogTitle": "Select HTTPS certificate file"
},
"key": {
"label": "Private key file (.key/.pem)",
"dialogTitle": "Select HTTPS private key file"
}
}
}
},
"name": "API Server [Beta]",
"prompt": {
"hostname": {
"label": "Enter the hostname (like 0.0.0.0) for the API server:",
"title": "Hostname"
},
"port": {
"label": "Enter the port for the API server:",
"title": "Port"
}
}
},
"audio-compressor": {
"description": "Apply compression to audio (lowers the volume of the loudest parts of the signal and raises the volume of the softest parts)",
"name": "Audio Compressor"
},
"auth-proxy-adapter": {
"description": "Support for the use of authentication proxy services",
"menu": {
"disable": "Disable Proxy Adapter",
"enable": "Enable Proxy Adapter",
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "Auth Proxy Adapter",
"prompt": {
"hostname": {
"title": "Proxy Hostname",
"label": "Enter hostname for local proxy server (requires restart):"
},
"port": {
"title": "Proxy Port",
"label": "Enter port for local proxy server (requires restart):"
}
}
},
"blur-nav-bar": {
"description": "Makes navigation bar transparent and blurry",
"name": "Blur Navigation Bar"
},
"bypass-age-restrictions": {
"description": "Bypass YouTube's age verification",
"description": "Bypass Music Player's age verification",
"name": "Bypass Age Restrictions"
},
"captions-selector": {
"description": "Caption selector for YouTube Music audio tracks",
"description": "Caption selector for {{applicationName}} audio tracks",
"menu": {
"autoload": "Automatically select last used caption",
"disable-captions": "No captions by default"
@ -303,6 +405,11 @@
},
"templates": {
"title": "Open captions selector"
},
"toast": {
"caption-changed": "Caption changed to {{language}}",
"caption-disabled": "Captions disabled",
"no-captions": "No captions available for this song"
}
},
"compact-sidebar": {
@ -331,6 +438,19 @@
}
}
},
"custom-output-device": {
"description": "Configure a custom output media device for songs",
"menu": {
"device-selector": "Select Device"
},
"name": "Custom Output Device",
"prompt": {
"device-selector": {
"label": "Choose the output media device to be used",
"title": "Select Output Device"
}
}
},
"disable-autoplay": {
"description": "Makes song start in \"paused\" mode",
"menu": {
@ -353,8 +473,16 @@
"disconnected": "Disconnected",
"hide-duration-left": "Hide duration left",
"hide-github-button": "Hide GitHub link Button",
"play-on-youtube-music": "Play on YouTube Music",
"set-inactivity-timeout": "Set inactivity timeout"
"play-on-application": "Play on {{applicationName}}",
"set-inactivity-timeout": "Set inactivity timeout",
"set-status-display-type": {
"label": "Status text",
"submenu": {
"application": "Listening to {{applicationName}}",
"artist": "Listening to {artist}",
"title": "Listening to {song title}"
}
}
},
"name": "Discord Rich Presence",
"prompt": {
@ -410,6 +538,21 @@
"description": "Downloads MP3 / source audio directly from the interface",
"menu": {
"choose-download-folder": "Choose download folder",
"download-finish-settings": {
"label": "Download on finish",
"prompt": {
"last-percent": "After x percent",
"last-seconds": "Last x seconds",
"title": "Configure when to download"
},
"submenu": {
"advanced": "Advanced",
"enabled": "Enabled",
"mode": "Time mode",
"percent": "Percent",
"seconds": "Seconds"
}
},
"download-playlist": "Download playlist",
"presets": "Presets",
"skip-existing": "Skip existing files"
@ -422,6 +565,18 @@
"button": "Download"
}
},
"equalizer": {
"description": "Adds an equalizer to the player",
"menu": {
"presets": {
"label": "Presets",
"list": {
"bass-booster": "Bass booster"
}
}
},
"name": "Equalizer"
},
"exponential-volume": {
"description": "Makes the volume slider exponential so it's easier to select lower volumes.",
"name": "Exponential Volume"
@ -495,7 +650,15 @@
},
"navigation": {
"description": "Next/Back navigation arrows directly integrated in the interface, like in your favorite browser",
"name": "Navigation"
"name": "Navigation",
"templates": {
"back": {
"title": "Go to previous page"
},
"forward": {
"title": "Go to next page"
}
}
},
"no-google-login": {
"description": "Remove Google login buttons and links from the interface",
@ -519,6 +682,10 @@
},
"name": "Notifications"
},
"performance-improvement": {
"description": "Improve performance by enabling experimental scripts",
"name": "Performance improvement [Beta]"
},
"picture-in-picture": {
"description": "Allows to switch the app to picture-in-picture mode",
"menu": {
@ -583,26 +750,33 @@
}
},
"description": "Allows changing the video quality with a button on the video overlay",
"name": "Video Quality Changer"
"name": "Video Quality Changer",
"renderer": {
"quality-settings-button": {
"label": "Open player quality changer"
}
}
},
"scrobbler": {
"description": "Add scrobbling support (etc. last.fm, Listenbrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"title": "Authentication Failed",
"message": "Failed to authenticate with Last.fm\nHide the popup until the next restart."
"message": "Failed to authenticate with Last.fm\nHide the popup until the next restart.",
"title": "Authentication Failed"
}
}
},
"menu": {
"scrobble-other-media": "Scrobble other media",
"lastfm": {
"api-settings": "Last.fm API Settings"
},
"listenbrainz": {
"token": "Enter ListenBrainz user token"
}
},
"scrobble-alternative-title": "Use alternative titles",
"scrobble-alternative-artist": "Use alternative artists",
"scrobble-other-media": "Scrobble other media"
},
"name": "Scrobbler",
"prompt": {
@ -649,6 +823,75 @@
"description": "Automatically Skips non-music parts like intro/outro or parts of music videos where the song isn't playing",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "Provides synced lyrics to songs, using providers like LRClib.",
"errors": {
"fetch": "⚠️\tAn error occurred while fetching the lyrics.\n\tPlease try again later.",
"not-found": "⚠️ No lyrics found for this song."
},
"menu": {
"preferred-provider": {
"label": "Preferred Provider",
"tooltip": "Choose the default provider to use",
"none": {
"label": "None",
"tooltip": "No preferred provider"
}
},
"default-text-string": {
"label": "Default character between lyrics",
"tooltip": "Choose the default character to use for the gap between lyrics"
},
"line-effect": {
"label": "Line effect",
"submenu": {
"fancy": {
"label": "Fancy",
"tooltip": "Use large, app-like effects on the current line"
},
"focus": {
"label": "Focus",
"tooltip": "Make only the current line white"
},
"offset": {
"label": "Offset",
"tooltip": "Offset on the right the current line"
},
"scale": {
"label": "Scale",
"tooltip": "Scale the current line"
}
},
"tooltip": "Choose the effect to apply to the current line"
},
"precise-timing": {
"label": "Make the lyrics perfectly synced",
"tooltip": "Calculate to the milisecond the display of the next line (can have a small impact on performance)"
},
"romanization": {
"label": "Romanize lyrics",
"tooltip": "If the lyrics are in a different language, try to display a latin version."
},
"show-lyrics-even-if-inexact": {
"label": "Show lyrics even if inexact",
"tooltip": "If the song is not found, the plugin tries again with a different search query.\nThe result from the second attempt may not be exact."
},
"show-time-codes": {
"label": "Show time codes",
"tooltip": "Show the time codes next to the lyrics"
}
},
"name": "Synced Lyrics",
"refetch-btn": {
"fetching": "Fetching...",
"normal": "Refetch lyrics"
},
"warnings": {
"duration-mismatch": "⚠️ - The lyrics may be out of sync due to a duration mismatch.",
"inexact": "⚠️ - The lyrics for this song may not be exact",
"instrumental": "⚠️ - This is an instrumental song"
}
},
"taskbar-mediacontrol": {
"description": "Control playback from your Windows taskbar",
"name": "Taskbar Media Control"
@ -657,10 +900,35 @@
"description": "Adds a TouchBar widget for macOS users",
"name": "TouchBar"
},
"transparent-player": {
"description": "Makes the app window transparent",
"name": "Transparent Player",
"menu": {
"opacity": {
"label": "Opacity",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Type",
"submenu": {
"acrylic": "Acrylic",
"mica": "Mica",
"tabbed": "Tabbed",
"none": "None"
}
}
}
},
"tuna-obs": {
"description": "Integration with OBS's plugin Tuna",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Prevents the player from popping up when playing a song",
"name": "Unobtrusive Player"
},
"video-toggle": {
"description": "Adds a button to switch between Video/Song mode. can also optionally remove the whole video tab",
"menu": {
@ -684,7 +952,8 @@
},
"name": "Video Toggle",
"templates": {
"button": "Song"
"button-song": "Song",
"button-video": "Video"
}
},
"visualizer": {

View File

@ -2,14 +2,14 @@
"common": {
"console": {
"plugins": {
"execute-failed": "Error al ejecutar el plugin {{pluginName}}::{{contextName}}",
"executed-at-ms": "Plugin {{pluginName}}: {{contextName}} ejecutado en {{ms}}ms",
"initialize-failed": "Error al inicializar plugin \"{{pluginName}}\"",
"load-all": "Cargando todos los plugins",
"load-failed": "Error al cargar el plugin \"{{pluginName}}\"",
"loaded": "Plugin \"{{pluginName}}\" cargado",
"unload-failed": "No se ha podido descargar el plugin \"{{pluginName}}\"",
"unloaded": "Plugin \"{{pluginName}}\" descargado"
"execute-failed": "Error al ejecutar el complemento {{pluginName}}::{{contextName}}",
"executed-at-ms": "Complemento {{pluginName}}::{{contextName}} se ejecutó en {{ms}}ms",
"initialize-failed": "Error al inicializar el complemento \"{{pluginName}}\"",
"load-all": "Cargando todos los complementos",
"load-failed": "Error al cargar el complemento \"{{pluginName}}\"",
"loaded": "Complementos \"{{pluginName}}\" cargados",
"unload-failed": "No se ha podido descargar el complemento \"{{pluginName}}\"",
"unloaded": "Complemento \"{{pluginName}}\" descargado"
}
}
},
@ -21,7 +21,7 @@
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Carga finalizada. DevTools abiertos"
"dev-tools": "Carga finalizada. DevTools abierto"
},
"i18n": {
"loaded": "i18n cargado"
@ -36,7 +36,7 @@
"details": "¡Error sin repuesta!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Borrar caché de la aplicación"
"clearing-cache-after-20s": "Borrando caché de la aplicación"
},
"window": {
"tried-to-render-offscreen": "La ventana intentó mostrarse fuera de la pantalla, windowSize={{windowSize}}, displaySize={{displaySize}}, posicion={{position}}"
@ -45,21 +45,21 @@
"dialog": {
"hide-menu-enabled": {
"detail": "El menú está oculto, utiliza \"Alt\" para mostrarlo (o \"Escape\" si utilizas el menú integrado en la aplicación)",
"message": "Menu oculto esta deshabilitado",
"title": "Menú oculto activado"
"message": "El \"Menú Oculto\" está habilitado",
"title": "\"Menú oculto\" habilitado"
},
"need-to-restart": {
"buttons": {
"later": "Más tarde",
"restart-now": "Reiniciar ahora"
},
"detail": "\"{{pluginName}}\" se requiere reiniciar para que el plugin tome efecto",
"detail": "El complemento \"{{pluginName}}\" requiere reiniciar para tomar efecto",
"message": "\"{{pluginName}}\" necesita reiniciar",
"title": "Se requiere reinicio"
},
"unresponsive": {
"buttons": {
"quit": "Dejar",
"quit": "Salir",
"relaunch": "Volver a abrir",
"wait": "Espera"
},
@ -74,7 +74,7 @@
"ok": "OK"
},
"detail": "Una nueva versión está disponible y puede descargarse en {{downloadLink}}",
"message": "Ya está disponible una nueva versión",
"message": "Hay una nueva versión disponible",
"title": "Actualización disponible"
}
},
@ -84,7 +84,7 @@
"label": "Navegación",
"submenu": {
"copy-current-url": "Copiar la URL actual",
"go-back": "Regresar",
"go-back": "Atrás",
"go-forward": "Adelante",
"quit": "Salir",
"restart": "Reiniciar la aplicación"
@ -99,10 +99,10 @@
"auto-reset-app-cache": "Restablecer la caché de la aplicación al iniciarla",
"disable-hardware-acceleration": "Desactivar la aceleración por hardware",
"edit-config-json": "Editar config.json",
"override-user-agent": "sobrescribir User-Agent",
"restart-on-config-changes": "Reinicie al cambiar la configuración",
"override-user-agent": "Sobrescribir User-Agent",
"restart-on-config-changes": "Reiniciar al modificar la configuración",
"set-proxy": {
"label": "Definir proxy",
"label": "Establecer proxy",
"prompt": {
"label": "Introduzca la dirección del proxy: (déjela vacía para desactivarla)",
"placeholder": "Ejemplo: SOCKS5://127.0.0.1:9999",
@ -112,28 +112,28 @@
"toggle-dev-tools": "Activar DevTools"
}
},
"always-on-top": "Siempre arriba",
"always-on-top": "Siempre al frente",
"auto-update": "Actualización automática",
"hide-menu": {
"dialog": {
"message": "El menú se ocultará la próxima vez que lo inicies, usa [Alt] para mostrarlo (o pulsa [`] si usas el menú dentro de la aplicación)",
"title": "Ocultar menú habilitado"
"message": "El menú se ocultará la próxima vez que inicies la aplicación, usa [Alt] para mostrarlo (o pulsa [`] si usas el menú dentro de la aplicación)",
"title": "Menú oculto habilitado"
},
"label": "Ocultar menú"
},
"language": {
"dialog": {
"message": "El idioma se cambiará después de reiniciar",
"title": "Se cambio el idioma"
"title": "Se cambió el idioma"
},
"label": "Idioma",
"submenu": {
"to-help-translate": "¿Quieres ayudar a traducir? Haz clic aquí"
}
},
"resume-on-start": "Reanudar la última canción al iniciar la aplicación",
"single-instance-lock": "Bloquear en una instancia unica",
"start-at-login": "Comenzar al iniciar sesión",
"resume-on-start": "Reanudar la última canción reproducida al iniciar la aplicación",
"single-instance-lock": "Limitar a una única instancia",
"start-at-login": "Iniciar al iniciar sesión",
"starting-page": {
"label": "Página de inicio",
"unset": "Sin configurar"
@ -142,21 +142,28 @@
"label": "Bandeja",
"submenu": {
"disabled": "Desactivado",
"enabled-and-hide-app": "Activar y ocultar la aplicación",
"enabled-and-show-app": "Activado y mostrar aplicación",
"enabled-and-hide-app": "Habilitado y ocultar la aplicación",
"enabled-and-show-app": "Habilitado y mostrar aplicación",
"play-pause-on-click": "Reproducir/Pausar al hacer clic"
}
},
"visual-tweaks": {
"label": "Ajustes visuales",
"submenu": {
"custom-window-title": {
"label": "Título de ventana personalizado",
"prompt": {
"label": "Ingresa un título de ventana personalizado: (déjalo vacío para desactivar)",
"placeholder": "Ejemplo: {{applicationName}}"
}
},
"like-buttons": {
"default": "Predeterminado",
"force-show": "Forzar la visualización",
"hide": "Ocultar",
"label": "Botones de \"Me Gusta\""
},
"remove-upgrade-button": "Remover el botón de Actualización",
"remove-upgrade-button": "Eliminar el botón de Actualización",
"theme": {
"dialog": {
"button": {
@ -178,7 +185,7 @@
},
"plugins": {
"enabled": "Habilitado",
"label": "Plugins",
"label": "Complementos",
"new": "NUEVO"
},
"view": {
@ -201,21 +208,25 @@
"restart": "Reiniciar la aplicación",
"show": "Mostrar ventana",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Si se reproduce un anuncio, silencia el audio y fija la velocidad de reproducción en 16x",
"name": "Aumento de la velocidad de anuncios"
},
"adblocker": {
"description": "Bloquear todos los anuncios y el rastreo",
"description": "Bloquear todos los anuncios y el rastreo por defecto",
"menu": {
"blocker": "Bloqueador"
},
"name": "Bloqueador de anuncios"
},
"album-actions": {
"description": "Añade los botones \"No me gusta\", \"No me gusta\", \"Me gusta\" y \"No me gusta\" para aplicarlos a todas las canciones de una lista de reproducción o un álbum",
"description": "Añade los botones \"Quitar no me gusta\", \"No me gusta\", \"Me gusta\" y \"Quitar me gusta\" para aplicarlos a todas las canciones de una lista de reproducción o un álbum",
"name": "Acciones en el álbum"
},
"album-color-theme": {
@ -226,17 +237,18 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Habilitar temas a la barra de búsqueda"
},
"name": "Color del álbum"
"name": "Tema de color del álbum"
},
"ambient-mode": {
"description": "Aplica un efecto de iluminación mediante la proyección de colores suaves del vídeo en el fondo de la pantalla",
"description": "Aplica un efecto de iluminación mediante la proyección de colores suaves extraídos del vídeo sobre el fondo de pantalla",
"menu": {
"blur-amount": {
"label": "Cantidad de desenfoque",
"submenu": {
"pixels": "{{blurAmount}} pixeles"
"pixels": "{{blurAmount}} píxeles"
}
},
"buffer": {
@ -246,7 +258,7 @@
}
},
"opacity": {
"label": "Transparencia",
"label": "Opacidad",
"submenu": {
"percent": "{{opacity}}%"
}
@ -275,20 +287,110 @@
},
"name": "Modo ambiente"
},
"amuse": {
"description": "Agrega soporte a {{applicationName}} para el widget \"reproduciendo\" de Amuse por 6K Labs",
"name": "Amuse",
"response": {
"query": "El servidor API de Amuse se está ejecutando. Usa GET /query para obtener información de la canción."
}
},
"api-server": {
"description": "Añade un servidor API para controlar el reproductor",
"dialog": {
"request": {
"buttons": {
"allow": "Permitir",
"deny": "Denegar"
},
"message": "¿Permitir que {{ID}} ({{origin}}) acceda a la API?",
"title": "Petición de autorización API"
}
},
"menu": {
"auth-strategy": {
"label": "Estrategia de autorización",
"submenu": {
"auth-at-first": {
"label": "Autorizar a la primera solicitud"
},
"none": {
"label": "Sin autorización"
}
}
},
"hostname": {
"label": "Nombre del host"
},
"https": {
"label": "HTTPS & Certificados",
"submenu": {
"cert": {
"dialogTitle": "Selecciona el archivo de certificado HTTPS",
"label": "Archivo de certificado (.crt/.pem)"
},
"enable-https": {
"label": "Habilitar HTTPS"
},
"key": {
"dialogTitle": "Selecciona el archivo de clave privada HTTPS",
"label": "Archivo de clave privada (.key/.pem)"
}
}
},
"port": {
"label": "Puerto"
}
},
"name": "Servidor API [Beta]",
"prompt": {
"hostname": {
"label": "Introduzca el nombre de host (como 0.0.0.0) para el servidor API:",
"title": "Nombre de host"
},
"port": {
"label": "Introduzca el puerto para el servidor API:",
"title": "Puerto"
}
}
},
"audio-compressor": {
"description": "Aplicar compresión al audio (reduce la diferencia entre las partes más fuertes y más suaves de una pista para que tenga un nivel más consistente)",
"name": "Compresor de audio"
},
"auth-proxy-adapter": {
"description": "Soporte para el uso de servicios de proxy de autenticación",
"menu": {
"disable": "Deshabilitar el adaptador proxy",
"enable": "Habilitar el adaptador proxy",
"hostname": {
"label": "Nombre de host"
},
"port": {
"label": "Puerto"
}
},
"name": "Adaptador de proxy de autenticación",
"prompt": {
"hostname": {
"label": "Ingrese el nombre de host del servidor proxy local (requiere reinicio):",
"title": "Nombre de host del proxy"
},
"port": {
"label": "Ingrese el puerto para el servidor de proxy local (requiere reinicio):",
"title": "Puerto de proxy"
}
}
},
"blur-nav-bar": {
"description": "Hace que la barra de navegación sea transparente y borrosa",
"description": "Hace que la barra de navegación se vea transparente y borrosa",
"name": "Desenfocar barra de navegación"
},
"bypass-age-restrictions": {
"description": "Saltar la verificación de edad de YouTube",
"name": "Saltar las restricciones de edad"
"description": "Saltarse la verificación de edad de Music Player",
"name": "Saltarse las restricciones de edad"
},
"captions-selector": {
"description": "Selector de subtítulos para pistas de audio de YouTube Music",
"description": "Selector de subtítulos para pistas de audio de {{applicationName}}",
"menu": {
"autoload": "Seleccionar automáticamente el último subtítulo utilizado",
"disable-captions": "Sin subtítulos por defecto"
@ -296,17 +398,22 @@
"name": "Selector de subtítulos",
"prompt": {
"selector": {
"label": "Idioma actual: {{language}}",
"label": "Idioma actual de los subtítulos: {{language}}",
"none": "Ninguno",
"title": "Seleccionar idioma de los subtítulos"
}
},
"templates": {
"title": "Abra el selector de subtítulos"
"title": "Abrir el selector de subtítulos"
},
"toast": {
"caption-changed": "Subtítulos cambiados a {{language}}",
"caption-disabled": "Subtítulos desactivados",
"no-captions": "Sin subtítulos para ésta canción"
}
},
"compact-sidebar": {
"description": "Poner siempre la barra lateral en modo compacto",
"description": "Establecer siempre la barra lateral en modo compacto",
"name": "Barra lateral compacta"
},
"crossfade": {
@ -318,16 +425,29 @@
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Duración del fundido (ms)",
"fade-in-duration": "Duración del fundido de entrada (ms)",
"fade-out-duration": "Duración del fundido de salida (ms)",
"fade-scaling": {
"label": "Escala de fundido",
"label": "Escala del fundido",
"linear": "Lineal",
"logarithmic": "Logarítmico"
},
"seconds-before-end": "Crossfade N segundos antes del final"
"seconds-before-end": "Activar Crossfade N segundos antes del final"
},
"title": "Opciones de crossfade"
"title": "Opciones de Crossfade"
}
}
},
"custom-output-device": {
"description": "Configura un dispositivo de salida de audio personalizado para las canciones",
"menu": {
"device-selector": "Seleccionar un dispositivo"
},
"name": "Dispositivo de audio personalizado",
"prompt": {
"device-selector": {
"label": "Escoge el dispositivo de salida de audio que se va a usar",
"title": "Seleccionar un dispositivo de audio"
}
}
},
@ -353,10 +473,18 @@
"disconnected": "Desconectado",
"hide-duration-left": "Ocultar la duración restante",
"hide-github-button": "Ocultar el botón de enlace a GitHub",
"play-on-youtube-music": "Reproducir en YouTube Music",
"set-inactivity-timeout": "Establecer tiempo de inactividad"
"play-on-application": "Reproducir en {{applicationName}}",
"set-inactivity-timeout": "Establecer tiempo de inactividad",
"set-status-display-type": {
"label": "Texto de estado",
"submenu": {
"application": "Escuchando {{applicationName}}",
"artist": "Escuchando a {artist}",
"title": "Escuchando {song title}"
}
}
},
"name": "Estado de actividad de Discord",
"name": "Discord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "Introduzca el tiempo de inactividad en segundos:",
@ -379,7 +507,7 @@
"ok": "OK"
},
"detail": "({{playlistSize}} canciones)",
"message": "Descargar Playlist {{playlistTitle}}",
"message": "Descargando lista de reproducción {{playlistTitle}}",
"title": "Descarga iniciada"
}
},
@ -391,30 +519,45 @@
"download-progress": "Descarga: {{percent}}%",
"downloading": "Descargando…",
"downloading-counter": "Descargando {{current}}/{{total}}…",
"downloading-playlist": "Descargar lista de reproducción \"{{playlistTitle}}\" - {{playlistSize}} canciones ({{playlistId}})",
"downloading-playlist": "Descargando lista de reproducción \"{{playlistTitle}}\" - {{playlistSize}} canciones ({{playlistId}})",
"error-while-downloading": "Error al descargar \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "La carpeta {{playlistFolder}} ya existe",
"getting-playlist-info": "Obteniendo información de la lista de reproducción…",
"loading": "Cargando…",
"playlist-has-only-one-song": "La lista de reproducción sólo tiene un elemento, descárgala directamente",
"playlist-id-not-found": "No se ha encontrado el ID de la lista de reproducción",
"playlist-has-only-one-song": "La lista de reproducción sólo tiene un elemento, descargándolo directamente",
"playlist-id-not-found": "No se ha encontrado la ID de la lista de reproducción",
"playlist-is-empty": "La lista de reproducción está vacía",
"playlist-is-mix-or-private": "Error obteniendo información de la lista de reproducción: asegúrese de que no es una lista privada o \"Mixed for you\"\n\n{{error}}",
"playlist-is-mix-or-private": "Error obteniendo la información de la lista de reproducción: asegúrese de que no es una lista privada o \"Mixed for you\"\n\n{{error}}",
"preparing-file": "Preparando archivo…",
"saving": "Guardando…",
"trying-to-get-playlist-id": "Intentando obtener el ID de la lista de reproducción: {{playlistId}}",
"trying-to-get-playlist-id": "Intentando obtener la ID de la lista de reproducción: {{playlistId}}",
"video-id-not-found": "Video no encontrado",
"writing-id3": "Escribiendo las etiquetas ID3…"
}
},
"description": "Descarga MP3 / audio fuente directamente desde la interfaz",
"description": "Descarga audio MP3 / fuente directamente desde la interfaz",
"menu": {
"choose-download-folder": "Elija la carpeta de descarga",
"download-finish-settings": {
"label": "Descargar al finalizar",
"prompt": {
"last-percent": "Después de x porcentaje",
"last-seconds": "Últimos x segundos",
"title": "Configurar cuándo descargar"
},
"submenu": {
"advanced": "Avanzado",
"enabled": "Habilitado",
"mode": "Modo de tiempo",
"percent": "Porcentaje",
"seconds": "Segundos"
}
},
"download-playlist": "Descargar lista de reproducción",
"presets": "Preajustes",
"presets": "Ajustes preestablecidos",
"skip-existing": "Saltar archivos existentes"
},
"name": "Descargador",
"name": "Gestor de descargas",
"renderer": {
"can-not-update-progress": "No se puede actualizar el progreso"
},
@ -422,8 +565,20 @@
"button": "Descargar"
}
},
"equalizer": {
"description": "Añade un ecualizador al reproductor",
"menu": {
"presets": {
"label": "Ajustes preestablecidos",
"list": {
"bass-booster": "Amplificador de graves"
}
}
},
"name": "Ecualizador"
},
"exponential-volume": {
"description": "Hace que el control deslizante de volumen sea exponencial para que sea más fácil seleccionar volúmenes más bajos.",
"description": "Hace que la barra de volumen sea exponencial para que sea más fácil seleccionar volúmenes más bajos.",
"name": "Volumen exponencial"
},
"in-app-menu": {
@ -438,19 +593,19 @@
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "Añade el soporte para las letras para la mayoría de las canciones",
"description": "Añade soporte para letras para la mayoría de las canciones",
"menu": {
"romanized-lyrics": "Letras Romanizadas"
},
"name": "Letras Genius",
"renderer": {
"fetched-lyrics": "Letras recuperadas de Genius"
"fetched-lyrics": "Letras obtenidas de Genius"
}
},
"music-together": {
"description": "Comparte una lista de reproducción con los demás. Cuando el anfitrión reproduzca una canción, todos los demás escucharán la misma",
"dialog": {
"enter-host": "Introduzca el ID del host"
"enter-host": "Introduzca la ID del host"
},
"internal": {
"save": "Guardar",
@ -458,7 +613,7 @@
"unknown-user": "Usuario desconocido"
},
"menu": {
"click-to-copy-id": "Copiar el ID del host",
"click-to-copy-id": "Copiar la ID del host",
"close": "Cerrar Music Together",
"connected-users": "Usuarios conectados",
"disconnect": "Desactivar Music Together",
@ -468,7 +623,7 @@
"permission": {
"all": "Permite a los invitados controlar la lista de reproducción y el reproductor",
"host-only": "Sólo el anfitrión puede controlar la lista de reproducción y el reproductor",
"playlist": "Permita que los invitados controlen la lista de reproducción"
"playlist": "Permitir que los invitados controlen la lista de reproducción"
},
"set-permission": "Permiso de control de cambios",
"status": {
@ -481,11 +636,11 @@
"toast": {
"add-song-failed": "No se puede añadir la canción",
"closed": "Music Together cerrado",
"disconnected": "Music Together desconectados",
"host-failed": "Fallo el host de Music Together",
"id-copied": "ID del host copiado en el portapapeles",
"id-copy-failed": "No se ha podido copiar el ID del host en el portapapeles",
"join-failed": "Fallo en la unión a Music Together",
"disconnected": "Music Together desconectado",
"host-failed": "Fallo al hostear Music Together",
"id-copied": "ID del host copiada al portapapeles",
"id-copy-failed": "No se ha podido copiar la ID del host al portapapeles",
"join-failed": "Fallo al unirse a Music Together",
"joined": "Unido a Music Together",
"permission-changed": "Permiso de Music Together cambiado a \"{{permission}}\"",
"remove-song-failed": "Error al eliminar la canción",
@ -495,7 +650,15 @@
},
"navigation": {
"description": "Flechas de navegación Siguiente/Atrás directamente integradas en la interfaz, como en tu navegador favorito",
"name": "Navegación"
"name": "Navegación",
"templates": {
"back": {
"title": "Volver a la página anterior"
},
"forward": {
"title": "Ir a la siguiente página"
}
}
},
"no-google-login": {
"description": "Eliminar los botones y enlaces de inicio de sesión de Google de la interfaz",
@ -519,8 +682,12 @@
},
"name": "Notificaciones"
},
"performance-improvement": {
"description": "Mejore el rendimiento habilitando scripts experimentales",
"name": "Mejora del rendimiento [Beta]"
},
"picture-in-picture": {
"description": "Permite cambiar la aplicación al modo de imagen en imagen",
"description": "Permite cambiar la aplicación al modo picture-in-picture",
"menu": {
"always-on-top": "Siempre encima",
"hotkey": {
@ -529,17 +696,17 @@
"keybind-options": {
"hotkey": "Tecla de acceso rápido"
},
"label": "Elige una tecla de acceso rápido para activar la función de imagen en imagen",
"title": "Tecla de acceso directo a imagen en imagen"
"label": "Elige una tecla de acceso rápido para activar la función picture-in-picture",
"title": "Tecla de acceso directo a picture-in-picture"
}
},
"save-window-position": "Guardar la posición de la ventana",
"save-window-size": "Guardar tamaño de la ventana",
"use-native-pip": "Utilizar \"Dos imágenes a la vez\" PiP nativo del navegador"
"use-native-pip": "Utilizar PiP nativo del navegador"
},
"name": "Imagen en imagen",
"name": "Picture-in-picture",
"templates": {
"button": "Imagen en imagen"
"button": "Picture-in-picture"
}
},
"playback-speed": {
@ -550,7 +717,7 @@
}
},
"precise-volume": {
"description": "Controla el volumen de manera precisa utilizando la rueda del ratón/teclas de acceso rápido, con una interfaz personalizada y pasos de volumen personalizables",
"description": "Controla el volumen de manera precisa utilizando la rueda del ratón/teclas de acceso rápido, con una interfaz personalizada y niveles de volumen personalizables",
"menu": {
"arrows-shortcuts": "Controles de teclas de flechas locales",
"custom-volume-steps": "Establecer niveles de volumen personalizados",
@ -567,7 +734,7 @@
"title": "Combinaciones de teclas para el volumen"
},
"volume-steps": {
"label": "Escoge los pasos de aumento o disminución del volumen",
"label": "Escoge los niveles de aumento o disminución del volumen",
"title": "Niveles de volumen"
}
}
@ -583,7 +750,12 @@
}
},
"description": "Permite cambiar la calidad del vídeo con un botón sobre puesto en el vídeo",
"name": "Ajustador de calidad de vídeo"
"name": "Ajustador de calidad de vídeo",
"renderer": {
"quality-settings-button": {
"label": "Abrir selector de calidad del reproductor"
}
}
},
"scrobbler": {
"description": "Añadir soporte para scrobbling (last.fm, Listenbrainz, etc.)",
@ -602,7 +774,9 @@
"listenbrainz": {
"token": "Introduzca el token de usuario de ListenBrainz"
},
"scrobble-other-media": "Scrobble en otros medios"
"scrobble-alternative-artist": "Usar artistas alternativos",
"scrobble-alternative-title": "Usar títulos alternativos",
"scrobble-other-media": "Hacer Scrobble sobre otros medios"
},
"name": "Scrobbler",
"prompt": {
@ -619,7 +793,7 @@
}
},
"shortcuts": {
"description": "Permite configurar teclas de acceso rápido globales para la reproducción (reproducir/pausa/siguiente/anterior) y desactivar la OSD multimedia anulando las teclas multimedia, activar Ctrl/CMD + F para buscar, activar la compatibilidad con MPRIS de Linux para las teclas multimedia y teclas de acceso rápido personalizadas para usuarios avanzados",
"description": "Permite configurar teclas de acceso rápido globales para la reproducción (reproducir/pausa/siguiente/anterior) y desactivar el OSD multimedia anulando las teclas multimedia, activar Ctrl/CMD + F para buscar, activar la compatibilidad con MPRIS de Linux para las teclas multimedia y teclas de acceso rápido personalizadas para usuarios avanzados",
"menu": {
"override-media-keys": "Anular teclas de medios",
"set-keybinds": "Configurar controles globales de canciones"
@ -649,26 +823,120 @@
"description": "Salta automáticamente las partes no musicales como la introducción/final o secciones de videos musicales donde la canción no está sonando",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "Proporciona letras de canciones sincronizadas, utilizando proveedores como LRClib.",
"errors": {
"fetch": "⚠️\tSe produjo un error al obtener la letra.\n\tPor favor, inténtelo de nuevo más tarde.",
"not-found": "⚠️ No se han encontrado letras para esta canción."
},
"menu": {
"default-text-string": {
"label": "Carácter predeterminado entre letras",
"tooltip": "Elige el carácter predeterminado que se utilizará para el espacio entre letras"
},
"line-effect": {
"label": "Efecto de la línea",
"submenu": {
"fancy": {
"label": "Elegante",
"tooltip": "Usar efectos grandes, similares a los de una aplicación, en la línea actual"
},
"focus": {
"label": "Enfoque",
"tooltip": "Mostrar solo la línea actual en blanco"
},
"offset": {
"label": "Desplazamiento",
"tooltip": "Desplazamiento a la derecha de la línea actual"
},
"scale": {
"label": "Escala",
"tooltip": "Escalar la línea actual"
}
},
"tooltip": "Elige el efecto que deseas aplicar a la línea actual"
},
"precise-timing": {
"label": "Haz que la letra esté perfectamente sincronizada",
"tooltip": "Calcular al milisegundo la visualización de la siguiente línea (puede tener un pequeño impacto en el rendimiento)"
},
"preferred-provider": {
"label": "Proveedor preferido",
"none": {
"label": "Ninguno",
"tooltip": "Ningún proveedor preferido"
},
"tooltip": "Elige el proveedor predeterminado que deseas usar"
},
"romanization": {
"label": "Romanizar letras",
"tooltip": "Si la letra está en un idioma diferente, intenta mostrar una versión en latín."
},
"show-lyrics-even-if-inexact": {
"label": "Mostrar la letra aunque sea inexacta",
"tooltip": "Si no se encuentra la canción, el plugin vuelve a intentarlo con una búsqueda diferente.\nEl resultado del segundo intento puede no ser exacto."
},
"show-time-codes": {
"label": "Visualización del código de tiempo",
"tooltip": "Mostrar los códigos de tiempo junto a la letra"
}
},
"name": "Letras sincronizadas",
"refetch-btn": {
"fetching": "Obteniendo...",
"normal": "Volver a buscar letras"
},
"warnings": {
"duration-mismatch": "⚠️ - La letra puede estar desincronizada debido a un desajuste en la duración.",
"inexact": "⚠️ - La letra de esta canción puede no ser exacta",
"instrumental": "⚠️ - Esta es una canción instrumental"
}
},
"taskbar-mediacontrol": {
"description": "Controla la reproducción desde la barra de tareas de Windows",
"name": "Control de medios de la barra de tareas"
"name": "Control de medios desde la barra de tareas"
},
"touchbar": {
"description": "Añade un widget TouchBar para los usuarios de macOS",
"name": "TouchBar"
},
"transparent-player": {
"description": "Hace que la ventana de la aplicación sea transparente",
"menu": {
"opacity": {
"label": "Opacidad",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Tipo",
"submenu": {
"acrylic": "Acrílico",
"mica": "Mica",
"none": "Ninguno",
"tabbed": "Con pestañas"
}
}
},
"name": "Reproductor transparente"
},
"tuna-obs": {
"description": "Integración con el complemento Tuna de OBS",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Evita que el reproductor aparezca al reproducir una canción",
"name": "Reproductor discreto"
},
"video-toggle": {
"description": "Añade un botón para cambiar entre el modo Vídeo/Canción. también puede eliminar opcionalmente toda la pestaña de vídeo",
"description": "Añade un botón para cambiar entre el modo Vídeo/Canción. También puede eliminar opcionalmente toda la pestaña de vídeo",
"menu": {
"align": {
"label": "Alineación",
"submenu": {
"left": "Izquierda",
"middle": "Medio",
"middle": "Centro",
"right": "Derecha"
}
},
@ -684,7 +952,8 @@
},
"name": "Alternador de vídeo",
"templates": {
"button": "Canción"
"button-song": "Canción",
"button-video": "Vídeo"
}
},
"visualizer": {

347
src/i18n/resources/et.json Normal file
View File

@ -0,0 +1,347 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "{{pluginName}}::{{contextName}} lisamooduli käivitamine ei õnnestunud",
"executed-at-ms": "{{pluginName}}::{{contextName}} lisamoodul käivitus {{ms}} millisekundiga",
"initialize-failed": "„{{pluginName}}“ lisamooduli töö alustamine ei õnnestunud",
"load-all": "Laadime kõiki lisamooduleid",
"load-failed": "„{{pluginName}}“ lisamooduli laadimine ei õnnestunud",
"loaded": "„{{pluginName}}“ lisamoodul on laaditud",
"unload-failed": "„{{pluginName}}“ lisamooduli mälust eemaldamine ei õnnestunud",
"unloaded": "„{{pluginName}}“ lisamoodul on mälust eemaldatud"
}
}
},
"language": {
"code": "et",
"local-name": "Eesti",
"name": "Estonian"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Laadimine lõppes, arendaja tarvikud on avatud"
},
"i18n": {
"loaded": "i18n on laaditud"
},
"second-instance": {
"receive-command": "„{{command}}“ käsk on vastu võetud"
},
"theme": {
"css-file-not-found": "CSS faili „{{cssFile}}“ pole olemas, seega eirame eelistust"
},
"unresponsive": {
"details": "Tõrge ei vasta!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Programmi vahemälu kustutamine"
},
"window": {
"tried-to-render-offscreen": "Akent prooviti renderdada väljaspool ekraani, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Menüü on peidetud ja „Alt“ klahviga saad ta nähtavaks (rakenduse-siseses menüüs „Esc“ klahviga)",
"message": "Menüü peitmine on sisselülitatud",
"title": "Menüü peitmine on sisselülitatud"
},
"need-to-restart": {
"buttons": {
"later": "Hiljem",
"restart-now": "Taaskäivita kohe"
},
"detail": "„{{pluginName}}“ lisamooduli sisselülitamine eeldab rakenduse taaskäivitamist",
"message": "„{{pluginName}}“ lisamoodul eeldab rakenduse taaskäivitamist",
"title": "Palun käivita rakendus uuesti"
},
"unresponsive": {
"buttons": {
"quit": "Välju",
"relaunch": "Käivita uuesti",
"wait": "Oota"
},
"detail": "Vabandame ebamugavuste pärast! Palun vali kuidas jätkata:",
"message": "Rakendus ei vasta ega reageeri",
"title": "Aken ei vasta ega reageeri"
},
"update-available": {
"buttons": {
"disable": "Lülita uuendused välja",
"download": "Laadi alla",
"ok": "Sobib"
},
"detail": "Saadaval on uus versioon, ning seda saad alla laadida siit {{downloadLink}}",
"message": "Uus versioon on saadaval",
"title": "Rakenduse uuendus on saadaval"
}
},
"menu": {
"about": "Rakenduse teave",
"navigation": {
"label": "Liikumine",
"submenu": {
"copy-current-url": "Kopeeri esitamisel oleva pala URL",
"go-back": "Mine tagasi",
"go-forward": "Mine edasi",
"quit": "Välju",
"restart": "Käivita rakendus uuesti"
}
},
"options": {
"label": "Seadistused",
"submenu": {
"advanced-options": {
"label": "Lisaseadistused",
"submenu": {
"auto-reset-app-cache": "Rakenduse käivitamisel lähtesta puhverdatud andmed",
"disable-hardware-acceleration": "Lülita raudvaraline kiirendamine välja",
"edit-config-json": "Muuda config.json faili",
"override-user-agent": "Jõudlusta User-Agent",
"restart-on-config-changes": "Taaskäivita pärast konfiguratsiooni muutmist",
"set-proxy": {
"label": "Määra proxy",
"prompt": {
"label": "Sisesta proxy aadress: (jäta täitmata, et välja lülitada)",
"placeholder": "Näide: SOCKS5://127.0.0.1:9999",
"title": "Määra proxy"
}
},
"toggle-dev-tools": "Lülita sisse arendaja tööriistad"
}
},
"always-on-top": "Alati esiplaanil",
"auto-update": "Automaatsed uuendused",
"hide-menu": {
"dialog": {
"message": "Järgmisel käivitamisel jääb menüü peidetuks, kasutage [Alt] klahvi, et näidata (või [`], kui kasutate rakendusesisest menüüd)",
"title": "Menüü peitmine on sisse lülitatud"
},
"label": "Peida menüü"
},
"language": {
"dialog": {
"message": "Keele muutmine jõustub peale uuesti käivitamist",
"title": "Keel on muutunud"
},
"label": "Keel",
"submenu": {
"to-help-translate": "Soovid aidata tõlkimisel? Klõpsi siin"
}
},
"resume-on-start": "Rakenduse käivitamisel jätka viimatiesitatud loo esitamist",
"single-instance-lock": "Ühe instantsi lukk",
"start-at-login": "Käivita sisselogimisel",
"starting-page": {
"label": "Avaleht",
"unset": "Määramata"
},
"tray": {
"label": "Trey",
"submenu": {
"disabled": "Välja lülitatud",
"enabled-and-hide-app": "Sisse lülitatud ja rakendus peidetud",
"enabled-and-show-app": "Sisse lülitatud ja rakendus nähtav",
"play-pause-on-click": "Mängi/Peata klõpsates"
}
},
"visual-tweaks": {
"label": "Visuaalsed muudatused",
"submenu": {
"custom-window-title": {
"label": "Kohandatud akna tiitel",
"prompt": {
"label": "Sisesta kohandatud akna tiitel: (jäta täitmata, et välja lülitada)",
"placeholder": "Näide: {{applicationName}}"
}
},
"like-buttons": {
"default": "Vaikimisi",
"force-show": "Sunni näitama",
"hide": "Peida",
"label": "Meeldib nupud"
},
"remove-upgrade-button": "Eemalda upgrade nupp",
"theme": {
"dialog": {
"button": {
"cancel": "Katkesta",
"remove": "Eemalda"
},
"remove-theme": "Kas oled kindel, et soovid enda loodud kujunduse eemaldada?",
"remove-theme-message": "Sellega saab sinu loodud kujundus eemdladatud"
},
"label": "Kujundus",
"submenu": {
"import-css-file": "Impordi kohandatud CSS fail",
"no-theme": "Ilma kujunduseta"
}
}
}
}
}
},
"plugins": {
"enabled": "Kasutusel",
"label": "Lisamoodulid",
"new": "UUS"
},
"view": {
"label": "Vaata",
"submenu": {
"force-reload": "Laadi sundkorras uuesti",
"reload": "Laadi uuesti",
"reset-zoom": "Tegelik suurus",
"toggle-fullscreen": "Lülita täisekraanivaade sisse/välja",
"zoom-in": "Suumi sisse",
"zoom-out": "Suumi välja"
}
}
},
"tray": {
"next": "Edasi",
"play-pause": "Esita/Peata esitus",
"previous": "Eelmine",
"quit": "Välju",
"restart": "Käivita rakendus uuesti",
"show": "Näita akent",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Reklaami esitamisel summutatakse heli ja keritakse edasi 16-kordse kiirusega",
"name": "Reklaamikiirendaja"
},
"adblocker": {
"description": "Blokeeri kõik reklaamid ja jälitajad",
"menu": {
"blocker": "Blokeerijad"
},
"name": "Reklaamiblokeerija"
},
"album-actions": {
"description": "Lisab Undislike, Ebameeldiv, Meeldiv ja Unlike nupud selle rakendamiseks kõikidele loendisse või albumisse kuuluvatele lauludele.",
"name": "Albumi aktsioonid"
},
"album-color-theme": {
"description": "Rakendab dünaamilist teemat ja visuaalseid efekte, mis põhinevad albumi värvipalettil",
"menu": {
"color-mix-ratio": {
"label": "Värvide segamissuhe",
"submenu": {
"percent": "{{suhe}}%"
}
}
},
"name": "Albumi värviteema"
},
"ambient-mode": {
"description": "Rakendab valgusefekti, projitseerides videost õrnad värvid ekraani taustale",
"menu": {
"blur-amount": {
"label": "Hägusus"
},
"opacity": {
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Kvaliteet",
"submenu": {
"pixels": "{{quality}} pikslit"
}
},
"size": {
"label": "Suurus",
"submenu": {
"percent": "{{size}}%"
}
}
}
},
"blur-nav-bar": {
"description": "Muudab navigatsiooniriba läbipaistavaks ja hägusaks",
"name": "Hägus navigatsiooniriba"
},
"lyrics-genius": {
"description": "Lisa enamustele lugudele laulusõnad",
"menu": {
"romanized-lyrics": "Latiniseeritud laulusõnad"
},
"name": "Lyrics Genius",
"renderer": {
"fetched-lyrics": "Leidsime Geeniuse jaoks ühed laulusõnad"
}
},
"navigation": {
"name": "Liikumine"
},
"no-google-login": {
"description": "Eemalda kasutajaliidesest Google'i sisselogimisnupud",
"name": "Elu ilma Google'i sisselogimiseta"
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Praegune kvaliteet: {{quality}}",
"message": "Vali video kvaliteet:",
"title": "Videokvaliteedi valik"
}
}
},
"description": "Võimaldab muuta video kvaliteeti nupust, mis asub video ülekattes",
"name": "Videokvaliteedi muutja"
},
"scrobbler": {
"description": "Lisa kraasimise tugi (last.fm, Listenbrainz, jne)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Last.fm'i autentimine ei õnnestunud\nPeida hüpikaken järgmise taaskäivituseni.",
"title": "Autentimine ei õnnestunud"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Last.fm API seadistused"
},
"listenbrainz": {
"token": "Sisesta ListenBrainz'i kasutaja tunnusluba"
},
"scrobble-other-media": "Kraasi muud meediat"
},
"name": "Kraasija",
"prompt": {
"lastfm": {
"api-key": "Last.fm API võti",
"api-secret": "Last.fm API saladus"
},
"listenbrainz": {
"token": {
"label": "Sisesta oma ListenBrainz'i tunnusluba:",
"title": "ListenBrainz'i tunnusluba"
}
}
}
},
"synced-lyrics": {
"menu": {
"show-lyrics-even-if-inexact": {
"tooltip": "Kui lugu ei leidu, siis lisamoodul üritab uut otsingut teistsuguse päringuga.\nTeise katse puhul tulemused ei pruugi olla väga täpsed."
}
}
},
"tuna-obs": {
"description": "Lõimimine OBSi Tuna lisamooduliga"
}
}
}

View File

@ -0,0 +1,7 @@
{
"language": {
"code": "eu",
"local-name": "Euskara",
"name": "Basque"
}
}

Some files were not shown because too many files have changed in this diff Show More