Commit Graph

113 Commits

Author SHA1 Message Date
Toni Förster
522aecfbc1
only updateWatch status while video is playing
This should circumvent edge cases where videos are marked as watch when they failed to play back.

Fixes #660

Signed-off-by: Toni Förster <toni.foerster@gmail.com>
2024-08-20 22:10:35 +02:00
Toni Förster
4fa5a15ad4
fallback language for captions 2024-05-20 14:42:24 +02:00
Toni Förster
4db02b2638
Improved Captions handling
New options for captions in `Settings-Player`:

- Always show captions
- Default language

User can now select whether they want to show captions automatically when the video starts, and select the language.

Captions selector now shows proper name -> `English (en)` instead of only `en`
2024-05-20 03:50:51 +02:00
Arkadiusz Fal
896d46d0cf
Merge pull request #662 from stonerl/piped-proxy
Conditional proxying
2024-05-18 11:42:11 +02:00
Toni Förster
e35f8b7892
Snappy UI - Offloading non UI task to background threads
This gives a huge increase in perceived performance. The UI is now much more responsive since some tasks are run in the background and don't block the UI anymore.
2024-05-17 21:36:02 +02:00
Toni Förster
6eba2a45c8
Conditional proxying
I added a new feature. When instances are not proxied, Yattee first checks the URL to make sure it is not a restricted video. Usually, music videos and sports content can only be played back by the same IP address that requested the URL in the first place. That is why some videos do not play when the proxy is disabled.

This approach has multiple advantages. First and foremost, It reduced the load on Invidious/Piped instances, since users can now directly access the videos without going through the instance, which might be severely bandwidth limited. Secondly, users don't need to manually turn on the proxy when they want to watch IP address bound content, since Yattee automatically proxies such content.

Furthermore, adding the proxy option allows mitigating some severe playback issues with invidious instances. Invidious by default returns proxied URLs for videos, and due to some bug in the Invidious proxy, scrubbing or continuing playback at a random timestamp can lead to severe wait times for the users.

This should fix numerous playback issues: #666, #626, #590, #585, #498, #457, #400
2024-05-16 19:35:31 +02:00
Arkadiusz Fal
4ce9dc6729 Fix build issues 2024-05-16 19:05:00 +02:00
Arkadiusz Fal
c6724472a6
Merge pull request #667 from stonerl/hls-set-target-quality
HLS: set target bitrate / AVPlayer: higher resolution
2024-05-16 18:23:05 +02:00
Arkadiusz Fal
201de81351
Merge pull request #650 from stonerl/rework-qualitiy-settings
Rework qualitiy settings
2024-05-16 18:22:58 +02:00
Arkadiusz Fal
b9649b6356
Merge pull request #651 from stonerl/time-reset-on-stream-change
preserve time on stream change
2024-05-16 18:20:19 +02:00
Arkadiusz Fal
d9aa5105fa
Merge pull request #636 from stonerl/captions
fix handling and displaying captions
2024-05-16 18:18:49 +02:00
Arkadiusz Fal
7b484e80b8
Merge pull request #646 from stonerl/EOF-start-playback-again
Restart finished video
2024-05-16 18:17:13 +02:00
Toni Förster
b54044cbc5
HLS: set target bitrate / AVPlayer: higher resolution
HLS: try matching the set resolution. This works okay with AVPlayer. With MPV it is hit and miss, most of the time MPV targets the highest available bitrate, instead of the set bitrate.

AVPlayer now supports higher resolution up to 1080p60.
2024-05-13 07:54:24 +02:00
Toni Förster
0d5a907517
preserve time on stream change
fixes #371
2024-05-01 17:01:54 +02:00
Toni Förster
54915dcea1
rework quality settings
- The order of the formats can now be changed in the Quality Settings.
- sortingOrder is now part of QualitiyProfile.
- bestPlayable is now part of PlayerBackend.
- hls and stream aren't treated as unknown anymore.
2024-04-29 20:03:51 +02:00
Toni Förster
86b91916a7
Restart finished video
After the video has ended, hitting play restarts the video from the beginning

