Commit Graph

68 Commits

Author SHA1 Message Date
Fabio Manganiello 641a2fd135
Renamed parameter of `volup`/`voldown` for music plugins.
To be consistent with all other media plugins, the parameter name should
be `step`, not `delta`.

A back-compatibility layer has however been introduced for plugins
(namely `music.mpd` and `music.spotify`) that already exposed the old
interface.
2024-01-13 22:35:18 +01:00
Fabio Manganiello 2670d40094
Added `get_default_media_plugin` utility. 2023-12-06 01:31:05 +01:00
Fabio Manganiello 1f321c32dc
[`media.chromecast`] Full plugin rewrite.
continuous-integration/drone/push Build is failing Details
2023-11-12 03:08:54 +01:00
Fabio Manganiello eb7a96ee94
[`youtube`] Added more metadata fields to search results. 2023-11-09 02:47:32 +01:00
Fabio Manganiello 1d41df51e7
[`media`] Extended current track with ytdl metadata if available. 2023-11-07 00:45:44 +01:00
Fabio Manganiello 27da2becd7
[`media`] Added `media.get_info` action.
It combines the `-j` and `-g` options of ytdl* to get both the stream
URL and the track metadata.
2023-11-06 02:25:35 +01:00
Fabio Manganiello 71bca662a1
`media.play` should support anything supported by a yt_dlp extractor.
continuous-integration/drone/push Build is passing Details
2023-11-05 02:40:38 +01:00
Fabio Manganiello 44d4ae2a96
[`media`] Made the `youtube-dl` executable configurable.
`youtube-dl` is mostly dead and there are several forks available, thus
we need to give the user the ability to pick which `youtube-dl`
executable fork they want to use.

Among these, `yt-dlp` is probably the most maintained today and it's
also included in many default repos, so it's been added as an extra
requirement for all the media plugins.

