47 Commits

Author SHA1 Message Date
absidue
b3ff837468
Migrate video player from video.js to shaka-player (#4978)
* Migrate video player from video.js to shaka-player

* Fix syntax error introduced during cleanup

* Fix typo

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>

* Show bitrate in stats for Invidious legacy formats

* Sort legacy formats by bitrate instead of qualityLabel

* Use Invidious' newly added isPostLiveDvr property

* Invidious correctly returns the ratelimit for DASH manifests now

* Properly hide unsupported screenshot functionality outside of Electron

* Sort captions in data initialiser

* Update shaka-player to version 4.8.1

* Use textTrackLabelFormat configuration option

* Switch to manifestPreprocessorTXml

* Add support for VR videos that use equirectangular projection

* The AV1 video streams work okay for vr, so allow list them too

* Use woff2 (169 KB) Material Icons font instead of otf (390 KB)

* Use material icons for custom player elements

* Fix legacy formats exception

* Update shaka-player to version 4.8.3

* Sort default quality values the same as in the player

* Cleanup representations search in live subtitle fix

* Slightly speed up sortCaptions

* Fix setPositionState error when playback rate is 0

* Update shaka-player to version 4.8.4

* Fix playback rate changes getting overridden

* Fix current chapter index not updating

* Fix next video not automatically playing

* Fix volume changes not propagating to the mute button

* Reduce work done during UI config updates

* Fix UI customizations not applying after UI config changes

* Update shaka-player to version 4.8.5

* Replace non-reactive workaround with a Vue 3 friendly one

* Fix error when all sponsorblock segments are set to do nothing

* Add some guards to hopefully reduce errors during fast naviagtions

* Make SponsorBlock failure non-fatal

* Update shaka-player to version 4.8.6

* Update shaka-player to version 4.8.8

* Update shaka-player to version 4.9.0

* Update shaka-player to version 4.9.1

* Minor performance improvements

* Update shaka-player to version 4.9.6

* Update shaka-player to version 4.9.9

* Fix sponsor block markers not showing up

* Add some basic error messages for expired urls and ratelimits

* Add some basic error messages for 403s

* Cleanup code comments

* Migrate player to composition API for better performance

* Use reactive for stats instead of ref, as it never gets reassigned

* Update shaka-player to version 4.10.0

* Fix i18n import in custom player components

* Add chapter markers

* Move shaka-player CSS import into the Vue file

* Bump mpd_version from 5 to 7

* Apply suggestions from code review

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>

* Fix seeking with the arrow keys

* Update shaka-player to version 4.10.3

* Truncate long video titles to the screen width in the full screen overlay

* Fix mouse scroll handlers firing multiple times

* Cleanup unneeded code

* Update shaka-player to version 4.10.6

* Various small optimisations

* Move skipped sponsorblock segement messages to the top right corner

* Support prefers-reduced-transparency in overlays

* Fix stylelint errors

* Update shaka-player to version 4.10.7

* Update shaka-player to version 4.10.8

* Only use variants that are predicted to play smoothly

* Only set preferredDecodingAttributes for DASH playback

* Implement a custom audio track selector instead of using shaka-player's

* Move skipped sponsorblock segement messages to the bottom right corner

* Fix scrolling over the big play pause button not working

* Update shaka-player to version 4.10.9

* Fix some type issues

* Add support for secondary audio tracks

* Downgrade shaka-player to fix subtitle alignment

* Actually downgrade shaka-player

* Fix Invidious API error

* Update outdated comment

* Fix multiple audio track detection for Invidious

* Fix duplicate qualities with the Invidious API

* Use vp9 streams if the Invidious instance is running a new enough version

* When an error occurs with the thumbnails just log it

* Include the video ID in the error logs

* Gracefully handle the internet connection disappearing during playback

* Show a message while buffering if it was caused by the internet connection disappearing

* Fix the text color and RTL handling

* Cleanup the Invidious DASH manifest in builds without the local API

* Fix quality selection when switching from audio to DASH

Unfortunately shaka-player will still override the quality selections
with its ABR bug.

* Update shaka-player to version 4.10.10

* Fix position and alignment for auto-generated subtitles

* Update shaka-player to version 4.10.11

* Use the HLS manifests for live streams

The live DASH manifests are currently unusable on both API backends as
they return 403s after 1 minute of playback. Unfortunately this means we
lose the ability to seek and use the audio formats for live streams.

* Update shaka-player to version 4.10.12

---------

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
2024-09-02 19:40:42 +00:00
absidue
89236ac804
Use the ES Modules export of portal-vue instead of the CommonJS one (#5297) 2024-06-24 08:21:29 -04:00
absidue
61820b1bcf
Implement hot reloading for the locale files during development (#5050)
* Stop using deprecated additionalAssets hook

* Watch locale files without webpack-watch-external-files-plugin

* Use Maps instead of objects

* Use webpack's file timestamps instead of checking the files ourselves

* Add hot reloading

* Inject hot reload code snippet
2024-05-14 16:35:50 +00:00
absidue
27eecb9e0b
Simplify static file loading (#4971) 2024-04-18 01:09:29 +00:00
absidue
fa66e82a56
Bundle datastores as ES modules instead of commonjs (#4965) 2024-04-17 22:33:13 +00:00
absidue
af2913592e
Add SUPPORTS_LOCAL_API build flag (#4931) 2024-04-12 06:12:50 +00:00
absidue
31c813ddfd
Stop setting node modules path now that we bundle the modules (#4809) 2024-03-26 20:27:35 -04:00
absidue
161633d1d9
Include swiper version in CSS file name, for cache busting (#4685) 2024-02-19 10:58:59 +00:00
absidue
e0942ea8d9
Remove existence checks and fallbacks for files that always exist (#4544) 2024-02-04 20:45:37 +00:00
absidue
02ee4c8148
Only bundle the Swiper modules that we use (#4455) 2023-12-16 13:50:09 +00:00
PikachuEXE
342444f433
Ensure updated locales are auto-reloaded in electron renderer dev mode (#4066)
* * Ensure updated locales are auto-reloaded in electron renderer dev mode

* * Add watch external file plugin in dev mode only

* * Make changes from code review
2023-10-25 21:36:35 +00:00
absidue
4c0f84424d
Cleanup polyfills (#3383) 2023-04-12 09:39:28 -04:00
absidue
da0c06902b
Use smaller Vue esm runtime build (#3271) 2023-03-07 07:06:42 +01:00
absidue
291aeff1a6
Migrate channel related functionality to YouTube.js (#3143)
* Migrate channel related functionality to YouTube.js

* Better alert handling

* Add support for special autogenerated channels

* Add support for latest YouTube.js changes

* Add support for age restricted channels

* Update YouTube.js to 3.0.0

* Obey hide search bar setting for the tag searching

* Choose a better parameter name

* Allow sharing terminated and age restricted channels

* Add handle support for handles on Invidious

* Fix the backend fallback

* Use a positive parameter name

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

* Fix duplicate tags causing errors

* Fix sorting for the Invidious API

* Move URL resolving to the channel page

* Update YouTube.js to 3.1.0

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-03-01 08:39:33 +08:00
absidue
15bd1cb958
Set the Vue compiler whitespace option to condense (#3101) 2023-01-25 15:58:51 -05:00
absidue
e140d5ef98
Use smaller web version of linkedom (#3115) 2023-01-25 21:21:31 +01:00
absidue
7becd36120
Add an IS_ELECTRON_MAIN define instead of runtime detection (#3056) 2023-01-13 17:54:05 +01:00
absidue
fe85a17b4e
Use webpack externals to exclude dependencies (#3036) 2023-01-07 20:45:27 +01:00
absidue
156176aca8
Migrate search to YouTube.js (#3028)
* Migrate search to YouTube.js

* Fix linting issue
2023-01-05 04:54:08 +01:00
ChunkyProgrammer
43a25f8738
update linters & add stylelint (#3023)
* update linters, add stylelint, switch from sass to scss

* remove unused babel-eslint module

* fix spacing in scss files

* dont use npm in script calls

* dont error for `:deep` selector in css
2023-01-03 19:19:41 +01:00
absidue
1d1e6eacea
Switch from sync fs APIs to fs/promises (#2991)
* Switch from sync fs APIs to fs/promises

* Fix error and await storyboard creation

* Start a new file for filesystem helpers starting with pathExists
2022-12-29 01:19:48 +00:00
absidue
bef610f91b
Import the product name instead of using a define for it (#3003) 2022-12-27 10:15:15 +08:00
absidue
c9124359a5
Migrate playlists on the watch page to YouTube.js (#2969) 2022-12-16 18:08:56 +01:00
absidue
ecb9128731
Migrate search suggestions to youtubei.js (#2855)
* Migrate search suggestions to youtubei.js

* Rename functions to indicate that they are for the local API

* Implement and use a lightweight Innertube session

* Fix typo in comment

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>

* Fix another typo in a comment

Co-authored-by: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com>
2022-11-28 12:52:47 +01:00
absidue
e02594629e
Cleanup webpack aliases (#2846) 2022-11-09 07:34:40 -05:00
absidue
56416700bc
Allow webpack to omit development only dependencies properly (#2828) 2022-11-05 14:44:21 +00:00
absidue
d8f7d073ce
Remove unused ft-grid component and __static variable (#2744)
* Remove unused ft-grid component

* Remove unused __static variable
2022-10-19 09:09:49 +08:00
absidue
dc2cc746cf
Fix the development only js-yaml dependency being included in the release builds (#2646) 2022-10-02 08:12:13 +08:00
absidue
ac4cc4a611
Compress and lazy load locales (#2603)
* Compress and lazy load locales

* Remove index.html when loading the locales on the web

* Fix locale output path for web build
2022-09-24 11:06:50 -04:00
absidue
62829b736a
Electron variable at build time instead of at runtime (#2574) 2022-09-15 08:59:09 +00:00
absidue
bbd1dba867
Remove node-loader as we don't have any binary/native node modules (#2576) 2022-09-15 08:52:46 +08:00
absidue
a69cbd3b55
Optimise CSS and JSON files (#2569) 2022-09-13 09:28:36 +08:00
absidue
97e3813182
Update css-loader and switch to webpack 5's asset modules (#2566) 2022-09-11 20:34:58 -04:00
absidue
eaa15ea833
Webpack bundle dependencies (#2511)
* Allow webpack to bundle *most* dependencies

* Exclude *most* node_modules from getting packaged by electron-builder

* Import only the required icons instead of bundling the whole icon pack

* Reduce packaging blacklist to only include the few things that still need blacklisting
2022-09-06 02:29:10 +00:00
absidue
9961183c1b
Only generate the web assets directory during web builds (#2528)
* Webpack 5 optimises productions builds by default, no need for the LoaderOptionsPlugin

* Only create web assets during web build
2022-09-02 09:19:06 -04:00
absidue
903f3a2241
Prevent packaging unneeded dependency files (#2303)
* Prevent packaging unneeded dependency files

* Exclude even more dependency files from being packaged
2022-07-14 10:43:07 -04:00
absidue
331f65ec26
Remove unused dependencies (#2278)
* Remove the bulma-pro and videojs-abloop dependencies

* Remove typescript

* Remove the jest development dependency
2022-05-31 16:15:44 -04:00
PikachuEXE
5c83dd8790
Update webpack config to remove explicit HMR plugin (#1729)
This change suppresses warning
"<w> [webpack-dev-server] "hot: true" automatically applies HMR plugin, you don't have to add it manually to your webpack configuration."
2021-09-23 06:43:52 +00:00
Svallinn
52f35e5be3
Chore: Update webpack-dev-server to its next version (4.0.0-beta3) 2021-06-19 19:12:42 +01:00
Preston
a3fe91bef5 Update to Webpack 5 and Electron 12 2021-03-02 22:51:01 -05:00
Preston
22c40fb049 Update Dependencies 2020-11-23 21:53:49 -05:00
Preston
64b877fe27 Fix Locales File and Implement Locales file with app 2020-08-05 23:39:00 -04:00
Preston
b625683a2e Add error handling for local channel API and add check for missing channel info 2020-07-11 18:36:42 -04:00
Preston
009174b89b Add Support for Live Videos and Live Video Chat 2020-05-23 17:29:42 -04:00
Cadence Ember
8bae0b30ab
Start refactoring top bar 2020-03-25 03:34:55 +13:00
Preston
2533161667 Start on Mobile view and add Web Build option 2020-03-24 09:22:29 -04:00
Preston
ded6534d16 Push Latest Code to Repository 2020-02-16 13:30:00 -05:00