Commit Graph

906 Commits

Author SHA1 Message Date
Kavin
15f7e8a23b Cleanup fix slightly. 2026-08-13 23:13:50 +05:30
Kavin
0451facc2e Fix some layout issues. 2026-08-13 23:11:04 +05:30
Kavin
a0a0727703 Fix chapters on player. 2026-08-13 23:11:03 +05:30
Kavin
57c367117b Add useConfig composable. 2026-08-13 23:11:02 +05:30
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
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
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
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
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
jeidnx
1d6f662de3 feat: use dash manifest when available 2025-08-04 12:44:14 +00:00
jeidnx
7b80e293c4 fix: fix typo
This fixes channel tab pagination
2025-08-03 22:03:00 +02:00
ac615223s5
13ea181c62 feat: playlist of all videos in a channel (#4063) 2025-06-22 14:55:08 +02:00
Spendable1569
59bdb94dd3 Update VideoPlayer.vue, add play in line and ios MSE 2025-06-15 18:53:04 +08:00
ac615223s5
7a9a1bf534 feat: add "Theater mode" (#3983) 2025-02-27 11:20:09 +01:00
Bnyro
691cb6d86b refactor: merge duration/live/shorts indicator to VideoThumbnail component 2025-01-22 15:16:02 +01:00
nieve
5266b2d1d9 feat: improve playlists display aside 2025-01-22 15:16:02 +01:00
Bnyro
62c092a25c fix: force list-style none at navigation bar 2025-01-14 10:32:18 +01:00
Bnyro
e863b0fa41 fix: add i18n to autoplay option 2025-01-09 14:34:10 +01:00
Bnyro
fe42087085 feat: add i18n to subscriptions import page 2025-01-09 14:28:59 +01:00
Bnyro
9352e96d9c feat: add i18n to history import and export 2025-01-09 14:28:59 +01:00
Alin
9dbe6c557b feat: option to export watch history database 2025-01-09 14:28:59 +01:00
vr10t
4daa9cfc34 feat: add pagination to history page
Co-authored-by: Bnyro <bnyro@tutanota.com>
2025-01-09 13:42:43 +01:00
Bnyro
8d00447dff feat: unify style and hover effects of channel, playlist and video items 2025-01-09 13:29:59 +01:00
keyboardreamer
03f43d525e feat: add more hover effects for better UX 2025-01-09 13:29:59 +01:00
thecashewtrader
aaeddb3903 feat: allow timecode to be used as timestamp in Share Modal 2025-01-09 12:57:47 +01:00
HiImKobeAnd
676dbef9b8 feat: mark as watched button in feed (#3746)
* feat: add mark as watched/unwatched button

* fix: remove from trending page and hide if watch history is diabled

remove the button from trending page because it only works in feed page.

* fix: missing thumbnail url in watch_history  when using mark as watched

* fix: missing uploadername in watch_history when using mark as watched

* refactor: make mark as watched consistent with other app elements

* refactor: simplify setting "watched" property for videos

---------

Co-authored-by: Bnyro <bnyro@tutanota.com>
2025-01-07 12:50:53 +00:00
Bnyro
56bcc1b90f feat: show full upload date string on hover where possible 2025-01-07 13:37:48 +01:00
Bnyro
c2fa0045ad fix: fallback to filename as playlist name when importing 2025-01-07 13:21:31 +01:00
Bnyro
4f1c8e514c fix: crash when failed to load stream info 2025-01-07 13:01:09 +01:00
Bnyro
17414a3e58 refactor: simplify and fix audio language selection 2025-01-07 12:58:51 +01:00
ac615223s5
d49efa08c7 feat: option to autoplay playlist only (#3767) 2025-01-07 12:48:46 +01:00
bonswouar
b39574af62 fix: wrong selection of default audio language
it would always fallback to "en"
as the loop was over array keys not values
2025-01-07 12:35:59 +01:00
Bnyro
647f4132a6 Merge pull request #3764 from ac615223s5/watch-on-youtube-button
include playlist link in 'watch on youtube' button
2024-08-29 18:13:04 +02:00
nieve
71a17e1aef feat: include playlist link in 'watch on youtube' button 2024-08-29 18:11:21 +02:00
ac615223s5
733888b429 fix: video player error with default quality (#3750) 2024-08-27 14:11:05 +02:00
Bnyro
c80c0cea24 chore: some small code cleanups in PlaylistPage.vue (#3741) 2024-07-29 14:32:57 +00:00
Bnyro
0d37601997 feat: show total playlist duration 2024-07-29 16:26:17 +02:00