Closes: #268
2023-11-04 11:57:09 +01:00
Fabio Manganiello b4bf30945a
[`media`] Black/LINT for `MediaPlugin`. 2023-11-04 00:50:08 +01:00
Fabio Manganiello ef3b1d20f2 Updated `MediaPlugin` documentation snippet. 2023-10-31 00:44:05 +00:00
Fabio Manganiello c3337ccc6c
[#311] Docs deps autogen sphinx plugin.
continuous-integration/drone/push Build is passing Details
Added an `add_dependencies` plugin to the Sphinx build process that
parses the manifest files of the scanned backends and plugins and
automatically generates the documentation for the required dependencies
and triggered events.

This means that those dependencies are no longer required to be listed
in the docstring of the class itself.

Also in this commit:

- Black/LINT for some integrations that hadn't been touched in a long
  time.

- Deleted some leftovers from previous refactors (deprecated
  `backend.mqtt`, `backend.zwave.mqtt`, `backend.http.request.rss`).

- Deleted deprecated `inotify` backend - replaced by `file.monitor` (see
  #289).
2023-09-24 17:00:08 +02:00
Fabio Manganiello 56dc8d0972
Migrated the webapp to Tornado.
It was just too painful to find a combination of versions of  gunicorn,
gevent, eventlet, pyuwsgi etc. that could work on all of my systems.

On the other hand, Tornado works out of the box with no headaches.

Also in this commit:

- Updated a bunch of outdated/required integration dependencies.
- Black'd and LINTed a couple of old plugins.
2023-05-08 02:06:45 +02:00
Fabio Manganiello 0d0797a465
Added Jellyfin integration 2022-03-01 01:32:50 +01:00
Fabio Manganiello 46d8d575ba
Handle and log media workers search errors 2021-12-03 21:54:41 +01:00
Fabio Manganiello 4a5bb766af
Fixed some media plugins inconsistencies
- Removed replication of logic between media.get_youtube_url (action) and media.get_youtube_video_url (internal method)

- Added differentiation between MediaPlayEvent and MediaResumeEvent
2021-10-17 16:03:57 +02:00
Fabio Manganiello 8c339d0d55
Added support for custom YouTube preferred video/audio formats 2021-10-17 02:53:38 +02:00
Fabio Manganiello 3bfc5b83ef Moved to manifest files for describing plugins and backends and their dependencies 2021-09-16 17:53:40 +02:00
Fabio Manganiello ce882381c0 Fixes to torrent search + SASS library migration
- Support for custom PopcornTime API mirror/base URL.

- Full support for TV series search.

- Fixed torrent search (now using a different PopcornTime API mirror).

- Migrated SASS engine from `node-sass` (currently deprecated and broken on Node 16) to `sass`.

- Fixed alignment of Z-Wave UI header on Chrome/Webkit.
2021-05-06 23:18:47 +02:00
Fabio Manganiello 2a78f81a7b Major LINT fixes 2021-04-05 00:58:44 +02:00
Fabio Manganiello 2abfb2964c Merge branch 'master' into vuejs 2021-02-04 01:57:36 +01:00
Fabio Manganiello 2834ed2a7c Refactored and fixed many bugs on the media.omxplayer plugin 2021-02-04 01:44:21 +01:00
Fabio Manganiello 370a7d4c15 Added frontend support for Plex 2021-01-18 01:28:10 +01:00
Fabio Manganiello 711ea543bb Use youtube-dl to extract the video URL instead of streaming its content to a local sock file 2020-11-11 03:07:23 +01:00
Fabio Manganiello 9e6c40d393 media.gstreamer added to the list of compatible media plugins 2020-09-29 15:37:46 +02:00
Fabio Manganiello 907bc0f75b Added rtorrent integration [closes #120] 2020-09-03 13:08:42 +02:00
Fabio Manganiello adc94349c7 Missing commas 2020-07-04 00:31:24 +02:00
Fabio Manganiello b716b1a0c1 More robust URL query for YouTube 2020-07-04 00:25:49 +02:00
Fabio Manganiello 93ac6c8af9 Regex format fix 2020-07-04 00:18:45 +02:00
Fabio Manganiello 03dc524f80 Fixed response type 2020-07-04 00:15:44 +02:00
Fabio Manganiello c943acb9c2 Smarter logic for parsing YouTube URLs in Kodi 2020-07-04 00:12:16 +02:00
Fabio Manganiello a9dbda455f Support for default media player volume 2020-02-21 18:40:46 +01:00
Fabio Manganiello a0ceb560b4 Implemented alarm/timer plugin (closes #111) 2020-02-17 19:37:22 +01:00
Fabio Manganiello 8248b5353f Added status action to MediaPlugin interface 2020-02-17 18:12:40 +01:00
Fabio Manganiello 4c3140c9b5 Fixed docs 2020-01-09 23:40:59 +01:00
Fabio Manganiello 09991b2e8a Use a filesystem FIFO for YouTube media content instead of playing the *.googlevideo.com URL directly
Google Video URLs now return 403 if played directly. Let youtube-dl
handle the heavylifting and use a FIFO to stream the media
2019-09-30 18:06:30 +02:00
Fabio Manganiello fa9b816d06 Return the parsed raw YouTube URL only if available, otherwise the original URL 2019-08-04 17:36:06 +02:00
Fabio Manganiello dcb4a36959 Replaced os.environ['HOME'] with os.path.expanduser('~') (Windows compatibility)
Solves #74
2019-07-29 00:03:01 +02:00
Fabio Manganiello 277d6ec271 Added torrent support in new webplayer 2019-07-01 19:32:22 +02:00
Fabio Manganiello 70bba5fc96 Support for browser webplayer and subtitles in new webplugin 2019-06-26 11:05:16 +02:00
Fabio Manganiello e55735f409 Added YouTube support to new media webplugin 2019-06-25 22:46:25 +02:00
Fabio Manganiello 9305f86d0c New media webplugin WIP 2019-06-24 01:01:08 +02:00
Fabio Manganiello 4cd2e6949f New media webplugin WIP 2019-06-21 02:13:14 +02:00
Fabio Manganiello e5d7334662 New media webplugin WIP 2019-06-16 21:45:21 +02:00
Fabio Manganiello c4cd93a6da Added VLC plugin 2019-02-20 17:17:30 +01:00
Fabio Manganiello b5315032c3 Leverage youtube-dl standard media plugin instead of the mpv internal one 2019-02-19 13:40:18 +01:00
Fabio Manganiello de0b92f5ef Added mpv media plugin 2019-02-19 00:15:03 +01:00
Fabio Manganiello 9a565061c4 Refactoring of media.search in a more scalable way. Also faster search
with workers in parallel by media type
2019-02-18 00:26:46 +01:00
Fabio Manganiello b204d477ac Added LocalMediaSearcher class to index local files and provide faster results to media.search when the index is available 2019-02-17 02:37:23 +01:00
Fabio Manganiello 5cbd0fdfe7 Added support for VTT subtitles and subtitles toggling both in local and browser media players 2019-02-12 01:30:55 +01:00
Fabio Manganiello 34f0264d5e Subtitles support
- Added support for local and OpenSubtitles media subs
- Added management of media events in web panel
2019-02-11 00:55:20 +01:00