fixes #449

If I understand the issue correctly, however, videos can now be played again without hitting the "Start from the beginning" button.
2024-04-27 00:37:04 +02:00
Toni Förster
169b9451ed
handle audio session interrupts by other media
fixes #495
2024-04-24 14:43:51 +02:00
Toni Förster
f3637e2426
fix handling and displaying captions
fixes #490

It also fixes the caption picker being empty when a caption was selected in the previous watched video.
2024-04-21 01:04:31 +02:00
Toni Förster
721a97dc41
no need for NotificationCenter 2023-12-05 00:07:36 +01:00
Toni Förster
0d9c27319d
make time updates work for .mpv and .avp
- time update notifications work for both backends
- only init mpv timers when mpv is the active backend
- move notification extension to playerbackend
2023-12-04 14:47:26 +01:00
Toni Förster
586cea7d44
subscribe chapters to currentTime notification 2023-12-04 00:07:39 +01:00
Arkadiusz Fal
9db5fb0de7 Handle core-idle property 2023-09-23 21:59:38 +02:00
Arkadiusz Fal
13d5bd39af mpvkit implementation fixes 2023-09-23 21:59:37 +02:00
Arkadiusz Fal
dfda1181e2 Fix swiftformat issues 2023-09-23 17:14:21 +02:00
Arkadiusz Fal
757afd39da
Merge branch 'main' into use-mpvkit 2023-09-23 16:17:33 +02:00
Arkadiusz Fal
e827b97cd5 Fix lint issues 2023-07-24 19:45:30 +02:00
amaumene
e7c1f8116d switch mpv to mpvkit 2023-06-26 13:18:28 +09:00
Arkadiusz Fal
6f91eedf4c Update watch time on close item 2023-06-07 23:37:27 +02:00
Arkadiusz Fal
8d11a92f97 Fix switching to AVPlayer in fullscreen 2023-06-07 23:37:27 +02:00
Arkadiusz Fal
5d8e8483d1 Minor performance improvement 2023-05-18 11:32:45 +02:00
Arkadiusz Fal
a83657b8c6 Fix crash 2023-05-07 22:06:51 +02:00
Arkadiusz Fal
8ca499756a Minor fixes 2023-02-24 18:23:26 +01:00
Arkadiusz Fal
f1664d026c Fix bookmarks 2022-12-05 10:13:20 +01:00
Arkadiusz Fal
0d333b5583 Replace environment objects with observed objects 2022-12-05 10:13:19 +01:00
Arkadiusz Fal
be2af82300 Change playback rates for MPV 2022-12-04 13:32:28 +01:00
Arkadiusz Fal
815d0b3ae8 Cancel loading assets on switching backend 2022-12-04 13:32:26 +01:00
Arkadiusz Fal
ccded28468 Improve bookmarks loading 2022-12-04 13:32:25 +01:00
Arkadiusz Fal
2c004b81fe Close item if could not be opened 2022-12-04 13:32:25 +01:00
Arkadiusz Fal
01d8e28d7c Add more playback rates for MPV 2022-12-04 13:32:23 +01:00
Arkadiusz Fal
a44cce462a Preserve playback rate between restarts 2022-12-04 13:32:23 +01:00
Arkadiusz Fal
cb81a687bc Improve EOF handling with MPV 2022-12-04 13:32:22 +01:00
Arkadiusz Fal
402d1a2f79 Opening videos by URL and local files 2022-12-04 13:32:22 +01:00
Arkadiusz Fal
a086a0f440 Use Swift 5.7 if-let style 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
a7a3e0827d Revert "Improve setting audio session"
This reverts commit eedc8f32d1.

Fix #307
2022-10-27 18:03:57 +02:00
Arkadiusz Fal
1744210615 Fix optional use 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
f607e6e276 Model improvements 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
df96c2dba0 Fix updating playing status 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
6643208579 Change aspect ratio handling with MPV 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
b8380b2528 Minor fixes 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
0d3ccc00ce Model improvements 2022-10-27 18:03:57 +02:00