Commit Graph

2524 Commits

Author SHA1 Message Date
Kavin
5321c71841 Merge pull request #4245 from t6fb3m59/upstream-pr
Fix position saving for videos and have history update when opened
2026-06-01 06:35:33 +05:30
LogicalKarma
174ca1a072 fix(player): resume from saved position and protect it across keep-alive
Clicking a video from history (or any cached watch page) restarted it from 0
instead of resuming, and history bars showed stale positions. Four shared-path
bugs, all engine-agnostic:

- The resume position was computed but never applied: Shaka's load(uri, startTime)
  doesn't perform the initial seek for lazily-fetched segment indexes, so playback
  began at 0. Apply the resume explicitly with a runtime seek once load() resolves.

- initialSeekComplete (gates progress saving until the resume seek lands) was never
  reset per-load. On a reactivated player it stayed true from the previous play, so
  a timeupdate at currentTime=0 during rebuild churn overwrote the saved position
  before the resume read ran. Reset it at the start of loadVideo.

- Leaving a watch page (destroy) empties the media element -> currentTime snaps to
  0 and a stray timeupdate fires while initialSeekComplete is still true, clobbering
  the saved position. Gate the save on destroying as well.

- HistoryPage: re-read watch_history in onActivated so progress bars reflect the
  current saved position instead of a stale first-mount snapshot. Kept off onMounted
  to avoid double-loading (both fire on first keep-alive mount).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 01:03:21 +03:00
LogicalKarma
3b7b40b39e docs(firefoxMediaCapabilitiesFix): link Firefox tracker bug 2043895
Add the upstream Mozilla tracker bug for the slow decodingInfo path.

Refs:
  https://bugzilla.mozilla.org/show_bug.cgi?id=2043895
  https://github.com/TeamPiped/Piped/issues/4238
2026-05-31 21:25:00 +03:00
LogicalKarma
e006840fba docs(firefoxMediaCapabilitiesFix): document hack tradeoffs and measured perf
- Replace shaka-player#4775 link (closed) with TeamPiped/Piped#4238 as the
  ongoing tracker.
- Add measured rough per-call cost: Chromium ~0.1 ms vs Firefox ~20 ms.
- Call out explicitly that this is a hack: forcing smooth/powerEfficient to
  true throws away signals Shaka would otherwise see. If anything in the
  player chain reads those fields (preferredDecodingAttributes is set, a
  downstream consumer ranks variants on power efficiency, or a Shaka
  upgrade changes filtering), Shaka will pick streams the device cannot
  decode in real time — frame drops, software-decode CPU spikes, battery
  drain. Today (Shaka 5.1, Piped default config) the fields are not read
  and the shim is harmless; revisit on every Shaka upgrade.

Refs: https://github.com/TeamPiped/Piped/issues/4238
2026-05-31 21:25:00 +03:00
LogicalKarma
c4f86d2a7e fix(player): suppress Firefox blue :focus outline on <video> element
VideoPlayer calls videoEl.focus() on every seek-bar mouseup (existing
upstream code, so hotkeys-js continues receiving keys). Firefox/Gecko
draws the system :focus outline whenever a <video> element is focused;
Chromium uses :focus-visible heuristics on media elements and doesn't
render it for click-driven focus, which is why this is Gecko-only.

Add a targeted CSS rule outside the Tailwind @layer so it wins the
cascade against any layered author or vendor rule, and !important to
override the UA focus ring.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-31 21:25:00 +03:00
LogicalKarma
6b666b4b6f fix(VideoPlayer): work around slow Firefox MediaCapabilities.decodingInfo
Firefox's navigator.mediaCapabilities.decodingInfo costs ~14 ms per call
(out-of-process RDD decoder probe). Shaka Player calls it once per Variant
in the DASH manifest while filtering supported variants, and YouTube
manifests routinely have 1000+ variants, so player initialization stalls
15-20 s on Gecko-based browsers before the first SourceBuffer is added.

Wrap decodingInfo to delegate "supported" checks to
MediaSource.isTypeSupported (sub-ms on Firefox) with a per-MIME cache.
DRM probes and non-media-source queries fall through to native.
Wrapper is gated to Gecko UAs so Chromium and Safari are unaffected.

