Commit Graph

36 Commits

Author SHA1 Message Date
Toni Förster
9cb0325503
more robust resolution handling
Currently, we have a hard-coded list of resolutions. Since Invidious reports the actual resolution of a stream and does not hard-code them to a fixed value anymore, resolutions that are not in the list won’t be handled, and the stream cannot be played back.

Instead of hard-coding even more resolutions (and inadvertently might not cover all), we revert the list back to a finite set of resolutions, the users can select from. All other resolutions are handled dynamically and compared to the existing set of defined resolutions when selecting the best stream for playback.

Signed-off-by: Toni Förster <toni.foerster@gmail.com>
2024-09-09 12:59:39 +02:00
Toni Förster
fa7b897e76
add missing Shorts resolutions
Signed-off-by: Toni Förster <toni.foerster@gmail.com>
2024-09-04 12:44:43 +02:00
Toni Förster
a45522f710
Improved stream resolution handling
Invidious now reports the actual resolution and doesn’t hardcode them anymore.

See: https://github.com/iv-org/invidious/pull/4586

- Extended the list of possible resolutions in the StreamModel
- trigger videoLoadFailureHandler if no streams are available
- more logging for backend.bestPlayable

Signed-off-by: Toni Förster <toni.foerster@gmail.com>
2024-08-25 17:23:04 +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
7741e531f4 Swiftformat fixes 2024-05-16 19:01:02 +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
d8c8f8084b
fix a crash when format is hls 2024-05-09 21:15:14 +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
Arkadiusz Fal
e827b97cd5 Fix lint issues 2023-07-24 19:45:30 +02:00
Arkadiusz Fal
5383cf0e90 AVPlayer system controls on iOS 2023-05-21 19:13:42 +02:00
Arkadiusz Fal
402d1a2f79 Opening videos by URL and local files 2022-12-04 13:32:22 +01:00
Arkadiusz Fal
256bbd52a7 Extend available streams formats list to AVPlayer 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
7cbb80847a Minor quality profiles UI improvements (fix #272) 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
ae9b23b9e7 Bring AVPlayer back to tvOS 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
321c265a11 Player controls UI changes
WIP on controls

Chapters

working

Add previews variable

Add lists ids

WIP
2022-10-27 18:03:57 +02:00
Arkadiusz Fal
8341966159 Fix stream short quality 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
e6e18de106 Improve streams extraction 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
7a6698897a Minor controls improvements 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
0b274f92bd Prefer VP9/WEBM over H.264/MP4 (fix #128) 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
ae365e814c Add resolution 8K 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
31374630e8 Add resolutions for 50fps and 48fps (fix #120) 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
b203b5205a Add hd2160p60fps resolution (fix #118) 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
61054862d2 Improve streams quality settings 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
31a28a7cbd Hello, mpv! 🎉 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
26f672ff4f Fix selecting quality 2021-11-05 20:35:27 +01:00
Arkadiusz Fal
8e0af22b94 Add Sponsor Block and settings 2021-10-23 21:11:53 +02:00
Arkadiusz Fal
0e54cbcad0 Channels search, add SDWebImage framework 2021-10-22 02:05:01 +02:00
Arkadiusz Fal
62e17d5a18 Add Piped support 2021-10-17 23:01:43 +02:00
Arkadiusz Fal
70c089e696 Initial functionality of player items queue
Fix environment objects

Hide video player placeholder on tvOS

Queue improvements
2021-10-13 23:47:56 +02:00
Arkadiusz Fal
e270b7b213 Add Periphery configuration, remove unused code 2021-09-29 17:30:52 +02:00
Arkadiusz Fal
a7da3b9468 Settings for iOS/macOS 2021-09-25 11:34:46 +02:00
Arkadiusz Fal
33e102207f UI improvements, player state refactor 2021-07-25 13:54:33 +02:00
Arkadiusz Fal
c4a3dab5fb Fix killing player on Apple TV 2021-06-16 21:12:41 +02:00
Arkadiusz Fal
4dd6f13df9 Model improvements 2021-06-15 23:21:57 +02:00
Arkadiusz Fal
da22b06cc1 Improve resolution switching 2021-06-15 18:35:21 +02:00
Arkadiusz Fal
4535853ac3 Resolution switching support 2021-06-14 20:05:02 +02:00