Commit graph

178 commits

Author SHA1 Message Date
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
70fe2459de _event_callbacks is a protected attribute of mpv.MPV 2020-02-21 18:29:40 +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
f378fa8832 MPV.Event.IDLE should also be treated as a player stop event 2019-12-07 17:16:48 +01:00
Fabio Manganiello
d38746d278 Moved imports for extra dependencies inside the methods where they are actually used 2019-12-01 23:35:05 +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
e9c7104242 Keep track of the newly inserted token records in media.local.search, or we can experience UniqueConstraint violations upon session commit because of duplicate records 2019-09-02 23:05:16 +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
aebeadbcf7 args can be either a list or a tuple - treat accordingly 2019-08-04 17:17:09 +02:00
Fabio Manganiello
3a5a731bd2 pause and then play omxplayer in the play handler to make sure that all the proper events are generated upon play 2019-08-04 16:50:38 +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
0ab70cdbae Kodi Application.SetVolume() expects an integer or a string, not a float 2019-07-25 23:54:32 +02:00
Fabio Manganiello
9c4646bed5 Fixed documentation and added missing docs to the index 2019-07-16 20:28:00 +02:00
Fabio Manganiello
55cd937a51 Made OMXPlayer plugin more resiliant in the case where the player has already terminated 2019-07-13 22:12:56 +02:00
Fabio Manganiello
654c61ec51 Standardized omxplayer returned attributes and volume management 2019-07-12 20:12:59 +02:00
Fabio Manganiello
277d6ec271 Added torrent support in new webplayer 2019-07-01 19:32:22 +02:00
Fabio Manganiello
c78789e644 Added Kodi support to new media webplayer 2019-06-29 00:06:03 +02:00
Fabio Manganiello
f86eeef549 New media webplugin WIP 2019-06-27 23:52:40 +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
cf23e2fc72 Support for subtitles in new media webplugin - WIP 2019-06-25 00:48:00 +02:00
Fabio Manganiello
17de2a194c Removed comment 2019-06-24 01:04:52 +02:00
Fabio Manganiello
9305f86d0c New media webplugin WIP 2019-06-24 01:01:08 +02:00
Fabio Manganiello
ba800ef8e2 Normalized all local players so that they handle events and return statuses in the same format 2019-06-23 02:16:20 +02:00
Fabio Manganiello
482f6f0765 New media webplugin WIP 2019-06-22 00:15:32 +02:00
Fabio Manganiello
4cd2e6949f New media webplugin WIP 2019-06-21 02:13:14 +02:00
Fabio Manganiello
ecd41a1f41 New media webplugin WIP 2019-06-18 18:14:48 +02:00
Fabio Manganiello
e5d7334662 New media webplugin WIP 2019-06-16 21:45:21 +02:00
Fabio Manganiello
749436c452 Clean up running VLC instance on stop and new media play 2019-02-21 19:24:47 +01:00
Fabio Manganiello
6222747730 typo 2019-02-21 01:49:43 +01:00
Fabio Manganiello
8b08f146a0 Typo on method name 2019-02-21 01:34:09 +01:00
Fabio Manganiello
f9765b4fed Support for extra arguments passed to VLC 2019-02-21 01:28:51 +01:00
Fabio Manganiello
9e7f84644b Support for default fullscreen and default volume in VLC 2019-02-21 00:09:02 +01: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
185aff6be3 Fixed support for subtitles in torrent files and better synchronization between mpv and torrent 2019-02-19 13:13:17 +01:00
Fabio Manganiello
377c963994 Better to react only on mpv shutdown not end_of_file 2019-02-19 11:12:57 +01:00
Fabio Manganiello
dcec3329d4 Trying to fix nasty race condition SHUTDOWN->START_FILE that triggers a spurious MediaStopEvent 2019-02-19 11:09:22 +01:00
Fabio Manganiello
10fa7c1ab1 Trying to fix nasty race condition SHUTDOWN->START_FILE that triggers a spurious MediaStopEvent 2019-02-19 11:08:57 +01:00
Fabio Manganiello
47b92480ff Trying to fix nasty race condition SHUTDOWN->START_FILE that triggers a spurious MediaStopEvent 2019-02-19 11:06:02 +01:00
Fabio Manganiello
c0513cade9 Handle quick playback 'rebounces' in mpv 2019-02-19 10:56:05 +01:00
Fabio Manganiello
0336427386 mpv received events logged on info instead of debug 2019-02-19 10:47:10 +01:00
Fabio Manganiello
bcb60ed218 Minimum torrent download size before streaming: 10->15 MB 2019-02-19 10:42:51 +01:00
Fabio Manganiello
bc81f9bed6 Only propagate MediaStopEvent on mpv shutdown, not end-of-file 2019-02-19 10:41:40 +01:00
Fabio Manganiello
f71e534860 Added mpv to the supported media plugins on media.webtorrent 2019-02-19 10:31:17 +01:00
Fabio Manganiello
88600dab90 typo 2019-02-19 01:09:53 +01:00
Fabio Manganiello
8f8b28912c typo 2019-02-19 01:02:07 +01:00
Fabio Manganiello
376dda616b Propagate environment variables if set to mpv player before playing 2019-02-19 00:58:26 +01:00
Fabio Manganiello
8a6be8b540 Use synchronize_session=fetch when synchronizing records on deletion 2019-02-19 00:32:54 +01:00
Fabio Manganiello
de0b92f5ef Added mpv media plugin 2019-02-19 00:15:03 +01:00
Fabio Manganiello
a549627516 Added draft for media.mpv plugin 2019-02-18 01:17:21 +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
c7f0783615 Unique constraint on MediaFile.path 2019-02-17 17:17:20 +01:00
Fabio Manganiello
497d7770c6 Better way to group by media path 2019-02-17 17:16:25 +01:00
Fabio Manganiello
d03d69e6c0 Forgot an equal sign 2019-02-17 16:31:04 +01:00
Fabio Manganiello
2213455eff Fixed setup.py error on filter use as a keyword 2019-02-17 16:30:43 +01:00
Fabio Manganiello
4076cd3518 Sync removed directories in the media index 2019-02-17 16:04: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
8227427834 webtorrent timeout 20 -> 120 seconds 2019-02-13 09:46:51 +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
Fabio Manganiello
b3f2974c4c Support for streaming media to browser 2019-02-08 00:43:43 +01:00
Fabio Manganiello
9ec3365413 Support for media streaming over internal HTTP server
Dropped the additional node.js dependency of localstream and relied
instead on a built-in solution to stream files
2019-02-07 14:27:14 +01:00
Fabio Manganiello
affaee6ab7 Forgot to override the default port when specified in media.start_streaming 2019-02-06 17:49:20 +01:00
Fabio Manganiello
86dc7f240a typo 2019-02-06 15:15:10 +01:00
Fabio Manganiello
880a394d74 Synchronize with the streaming process to make sure that we start playing only when the streaming service is ready 2019-02-06 15:12:55 +01:00
Fabio Manganiello
10e45123c4 Fixed localstream executable 2019-02-06 13:17:03 +01:00
Fabio Manganiello
687e9e32f9 Forgot an import os line 2019-02-06 11:55:21 +01:00
Fabio Manganiello
6713ce0f03 Implemented support for casting local media through the localstream script 2019-02-06 11:51:44 +01:00
Fabio Manganiello
d15b21ddfa Added support for remote cast on the web media panel 2019-02-06 09:47:00 +01:00
Fabio Manganiello
8a75979f72 Expose output_dir and media_file on TorrentCompletedDownloadEvent 2019-02-05 17:18:55 +01:00
Fabio Manganiello
f4dd4e0eb5 typo 2019-02-05 17:09:40 +01:00
Fabio Manganiello
8c8e913242 Don't pass duplicate arguments from download to play 2019-02-05 16:34:48 +01:00
Fabio Manganiello
ba48e52fb1 Update self.chromecasts on each get_chromecasts() call 2019-01-20 15:16:16 +01:00
Fabio Manganiello
3c0ed443a2 Support for download-only option in webtorrent plugin 2019-01-20 15:10:14 +01:00
Fabio Manganiello
96ee21dc0e More consistent naming for Kodi and Chromecast media methods 2019-02-05 11:02:31 +01:00
Fabio Manganiello
e2dbdcd66a Parsing the right state attributes out of the Chromecast status 2019-02-05 10:02:27 +01:00
Fabio Manganiello
9add8890cd Support for complete Chromecasts status 2019-02-05 09:49:50 +01:00
Fabio Manganiello
dc2a686d23 Support for casting torrents to Chromecast 2019-02-05 02:30:20 +01:00
Fabio Manganiello
3798414f22 Wait for the media file to be ready before failing 2019-02-05 00:52:14 +01:00
Fabio Manganiello
52d0ba442b Refactored webtorrent plugin and synchronization with the player
The WebTorrent plugin now uses the `download -o <download_dir> -p <port>` options.
Improved interaction both with the webtorrent executable and the player
executable, and triggering the right events upon state changes, as well
as free support for torrent streaming through the webtorrent executable.
2019-02-05 00:15:36 +01:00
Fabio Manganiello
9506813dc2 Only propagate a MediaStopEvent when the awaited player actually stops 2019-02-04 09:27:12 +01:00
Fabio Manganiello
05abc86b90 Handling webtorrent instance stop from mplayer interface 2019-02-04 01:55:14 +01:00
Fabio Manganiello
286eb431f0 Refactored torrent module 2019-02-04 01:01:39 +01:00
Fabio Manganiello
a4f80d4622 Added media.webtorrent plugin 2019-02-03 17:43:30 +01:00
Fabio Manganiello
4b7730d4cf Added status method to mplayer plugin 2019-02-02 17:55:29 +01:00
Fabio Manganiello
9ebb265458 Only copy the environment to the mplayer executable if it's set, and don't copy the whole environment from platypush 2019-02-02 17:32:56 +01:00
Fabio Manganiello
c18650c964 quit method implemented as part of the media interface 2019-02-02 17:12:22 +01:00
Fabio Manganiello
ed4b7e1da9 mplayer step_property volume doesn't really work as intended 2019-02-02 16:36:47 +01:00
Fabio Manganiello
3a5d7c7cba MPlayer has a quite weird way of handling the volume 2019-02-02 16:28:55 +01:00
Fabio Manganiello
535c4bbc17 Added set_volume action to mplayer plugin 2019-02-02 16:11:31 +01:00
Fabio Manganiello
d0a288b423 Don't start the mplayer pipe with shell=True 2019-02-02 16:06:56 +01:00
Fabio Manganiello
7068530eb0 Strip the file:// part out of the resource name 2019-02-02 15:58:18 +01:00
Fabio Manganiello
36725f7136 typo 2019-02-02 15:54:44 +01:00
Fabio Manganiello
1713c0c940 Propagate enviornment variables to the player executable 2019-02-02 15:51:12 +01:00
Fabio Manganiello
63b423cf75 Refactored mplayer and omxplayer under the same media player 2019-02-02 00:06:28 +01:00