Commit Graph

711 Commits

Author SHA1 Message Date
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
7741e531f4 Swiftformat fixes 2024-05-16 19:01:02 +02:00
Arkadiusz Fal
db2417e455
Merge pull request #627 from 0x000C/bugfix/619
Fix #619: Remove ports from shared YouTube links
2024-05-16 18:25:35 +02:00
Arkadiusz Fal
7f8aa51c78
Update Model/Applications/VideosAPI.swift 2024-05-16 18:25:15 +02:00
Arkadiusz Fal
4038f7fdb9
Update Model/Applications/VideosAPI.swift 2024-05-16 18:25:08 +02:00
Arkadiusz Fal
8a7e4c84b5
Merge pull request #653 from stonerl/mpvkit-0-38-0
upgrade to mpvkit-0.38.0
2024-05-16 18:24:41 +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
46f89db11a
Merge pull request #644 from stonerl/music-mode
MusicMode: don't bindPlayerToLayer when entering foreground
2024-05-16 18:21:35 +02:00
Arkadiusz Fal
094461d359
Merge pull request #641 from stonerl/switch-to-previous-backend
switch to previous backend when leaving PiP
2024-05-16 18:20:49 +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
a6c5c3905a
Merge pull request #648 from stonerl/sponsorblock-jump-to-end
SponsorBlock jump to end instead of pausing
2024-05-16 18:17:32 +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
Arkadiusz Fal
68f3d5c631
Merge pull request #655 from stonerl/chapter-title-on-jump
Chapter title on jump
2024-05-16 18:16:24 +02:00
Arkadiusz Fal
9d291cca28
Merge pull request #639 from stonerl/sponsor-block
SponsorBlock Improvements
2024-05-16 18:15:38 +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
fba01e35a3
apply best resolution from non HLS to HLS stream
This makes sure that HLS Streams can be compared with non HLS streams, otherwise HLS would have been the first selected since the maxResolution.value might have been higher then what could actually be the highest resolution served.
2024-05-11 14:08:40 +02:00
Toni Förster
d8c8f8084b
fix a crash when format is hls 2024-05-09 21:15:14 +02:00
Toni Förster
7b7f877fa5
upgrade to mpvkit-0.38.0
subtitles are working gain (was broken with 0.37.0)
2024-05-03 17:08:30 +02:00
Toni Förster
03fbb4933a
new SeekType chapterSkip
When a user taps on a chapter, the pop now also shows the name of the chapter. The chapters are now marked in AppRedColor instead of orange.

This is based on PR #639

That one needs to be merged first before this one can go in.
2024-05-03 15:20:51 +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
4144a29608
only bind Player if the active backend is AVPlayer 2024-04-26 19:42:13 +02:00
Toni Förster
c41b635276
MusicMode: don't bindPlayerToLayer when entering foreground
fixes #617
2024-04-26 14:48:07 +02:00
Toni Förster
c118c77c14
SponsorBlock jump to end instead of pausing
When the time stamp for the last segment is greater the duration currently the video pauses. This interferes with PR #646.

Now instead of pausing we jump to the duration (end time) of the video instead.
2024-04-26 14:03:13 +02:00
Toni Förster
0230106a1e
switch to previous backend when leaving PiP
Currently, when leaving PiP the backend doesn't switch to the one that was used before starting PiP.

Now, when the backend was MPV, it switches back to it after leaving PiP.
2024-04-24 21:32:32 +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
ae65acdd16
Interface tweaks for SponsorBlock during playback
Show/Hide categories in timeline.
Show/Hide notice after skip.
Show adjusted or actual total time.
2024-04-23 22:08:08 +02:00
Toni Förster
321eaecd21
SponsorBlock align categories with upstream 2024-04-23 11:43:05 +02:00
Toni Förster
0e7d66849d
whitespace fixes 2024-04-23 11:39:32 +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
c77c5a6d21
don't add empty comments 2024-04-02 15:08:36 +02:00
Toni Förster
ae16680fc2
removed some unnecessary print() 2024-04-02 14:28:06 +02:00
Toni Förster
807c0a1e2e
hopefully fixes #629
should also get rid of empty comments if they couldn't be loaded
2024-04-02 14:28:06 +02:00
Arkadiusz Fal
96a2119a05
Merge pull request #632 from stonerl/invidious-html-comments
iv: use html comments instead of plain text
2024-04-01 23:12:12 +02:00
Toni Förster
f84c6d319a
iv: use html comments instead of plain text
It now correctly displays emojis hyphens
2024-04-01 15:08:08 +02:00
0x000C
1f667818db Change shareURL() in VideosAPI and callers to use URLs instead of hostnames 2024-03-20 20:21:26 -07:00
0x000C
6ec516dc3d fix: Remove ports from shared YouTube links
Fix #619: Remove ports from shared YouTube links
2024-03-18 22:01:34 -07:00
Ricky Kresslein
87337f31a5 Updated importer and exporter to include new defaults 2024-02-28 18:35:03 +01:00
Ricky Kresslein
9d4446a6ef Add skip, play/pause, and fullscreen shortcuts to macOS player 2024-02-17 10:40:27 +01:00
Arkadiusz Fal
e6deb9ef26 Add import on tvOS, other export/import improvements 2024-02-03 21:49:45 +01:00
Arkadiusz Fal
371471ad81 Fix syntax 2024-02-02 11:38:01 +01:00
Arkadiusz Fal
2413526d70 Style fixes 2024-02-02 11:16:27 +01:00
Arkadiusz Fal
5b35c03bc5 Add MPV deinterlace filter setting
Fix #601
2024-02-02 11:16:27 +01:00
Arkadiusz Fal
2be6f04e37 Import export settings 2024-02-02 11:16:27 +01:00
Toni Förster
ecba91f35d
more robust regex for chapters from description
This should reduce the number of falsely matched chapters, e.g., when time-code-like numbers appear in the middle of the text, like 16:9 or sports results.

