Commit Graph

34 Commits

Author SHA1 Message Date
kuhaku 52fa523df1
Add support for External Players (closes #418) (#1271)
* feat: add support for opening videos/playlists in external players (like mpv) #418

Signed-off-by: Randshot <randshot@norealm.xyz>

* feat: move external player settings into own section
feat: add warnings for when the external player doesn't support the current action (e.g. reversing playlists)
feat: add toggle in settings for ignoring unsupported action warnings

Signed-off-by: Randshot <randshot@norealm.xyz>

* improvement: do not append start offset argument when the watch progress is 0

Signed-off-by: Randshot <randshot@norealm.xyz>

* fix: fix undefined showToast error when clicking on the external player playlist button

Signed-off-by: Randshot <randshot@norealm.xyz>

* feat: add icon button for external player to watch-video-info (below video player) component
improvement: refactor the code for opening the external player into a separate function in utils.js

Signed-off-by: Randshot <randshot@norealm.xyz>

* feat: add support for ytdl protocol urls (supportsYtdlProtocol)
chore: fix lint error

Signed-off-by: Randshot <randshot@norealm.xyz>

* feat: add support for passing default playback rate to external player
improvement: add warning message for when the external player does not support starting playback at
             a given offset
chore: rename reverse, shuffle, and loopPlaylist fields for consistency

Signed-off-by: Randshot <randshot@norealm.xyz>

* feat: add setting for custom external player command line arguments

Signed-off-by: Randshot <randshot@norealm.xyz>

* chore: fix lint error

Signed-off-by: Randshot <randshot@norealm.xyz>

* improvement(watch-video-info.js): change the default for playlistId back to null (consistent with other occurrences)
improvement(utils.js/openInExternalPlayer): also check for empty playlistId string
fix(watch-video-info.js): fix merge error

Signed-off-by: Randshot <randshot@norealm.xyz>

* improvement(components/ft-list-video): check whether watch history is turned on, before adding a video to it
fix(store/utils): fix playlistReverse typo, causing `undefined` being set as a command line argument
fix(store/utils): check for 'string' type, instead of `null` and `undefined`
fix(views/Watch): fix getPlaylistIndex returning an incorrect index, when reverse was turned on
chore(locales/en-US): fix thumbnail and suppress typo
chore(locales/en_GB): fix thumbnail and suppress typo

Signed-off-by: Randshot <randshot@norealm.xyz>

* feat: pause player when opening video in external player

Signed-off-by: Randshot <randshot@norealm.xyz>

* feat(externalPlayer): refactor externalPlayerCmdArguments into a separate static file `static/external-player-map.json`
chore(components/ft-list-video): fix lint error

Signed-off-by: Randshot <randshot@norealm.xyz>

* Revert "feat: pause player when opening video in external player"

This reverts commit 28b4713334bf941be9e403abf517bb4b89beb04f.

* feat: pause the app's player when opening video in external player

* This commit addresses above requested changes.

improvement(components/external-player-settings): move `externalPlayer` check to `ft-flex-box`
improvement(components/external-player-settings): use `update*` methods, instead of `handle*`

improvement(store/utils): move child_process invocation to `main/index.js` via IPC call to renderer
improvement(store/utils): use `dispatch` for calling actions
improvement(store/utils): get external player related settings directly in the action

improvement(renderer/App): move `checkExternalPlayer` call down into `usingElectron` if statement
fix(renderer/App): fix lint error

improvement(components/ft-list-playlist): remove unnecessary payload fields
fix(components/ft-list-playlist): fix typo in component name

improvement(components/ft-list-video): remove unnecessary payload fields

improvement(components/watch-video-info): remove unnecessary payload fields
improvement(views/Settings): add `usingElectron` condition

Signed-off-by: Randshot <randshot@norealm.xyz>

* fix(store/utils): fix toast message error

Signed-off-by: Randshot <randshot@norealm.xyz>

* fix(store/utils): fix a few code mess-ups

Co-authored-by: Svallinn <41585298+Svallinn@users.noreply.github.com>
2021-06-13 17:31:43 +02:00
Svallinn af0353ea32
Refactor: Erase `@electron/remote` references and other dangerous calls
The `remote` module is deprecated and `@electron/remote` is unnecessary,
since the `ipcMain` and `ipcRenderer` can replace their functionality,
providing better performance and better security.

All other dangerous calls (mainly pulling main process constructs into
the renderer process) have also been removed.
2021-05-22 00:49:48 +01:00
Preston 689479eb21 Channel Fixes and finish quality change logic 2021-04-30 17:18:45 -04:00
Luca 58882b3e16 Fix for missing import of marked as watched videos 2021-04-10 22:04:59 +02:00
Preston 659415edc3 Initial Playlist implementation. Functions like basic favorites list 2021-01-14 18:03:23 -05:00
Preston a7b27a98d2 Hide Watched formatted when on history page 2021-01-13 17:24:26 -05:00
Laptop Duane 29a80ef160 Add Invidious channel url option to dropdown 2020-10-23 12:51:39 +02:00
Laptop Duane 4113ebb6bb Add Copy / Open Channel URL to video dropdown 2020-10-23 10:50:33 +02:00
fatpowaranga 02231537f9
Use shorter youtu.be links instead of youtube.com for YouTube share links (#671) 2020-10-19 10:11:50 -04:00
Synkky aa7de120b5
Recommended live video shows live tag, instead of undefined (#665)
Fixes #660
2020-10-14 09:50:57 -04:00
Preston 4240bf9e35 Update Premiere Logic 2020-10-08 21:53:34 -04:00
tayloraviets d5970f58c6
PR ready distraction free feature (#596)
* PR ready distraction free feature

Signed-off-by: Taylor <tayloraviets@gmail.com>

* presumably fixed linter issues

Signed-off-by: Taylor <tayloraviets@gmail.com>

* addressed PR issues and hopefully made the linter happy

Signed-off-by: Taylor <tayloraviets@gmail.com>

* fixed more linter issues

Signed-off-by: Taylor <tayloraviets@gmail.com>

* fixed more linter issues again

Signed-off-by: Taylor <tayloraviets@gmail.com>

* fixed more linter issues again.

Signed-off-by: Taylor <tayloraviets@gmail.com>

* moved bad quote

Signed-off-by: Taylor <tayloraviets@gmail.com>
2020-10-05 22:27:32 -04:00
Luca 2249e113d0 Added additional check whether the publishedText of a list video element is null. Fixes the problem for topic videos. 2020-10-02 13:55:02 +02:00
Preston 4f04eb7640 Add better default quality logic 2020-09-24 22:35:13 -04:00
Preston c5f99cf397 Hide duration of video when 0:00 and show message if attempt to save video 2020-09-22 18:13:04 -04:00
Preston 8f35f95a5b Finish Core Subscriptions logic and add more locales to profiles page 2020-09-01 23:21:32 -04:00
Preston 781e971357 Fix issues with playlists and fix issue with leaving watch page from an invalid id 2020-08-25 10:18:14 -04:00
Luca 972ed2f1ca Local Video Search Results, List-Video Parsers
Added:
Local Video Search Results - The results returned from ytdl are now
transformed into the same format as with the Invidious API, so that no
distinction for these is require

Removed
List-Video Parsers - The differentiation between Invidious and Local
video data in yt-video-list.js is removed because of the transformation
2020-08-22 16:21:49 +02:00
Preston 4203ff4ba3 Fix some navigation, clear data on exit, and add more toast messages 2020-08-20 21:20:22 -04:00
Preston 2133a10efa Implement History and jump to last watched time progress 2020-08-19 22:39:44 -04:00
Luca d4a3d35734 Local API Publication Strings, Localization Files 2, Live and Upcoming
videos
Added:
1) Local API Publication Strings - When using the local API, the
correctly translated strings stating how much time since publication has
passed are displayed
2) Localization Files 2 - Added additional strings for upcoming videos
as well as the missing strings to the third translation marked as
missing

Fixed:
Live and Upcoming videos - Livestreams were not handled before but are
now correctly implemented. Upcoming videos have a dummy string until the
relevant data is provided by the scraper
2020-08-18 21:37:43 +02:00
Luca 91bcf52dab Video publication string, Localization files
Added:
1) video publication string - The code now creates a correctly
translated string for the info on how far back the publication was
2) Localization files - Added the required template string as well as
the unit for second and seconds to the yaml files to be able to utilize
them in 1)
2020-08-18 20:32:01 +02:00
Preston 287739de7c Add More Locale Strings to Both the locales file and the app 2020-08-11 23:26:49 -04:00
Preston 6221f80a52
Merge pull request #37 from cloudrac3r/rewrite-list-items
Rewrite list items
2020-07-09 21:50:26 -04:00
Cadence Ember c8538059a3
Remove unnecessary import 2020-07-10 13:42:13 +12:00
Preston 7927e334ad Fix video recommendations for Invidious API and alter text when viewing comment replies 2020-06-24 21:41:46 -04:00
Cadence Ember f17d715e24
Lint :))) 2020-06-24 04:39:26 +12:00
Cadence Ember 7afbe836d3
Rewrite list items :) 2020-06-24 03:47:19 +12:00
Preston 879f00321d Add Basic Menu options to video list object 2020-06-10 20:21:31 -04:00
Preston 47593618cf Proxy video thumbnails through Invidious based on backend preference 2020-06-02 22:27:55 -04:00
Preston 009174b89b Add Support for Live Videos and Live Video Chat 2020-05-23 17:29:42 -04:00
Preston 8980dc74d2 Add full playlist functionality (Shuffle, loop, autoplay) 2020-05-17 16:12:58 -04:00
Preston 1d3915b3d2 Progress on Settings and Database setup 2020-02-26 22:10:56 -05:00
Preston ded6534d16 Push Latest Code to Repository 2020-02-16 13:30:00 -05:00