Commit Graph

117 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
cc61f5a96d
Fix getRegions script and update the regions (#5450)
* Fix getRegions script and update the regions

* Add mappings for es_AR, es-MX and pt-BR
2024-07-24 07:57:32 +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
c4f58dfe5f
Add custom webpack loader to remove unused mimetypes from mime-db (#5148)
* Add custom webpack loader to remove unused mimetypes from mime-db

* Update _scripts/mime-db-shrinking-loader.js

Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>

---------

Co-authored-by: efb4f5ff-1298-471a-8973-3d47447115dc <73130443+efb4f5ff-1298-471a-8973-3d47447115dc@users.noreply.github.com>
Co-authored-by: Jason <84899178+jasonhenriquez@users.noreply.github.com>
2024-05-22 15:08:20 +08: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
819139e75a
Use webpack dev server's open option (#4988) 2024-04-25 16:05:03 -04:00
absidue
a94910df27
Serve files from a custom protocol instead of using file:// (#4987) 2024-04-23 21:24:59 +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
bb7d90be05
Fix imports of the "electron" module that are missing an Electron guard (#4935) 2024-04-14 13:16:55 +00:00
absidue
af2913592e
Add SUPPORTS_LOCAL_API build flag (#4931) 2024-04-12 06:12:50 +00:00
absidue
77df063c71
Fix the web build's manifest.json file getting included in the electron build (#4815) 2024-03-27 08:31:11 +08:00
absidue
31c813ddfd
Stop setting node modules path now that we bundle the modules (#4809) 2024-03-26 20:27:35 -04:00
dependabot[bot]
7ef9ce9a4e
Bump webpack-dev-server from 4.15.1 to 5.0.2 (#4695)
* Bump webpack-dev-server from 4.15.1 to 5.0.2

Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.15.1 to 5.0.2.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.15.1...v5.0.2)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* ! Fix running `yarn dev`

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: PikachuEXE <git@pikachuexe.net>
2024-02-25 14:14:30 +01: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
Jason
baa7b014eb
Fix caption sorting & label (#4513)
* Fix auto-translated captions not being ordered properly in non-English languages

* Fix locale showing as 'locale name' in captions list
2024-01-06 11:25:16 +01:00
efb4f5ff-1298-471a-8973-3d47447115dc
e3f95e44b8
Update Copyleft (#4510) 2024-01-02 18:19:04 +01:00
absidue
02ee4c8148
Only bundle the Swiper modules that we use (#4455) 2023-12-16 13:50:09 +00:00
lauren n. liberda
407bcda015
split electron-builder config to a separate file from build script (#4431)
* split electron-builder config to a separate file from build script

* review changes
2023-12-09 09:50:51 +08: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
faa35d35ef
Fix locales getting unnecessarily reprocessed for incremental builds (#3893) 2023-08-18 14:08:38 +00:00
absidue
939352347d
Add a script to update the region/geolocation files (#3701)
* Add a script to update the region/geolocation files

* Update tooltip now that we only list supported geolocations

* Add language sensitive sorting
2023-07-01 10:08:09 -04:00
ChunkyProgrammer
ccbf7e2155
Use script to create Invidious instance list file (#3545)
* Use script to create static instance list

* save cors, filter out cors when not electron
2023-05-20 15:07:04 +02:00
absidue
4c0f84424d
Cleanup polyfills (#3383) 2023-04-12 09:39:28 -04:00
absidue
30e9c0ce77
Remove empty translation strings at build time (#3361) 2023-04-01 14:52:49 +00: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
0eeac4699b
Only load the necessary configs in the dev-runner (#3146) 2023-02-04 15:04:44 +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
15b15026b6
Migrate the watch page to YouTube.js (#3035)
* Migrate the watch page to YouTube.js

* Fix YouTube.js exclusion in the web build
2023-01-07 02:52:59 +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
PikachuEXE
f91395de85
Update copyleft year to 2023 (#3017) 2022-12-31 07:30:43 -05: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
b33af1c812
Make the process locales plugin properly async (#2940) 2022-12-11 08:42:35 +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
cf30154e51
Remove unused worker (#2804) 2022-11-06 08:17:33 +00:00
absidue
56416700bc
Allow webpack to omit development only dependencies properly (#2828) 2022-11-05 14:44:21 +00:00
absidue
9b38d1dc0d
Update copyleft year to 2022 (#2810) 2022-11-04 07:17:00 +00:00
PrestonN
32c9964050 Add zlib to web build 2022-11-01 22:08:28 -04:00
absidue
697bed23ed
Disable http disk cache and implempent in-memory image cache (#2498)
* Disable http disk cache and implempent in-memory image cache

* Add comment about removing URL scheme prefix

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

* Add early return to clean up the code

* Rewrite cache expiry logic with fallbacks

* Move this change behind a CLI argument --experiments-disable-disk-cache

* Replace CLI flag with a GUI setting

* Improve warning message styling

* ! Fix incompatibility with latest settings code

* Use CSS instead of sass for the experimental settings

* Return the error as JSON instead of throwing it

* Inline restart prompt label and option names and values

* Mention crash risk and recommend backups in the warning

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2022-10-25 02:33:08 +00:00
Emma
6e693c6c37
Implement getRegionData in web (#2743)
* Implement `getRegionData` in web

- Adjust __dirname to be a more sensible value
- Add `process.env.GEOLOCATION_NAMES` for web builds to avoid having
to blindly try and fetch

* Reverting webpack changes

* Change `indexOf` to `includes`

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

* Adding a new helper `createWebURL`

It takes a given path to a resource, and it returns an
 easily fetch-able absolute path

* Using `createWebUrl` inside of the locale fetch

* Using `createWebURL` inside of `getRegionData`

* Removing an unnecessary leftover import

* Wait, no I was mistaken

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2022-10-22 10:31:34 +02: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