It also checks for chapters that have an end time and omits the end time code from the title.

Track lists in music videos are now also properly displayed as chapters.
2024-01-01 16:04:40 +01:00
Toni Förster
721a97dc41
no need for NotificationCenter 2023-12-05 00:07:36 +01:00
Toni Förster
d361ef01d4
move updating the time to PlayerModel
this makes the chapter view much much smoother
2023-12-04 21:58:49 +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
Toni Förster
aa5d6733b2
remove superfluous vars and chaptermodel 2023-12-03 20:04:57 +01:00
Toni Förster
4ec6f35c5d
highlight current chapter 2023-11-28 16:45:36 +01:00
Toni Förster
e525f36824
formatting 2023-11-22 10:24:41 +01:00
Toni Förster
45d2968d9e
support for private instances
closes #552

and some formatting
2023-11-21 18:14:17 +01:00
Arkadiusz Fal
a04159969e Use AF for Piped token request 2023-10-22 19:39:34 +02:00
Arkadiusz Fal
0ffb9d0606 Fix date parsing for piped videos 2023-10-15 14:08:38 +02:00
Arkadiusz Fal
04e56638ce Fix possible crash 2023-10-15 00:46:59 +02:00
Arkadiusz Fal
674269c4c1 Fix issue with tvOS screensaver 2023-10-15 00:46:58 +02:00
Arkadiusz Fal
3edfa5dfe7 Set focus on search textfield on macOS
Fix #268
2023-09-26 17:44:01 +02:00
Arkadiusz Fal
9d49f3dd68 Add podcasts and releases tabs for channels in Invidious 2023-09-25 21:37:30 +02:00
Arkadiusz Fal
e5f49fda5e Fix tab selection bugfix 2023-09-24 11:14:24 +02:00
Arkadiusz Fal
40ac137461 Fix sidebar navigation 2023-09-23 21:59:38 +02: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
12a8582e89 Fix style issues, remove unused code 2023-09-23 17:14:21 +02:00
Arkadiusz Fal
dfda1181e2 Fix swiftformat issues 2023-09-23 17:14:21 +02:00
Arkadiusz Fal
19d11a3ad9 Add button to add public instance to custom list 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
58ba6f5fe7 Fix #519 2023-07-24 19:45:31 +02:00
Arkadiusz Fal
98d26c37ff Minor style change 2023-07-24 19:45:30 +02:00
Arkadiusz Fal
3c9e04d243 Channels performance improvements
Add settings:
Show channel avatars in channels lists
Show channel avatars in videos lists

Fix #508
2023-07-24 19:45:30 +02:00
Arkadiusz Fal
37a96a01db Fix #515 2023-07-24 19:45:30 +02:00
Arkadiusz Fal
dcef7f47ff Drop iOS 14 and macOS 11 support 2023-07-24 19:45:30 +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
16b25df3bc Fix method and property access 2023-06-09 18:03:42 +02:00
Arkadiusz Fal
8ffdd4d51f Fix crash 2023-06-09 17:45:51 +02:00
Arkadiusz Fal
f78545baf9 Fix issue with AVPlayer rate restore 2023-06-08 12:25:12 +02:00
Arkadiusz Fal
1efd9e2b90 Fix hiding overlays 2023-06-08 12:11:44 +02:00
Arkadiusz Fal
59e5fcb37d Fix properties access 2023-06-07 23:51:17 +02:00
Arkadiusz Fal
7b9bbd8974 Fix #473 2023-06-07 23:37:28 +02:00
Arkadiusz Fal
c36dc67a72 Fix issue with AVPlayer rate 2023-06-07 23:37:28 +02:00
Arkadiusz Fal
71b25afa28 Use method to find instance 2023-06-07 23:37:28 +02:00
Arkadiusz Fal
6f91eedf4c Update watch time on close item 2023-06-07 23:37:27 +02:00
Arkadiusz Fal
0328656a44 Fix AVPlayer layout 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
f3a8a0977c Do not reload channels cache if not needed 2023-06-07 23:37:27 +02:00
Arkadiusz Fal
792a2c1c6c Fix method access 2023-05-29 16:50:40 +02:00
Arkadiusz Fal
6ddf1113bf Fix fullscreen exit 2023-05-29 16:42:19 +02:00
Arkadiusz Fal
3adbea1897 Fix #443 2023-05-29 16:13:12 +02:00
Arkadiusz Fal
80a644eb7a Fix Invidious trending categories 2023-05-29 16:13:12 +02:00
Arkadiusz Fal
1d61dec8eb Revert "Minor improvements"
This reverts commit 24241d3485.
2023-05-29 16:13:12 +02:00
Arkadiusz Fal
947f216fac Fix closing video on error 2023-05-29 16:13:12 +02:00
Arkadiusz Fal
a054d343a9 Fix music mode in AVPlayer 2023-05-29 16:13:12 +02:00
Arkadiusz Fal
48263ae7db Add tap on search to focus search field on iOS 2023-05-29 16:13:12 +02:00
Arkadiusz Fal
562df2d9ba Add advanced setting "Show video context menu options to force selected backend" 2023-05-29 16:13:12 +02:00
Arkadiusz Fal
e5f137a2d2 Add setting "Keep channels with unwatched videos on top of subscriptions list" 2023-05-29 16:13:12 +02:00