Commit Graph

533 Commits

Author SHA1 Message Date
Rafał Dzięgiel
d9b35b7fb8 YT: try only once
Avoid triggering 429 ban, by not trying second time
2021-03-16 19:45:33 +01:00
Rafał Dzięgiel
f1e00434ba Fix reference to undefined object 2021-03-16 13:44:22 +01:00
Rafał Dzięgiel
918157be04 Cooooookies!!! 2021-03-16 13:12:44 +01:00
Rafał Dzięgiel
72b55939b4 YT: abort on 429 error 2021-03-16 10:33:31 +01:00
Rafał Dzięgiel
e0a3ef78db YT: pass download info using object intead of array 2021-03-16 10:20:01 +01:00
Rafał Dzięgiel
4f46a7eaa8 YT: handle embedded videos URIs 2021-03-15 20:15:24 +01:00
Rafał Dzięgiel
050ef440dc Merge pull request #54 from Rafostar/yt-cache
YouTube cache
2021-03-15 16:37:55 +01:00
Rafał Dzięgiel
a4d55f8114 YT: store and load decipher actions from Clapper cache dir 2021-03-15 16:35:36 +01:00
Rafał Dzięgiel
aa60c56a58 Treat "yt" and "youtube" URI schemes as YouTube videos
You can set URI to "yt://VIDEO_ID" for YouTube videos
2021-03-15 13:40:50 +01:00
Rafał Dzięgiel
8c307dc90f YT: save decipher actions only after successful deciphering 2021-03-15 13:14:41 +01:00
Rafał Dzięgiel
5b6141ee8c YT: do not check player ID if actions are cached 2021-03-15 13:07:12 +01:00
Rafał Dzięgiel
8f294604dc Remove drop target from top revealer
It is causing various issues unfortunately
2021-03-14 23:33:29 +01:00
Rafostar
06f8e5d259 YT: cache current decipher actions 2021-03-14 21:00:18 +01:00
Rafostar
6370e1126b YT: check if decipher produced result 2021-03-14 16:50:23 +01:00
Rafostar
270e59137d YT: check if player URI is valid 2021-03-14 16:39:22 +01:00
Rafostar
ec18ca989a YT: decipher videos with signatures
Increase amount of playable YouTube videos by deciphering the ones that require to do so.

Many thanks to "node-ytdl-core" devs for JS regular expressions needed for YouTube player parsing.
2021-03-14 15:51:19 +01:00
Rafał Dzięgiel
46d24536c0 Do not keep invalid YT video info 2021-03-12 15:10:18 +01:00
Rafał Dzięgiel
c89d488c30 Prefetch YouTube video info on hover
Speed up loading of YouTube videos by downloading and parsing their info before video is dropped into player.
2021-03-12 13:05:58 +01:00
Rafał Dzięgiel
01c26cbbc3 Small text formatting fix 2021-03-12 08:50:52 +01:00
Rafał Dzięgiel
4375077dbc Decode custom video title from info
The values in JSON info are URI encoded with "+" signs, add custom decode function that decodes them.
2021-03-11 18:49:08 +01:00
Rafał Dzięgiel
fceb8ff70a YouTube support. Closes #46 2021-03-11 17:34:54 +01:00
Rafał Dzięgiel
6dc37088cf Fix error when playback finishes during controls reveal animation 2021-03-08 10:37:40 +01:00
Rafostar
4e85f6b749 API: set some common user agent
Some internet sites might prevent us from access unless some sort of a user agent is set
2021-03-07 21:37:01 +01:00
Rafał Dzięgiel
8b2e63ac48 Update README.md 2021-02-28 14:56:19 +01:00
Rafał Dzięgiel
f4968e28ab 0.1.0 0.1.0 2021-02-26 10:19:03 +01:00
Rafał Dzięgiel
68e10f1af4 Revert "Flatpak: update GStreamer to 1.18.3"
This reverts commit b3b0371c76.

