media.vlc

class platypush.plugins.media.vlc.MediaVlcPlugin(args=None, fullscreen=False, volume=100, *argv, **kwargs)[source]

Plugin to control vlc instances

Requires:

  • python-vlc (pip install python-vlc)

  • vlc executable on your system

__init__(args=None, fullscreen=False, volume=100, *argv, **kwargs)[source]

Create the vlc wrapper.

Parameters
  • args (list[str]) – List of extra arguments to pass to the VLC executable (e.g. ['--sub-language=en', '--snapshot-path=/mnt/snapshots'])

  • fullscreen (bool) – Set to True if you want media files to be opened in fullscreen by default (can be overridden by .play()) (default: False)

  • volume (int) – Default media volume (default: 100)

back(offset=30.0)[source]

Back by (default: 30) seconds

download(url, filename=None, directory=None)

Download a media URL

Parameters
  • url – Media URL

  • filename – Media filename (default: URL filename)

  • directory – Destination directory (default: download_dir)

Returns

The absolute path to the downloaded file

forward(offset=30.0)[source]

Forward by (default: 30) seconds

get_media_file_duration(filename)

Get the duration of a media file in seconds. Requires ffmpeg

is_playing()[source]
Returns

True if it’s playing, False otherwise

load(resource, **args)[source]

Load/queue a resource/video to the player

mute()[source]

Toggle mute state

next()

Play the next item in the queue

pause()[source]

Toggle the paused state

play(resource=None, subtitles=None, fullscreen=None, volume=None)[source]

Play a resource.

Parameters
  • resource (str) – Resource to play - can be a local file or a remote URL (default: None == toggle play).

  • subtitles (str) – Path to optional subtitle file

  • fullscreen (bool) – Set to explicitly enable/disable fullscreen (default: fullscreen configured value or False)

  • volume – Set to explicitly set the playback volume (default: volume configured value or 100)

quit()[source]

Quit the player (same as stop)

remove_subtitles()[source]

Removes (hides) the subtitles

search(query, types=None, queue_results=False, autoplay=False, search_timeout=60)

Perform a video search.

Parameters
  • query (str) – Query string, video name or partial name

  • types (list) – Video types to search (default: ["youtube", "file", "torrent"])

  • queue_results (bool) – Append the results to the current playing queue (default: False)

  • autoplay (bool) – Play the first result of the search (default: False)

  • search_timeout (float) – Search timeout (default: 60 seconds)

seek(position)[source]

Seek backward/forward by the specified number of seconds

Parameters

position (int) – Number of seconds relative to the current cursor

set_fullscreen(fullscreen=True)[source]

Set fullscreen mode

set_position(position)[source]

Seek backward/forward to the specified absolute position (same as seek)

set_subtitles(filename, **args)[source]

Sets media subtitles from filename

set_volume(volume)[source]

Set the volume

Parameters

volume (float) – Volume value between 0 and 100

start_streaming(media, subtitles=None, download=False)

Starts streaming local media over the specified HTTP port. The stream will be available to HTTP clients on http://{this-ip}:{http_backend_port}/media/<media_id>

Parameters
  • media (str) – Media to stream

  • subtitles (str) – Path or URL to the subtitles track to be used

  • download (bool) – Set to True if you prefer to download the file from the streaming link instead of streaming it

Returns

dict containing the streaming URL.Example:

{
    "id": "0123456abcdef.mp4",
    "source": "file:///mnt/media/movies/movie.mp4",
    "mime_type": "video/mp4",
    "url": "http://192.168.1.2:8008/media/0123456abcdef.mp4"
}
status()[source]

Get the current player state.

Returns

A dictionary containing the current state.

Example:

output = {
    "filename": "filename or stream URL",
    "state": "play"  # or "stop" or "pause"
}
stop()[source]

Stop the application (same as quit)

toggle_fullscreen()[source]

Toggle the fullscreen mode

toggle_subtitles(visibile=None)[source]

Toggle the subtitles visibility

voldown(step=10.0)[source]

Volume down by (default: 10)%

volup(step=10.0)[source]

Volume up by (default: 10)%