Refs: https://github.com/shaka-project/shaka-player/issues/4775

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-31 21:25:00 +03:00
ssantos
5f8ea8560d Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/pt_PT/
2026-05-31 18:22:34 +00:00
ssantos
352082cff6 Translated using Weblate (Portuguese)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/pt/
2026-05-31 18:22:34 +00:00
ssantos
c391a3b05b Translated using Weblate (Portuguese (Portugal))
Currently translated at 99.5% (233 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/pt_PT/
2026-05-31 18:22:33 +00:00
Milo Ivir
17d386dc8b Translated using Weblate (Croatian)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/hr/
2026-05-31 18:22:33 +00:00
Ghost of Sparta
63b75ebae8 Translated using Weblate (Hungarian)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/hu/
2026-05-04 16:09:49 +00:00
Lendrush
a6d50fe12d Translated using Weblate (Armenian)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/hy/
2026-04-28 01:09:51 +00:00
Ecron
428845f7f4 Translated using Weblate (Catalan)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/ca/
2026-04-23 13:09:49 +00:00
Quentin PAGÈS
caa0a14ffc Translated using Weblate (Occitan)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/oc/
2026-04-14 10:09:52 +00:00
Sergio Marques
9743963405 Translated using Weblate (Portuguese)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/pt/
2026-04-14 01:10:42 +02:00
on9686
b2fe8108dd Translated using Weblate (Korean)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/ko/
2026-04-07 06:09:49 +00:00
George Stamate
c4297c49df Translated using Weblate (Romanian)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/ro/
2026-04-04 02:09:49 +00:00
joaooliva
ca3216c93e Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/pt_BR/
2026-04-02 00:09:49 +02:00
Milan
43e8fed62a Translated using Weblate (Slovak)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/sk/
2026-04-01 11:09:49 +02:00
jonnysemon
129205a624 Translated using Weblate (Arabic)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/ar/
2026-03-31 02:09:48 +00:00
bittin1ddc447d824349b2
ba6d687eb8 Translated using Weblate (Swedish)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/sv/
2026-03-30 14:09:50 +00:00
ColorfulRhino
a4db147604 Translated using Weblate (German)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/de/
2026-03-30 14:09:48 +00:00
Danial Behzadi
3333268cc6 Translated using Weblate (Persian)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/fa/
2026-03-28 14:11:49 +00:00
polarwood
c3aaa3ebe4 Translated using Weblate (Turkish)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/tr/
2026-03-28 10:09:51 +01:00
Oğuz Ersen
d1e76f7229 Translated using Weblate (Turkish)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/tr/
2026-03-28 10:09:50 +01:00
大王叫我来巡山
4044a2d1ee Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/zh_Hans/
2026-03-28 10:09:49 +01:00
Quentin PAGÈS
68e7e45551 Translated using Weblate (Occitan)
Currently translated at 90.5% (212 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/oc/
2026-03-28 10:09:48 +01:00
Kavin
2754d01ed7 Simplify homepage navigation. 2026-03-28 11:43:47 +05:30
Kavin
2386d728e6 Fix for theme switching.
Closes #4175
Closes #4177
2026-03-28 11:41:16 +05:30
Fjuro
28aa215d92 Translated using Weblate (Czech)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/cs/
2026-03-28 02:09:48 +01:00
Priit Jõerüüt
526f980feb Translated using Weblate (Estonian)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/et/
2026-03-28 02:09:47 +01:00
Matthaiks
0e0f126b5f Translated using Weblate (Polish)
Currently translated at 100.0% (234 of 234 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/pl/
2026-03-27 21:09:48 +01:00
Kavin
605deeb6d5 Fix for feed not loading properly.
Closes #4173
2026-03-28 01:38:22 +05:30
Kavin
a43db165e1 Implement more responsive view on watch page
Closes #4172
2026-03-28 01:35:02 +05:30
Kavin
768c015b32 add type=button
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-03-27 20:40:00 +05:30
Kavin
1e9c5dff5d implement fixes for review 2026-03-27 20:06:35 +05:30
Kavin
75201a8083 Implement more reka ui and attempt to fix review issues. 2026-03-27 13:36:04 +05:30
Kavin
d1ef96e7d4 Migrate to tailwind + reka ui 2026-03-27 11:47:27 +05:30
Kavin
82c7062de7 Upgrade eslint and vite. 2026-03-27 02:42:49 +05:30
Kavin
dead2b023a Update prettier. 2026-03-27 02:22:51 +05:30
Kavin
8be585d084 Shaka 5 upgrade. 2026-03-27 02:20:20 +05:30
Kavin
3e79a04fe3 Fix for falsy types 2026-03-27 00:55:36 +05:30
Kavin
fa5bbbd267 Migrate code to composition api. 2026-03-27 00:41:48 +05:30
Kavin
2d164da616 Merge pull request #4143 from pierreeurope/fix/theater-mode-button-visibility
fix: make theater mode toggle button visible on light theme
2026-03-26 13:06:37 +05:30
Kom nake
75f69fb5b6 Translated using Weblate (Bengali)
Currently translated at 100.0% (229 of 229 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/bn/
2026-02-20 14:09:51 +00:00
pierreeurope
9be4e9da60 fix: make theater mode toggle button visible on light theme
The chevron button to toggle theater mode was invisible on the light
theme because it inherited the dark text color while being positioned
against the video's dark background.

Adding text-white ensures the button is always visible regardless of
the selected theme, since it always appears against the dark video
background.

Fixes #4072

Signed-off-by: pierreeurope <pierre.europe@pm.me>
2026-02-16 12:45:09 +01:00
John Corser
c21742dead fix: enable audio language selection on Safari
Removes the Safari-specific check that was preventing selectAudioLanguage()
from being called. This was causing:
1. Videos defaulting to first audio track instead of preferred language
2. Language menu not appearing in player overflow menu

Fixes #4090
2026-01-24 12:49:21 -05:00
ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝)
92b4a94a14 Translated using Weblate (Latvian)
Currently translated at 88.6% (203 of 229 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/lv/
2026-01-13 22:01:47 +01:00
Priit Jõerüüt
7681eb3886 Translated using Weblate (Estonian)
Currently translated at 100.0% (229 of 229 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/et/
2026-01-12 14:01:47 +01:00
ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝)
bf3dbbee4a Translated using Weblate (Latvian)
Currently translated at 86.8% (199 of 229 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/lv/
2025-12-13 15:00:19 +00:00