It seems that newer GStreamer version has more new bugs then noticeable fixes.
2021-02-25 21:02:34 +01:00
Rafał Dzięgiel
2f3fac7d81 Flatpak: add broadway variable type fix patch 2021-02-25 09:51:24 +01:00
Rafał Dzięgiel
6b4521c49a Make video chapter popover easier to read when fullscreen 2021-02-25 09:27:07 +01:00
Rafał Dzięgiel
a0cd05fbe3 Workaround GTK4 revealers transition switch bug
Changing transition in middle or when not fully revealed has dire consequences, seems to be a GTK4 bug. Workaround this bug by switching top revealer transition type only when fully revealed.
2021-02-25 09:24:02 +01:00
Rafał Dzięgiel
d2d43db2c9 Do not update time if top grid is invisible 2021-02-24 18:27:40 +01:00
Rafał Dzięgiel
b7b1dad81c Allow adjusting playback speed with scroll 2021-02-24 17:29:24 +01:00
Rafał Dzięgiel
e859f5d518 Fix opening files from web application
It was trying to send GioFiles over WebSocket. The idea of doing that seems so dumb, that I do not know why I did not notice this issue earlier.
2021-02-24 17:05:49 +01:00
Rafał Dzięgiel
53ad4da7c6 Remove useless run method override 2021-02-24 16:46:25 +01:00
Rafał Dzięgiel
db8d060841 Mark as optimized for Phosh
Player window is considered mobile friendly with its transitions and touch/swipes gestures implemented. The only missing part now is preferences window that needs moving to libadwaita. Due to video playback being mobile friendly, mark this app as Purism Mobile compatible which will allow the app to appear on mobile app store and show the app icon in app launcher.
2021-02-24 15:58:37 +01:00
Rafał Dzięgiel
e2bd8a827c Mention in metainfo description that Wayland+vah264dec works best 2021-02-24 15:48:30 +01:00
Rafał Dzięgiel
0fe1cf5f0d Make volume restore more reliable
Instead setting value to volume scale, set value to the player itself. Scale will be updated due to bidirectional binded property. This fixes cases where slider did not emit value-changed notify as it was being set to the same value as initial one.
2021-02-24 14:26:34 +01:00
Rafał Dzięgiel
0a8e25d27b Prevent adding "fine-tune" class to position scale on TV mode
When scale enters "fine-tune", slider changes position a little. We do not want that to cause seek time change on TV mode.
2021-02-24 13:41:05 +01:00
Rafał Dzięgiel
af6a5ea1b9 Check widget existence when top revealer finishes reveal
Prevent errors when app was closed during top revealer animation.
2021-02-24 12:40:28 +01:00
Rafał Dzięgiel
632fcd34cc Fix overlay buttons not unrevealed when leaving window from bottom side
Bottom revealer motion controller was causing timeout to be cleared. Prevent that by making it child invisible when windowed, which will remove its allocated height and motion events will not be emitted.
2021-02-24 12:34:57 +01:00
Rafał Dzięgiel
186c63bf04 Set unreveal timeout after reveal finishes
Instead of setting hide controls timeout immediately when starting revealing, make the time controls are revealed constant by setting timeout after animation finishes.
2021-02-24 12:04:26 +01:00
Rafał Dzięgiel
68bd65c225 API: snap at nearest keyframe when doing fast seek
GStreamer needs to perform a seek when changing playback rate. Snapping at next keyframe causes viewer to lose few seconds of video when changing playback speed (and ugly fast forward effect when dragging speed slider). Prevent all those issues by seeking to the nearest keyframe instead.
2021-02-24 11:41:40 +01:00
Rafał Dzięgiel
199a8f1931 Bind volume scale with player volume prop
Now that player API itself is operating on a cubic scale (no value conversion required), the volume slider can be bind to the volume property. Thanks to that, player volume scale will correctly reflect Clapper volume set via external applications e.g. gnome-settings.
2021-02-24 11:09:42 +01:00
Rafał Dzięgiel
775ec8a780 API: fix volume functions descriptions 2021-02-24 10:44:26 +01:00
Rafał Dzięgiel
66d201dc3e Flatpak: update GTK to 4.1.1
GTK4 now has new GL renderer. If you wish to test it with Clapper, use GSK_RENDERER=ngl
2021-02-24 10:38:03 +01:00
Rafał Dzięgiel
dbd3e536b2 Limit bottom fullscreen controls panel width
Fullscreen bottom controls panel does not look good when progress bar is too long (especially on "ultrawide" displays), so limit its max width to 1720 application-pixels. This should make it still long enough for convenient chapter seeking.
2021-02-24 10:11:12 +01:00
Rafał Dzięgiel
bfdc85e3e3 Merge pull request #44 from Rafostar/gstclapper-volume
API: use cubic volume
2021-02-24 08:45:38 +01:00
Rafał Dzięgiel
86d365872a API: operate on cubic volume scale
Instead converting volume inside GJS, simplify things by making API operate on cubic volume scale.
2021-02-24 08:42:27 +01:00
Rafostar
b3b0371c76 Flatpak: update GStreamer to 1.18.3 2021-02-23 17:37:39 +01:00
Rafostar
7d79aa97bb Use rounded corners with every theme
AFAIK there is no way to detect theme rounded corners. Having 2/4 corners rounded in floating mode is not good.
2021-02-23 16:18:26 +01:00
Rafał Dzięgiel
6130ffa6c0 API: limit max linear volume to 3.375 (150% in cubic)
Clapper UI does not support volume overamp higher than 150%. Anything higher can lead to audio distortion or damaging your audio equipment.
2021-02-23 13:27:42 +01:00