Metadata-Version: 2.4
Name: ovos-media
Version: 0.0.2a3
Summary: ovos-media — OCP-native audio/video/web media service for OpenVoiceOS
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/OpenVoiceOS/ovos-media
Project-URL: Repository, https://github.com/OpenVoiceOS/ovos-media
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: LICENSE.md
Requires-Dist: ovos-utils>=0.1.0a13,~=0.0
Requires-Dist: ovos-bus-client>=1.3.7,~=1.3
Requires-Dist: ovos-config>=2.1.1,~=2.1
Requires-Dist: ovos-plugin-manager>=2.1,~=2.1
Requires-Dist: ovos-workshop>=0.0.15
Requires-Dist: ovos-gui-api-client>=0.0.2a1
Requires-Dist: json-database>=0.9.0
Requires-Dist: dbus_next
Provides-Extra: extras
Requires-Dist: ovos-ocp-youtube-plugin; extra == "extras"
Requires-Dist: ovos-ocp-m3u-plugin; extra == "extras"
Requires-Dist: ovos-ocp-rss-plugin; extra == "extras"
Requires-Dist: ovos-ocp-files-plugin; extra == "extras"
Requires-Dist: ovos-ocp-news-plugin; extra == "extras"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: ovoscope; extra == "test"
Dynamic: license-file

# OVOS media service

Media playback service for OpenVoiceOS

Documentation:
- [Media Service](https://openvoiceos.github.io/ovos-technical-manual/OCP/)
- [OCP Skills](https://openvoiceos.github.io/ovos-technical-manual/OCP_skills/)
- [OCP Pipeline](https://openvoiceos.github.io/ovos-technical-manual/OCP_pipeline/)

## Install

`pip install ovos-media` to install this package and the default plugins.

In order to use ovos-media you need to enable the OCP pipeline in ovos-core and to disable the old audio service 

disabling old OCP
```json
{
  "enable_old_audioservice": false
}
```

See additional details in documentation linked above

## Configuration

under mycroft.conf

```javascript
{
  // Configure ovos-media service
  // similarly to wakewords, configure any number of playback handlers
  // playback handlers might be local applications or even remote devices
  "media": {

    // enable MPRIS integration
    "enable_mpris": false,
    // have MPRIS control external players
    "manage_external_players": false,
    
    // order of preference to try playback handlers
    // if unavailable or unable to handle a uri, the next in list is used
    // NB: users may request specific handlers in the utterance

    // keys are the strings defined in "audio_players"
    "preferred_audio_services": ["gui", "vlc", "mplayer", "cli"],

    // keys are the strings defined in "web_players"
    "preferred_web_services": ["gui", "browser"],

    // keys are the strings defined in "video_players"
    "preferred_video_services": ["gui", "vlc"],

    // PlaybackType.AUDIO handlers
    "audio_players": {
        // vlc player uses a headless vlc instance to handle uris
        "vlc": {
            // the plugin name
            "module": "ovos-media-audio-plugin-vlc",

            // friendly names a user may use to refer to this playback handler
            // those will be parsed by OCP and used to initiate
            // playback in the request playback handler
            "aliases": ["VLC"],

            // deactivate a plugin by setting to false
            "active": true
        },
        // command line player uses configurable shell commands with file uris as arguments
        "cli": {
            // the plugin name
            "module": "ovos-media-audio-plugin-cli",

            // friendly names a user may use to refer to this playback handler
            // those will be parsed by OCP and used to initiate
            // playback in the request playback handler
            "aliases": ["Command Line"],

            // deactivate a plugin by setting to false
            "active": true
        },
        // gui uses mycroft-gui natively to handle uris
        "gui": {
            // the plugin name
            "module": "ovos-media-audio-plugin-gui",

            // friendly names a user may use to refer to this playback handler
            // those will be parsed by OCP and used to initiate
            // playback in the request playback handler
            "aliases": ["GUI", "Graphical User Interface"],

            // deactivate a plugin by setting to false
            "active": true
        }
    },

    // PlaybackType.VIDEO handlers
    "video_players": {
        // vlc player uses a headless vlc instance to handle uris
        "vlc": {
            // the plugin name
            "module": "ovos-media-video-plugin-vlc",

            // friendly names a user may use to refer to this playback handler
            // those will be parsed by OCP and used to initiate
            // playback in the request playback handler
            "aliases": ["VLC"],

            // deactivate a plugin by setting to false
            "active": true
        },
        // gui uses mycroft-gui natively to handle uris
        "gui": {
            // the plugin name
            "module": "ovos-media-video-plugin-gui",

            // friendly names a user may use to refer to this playback handler
            // those will be parsed by OCP and used to initiate
            // playback in the request playback handler
            "aliases": ["GUI", "Graphical User Interface"],

            // deactivate a plugin by setting to false
            "active": true
        }
    },

    // PlaybackType.WEBVIEW handlers
    "web_players": {
        // open url in the native browser
        "browser": {
            // the plugin name
            "module": "ovos-media-web-plugin-browser",

            // friendly names a user may use to refer to this playback handler
            // those will be parsed by OCP and used to initiate
            // playback in the request playback handler
            "aliases": ["Browser", "Local Browser", "Default Browser"],

            // deactivate a plugin by setting to false
            "active": true
        },
        // gui uses mycroft-gui natively to handle uris
        "gui": {
            // the plugin name
            "module": "ovos-media-web-plugin-gui",

            // friendly names a user may use to refer to this playback handler
            // those will be parsed by OCP and used to initiate
            // playback in the request playback handler
            "aliases": ["GUI", "Graphical User Interface"],

            // deactivate a plugin by setting to false
            "active": true
        }
    }
  }
}
```


## Credits

The original [OCP dataset](https://github.com/NeonGeckoCom/OCP-dataset) used to train the classifiers was sponsored by [@NeonGeckoCom](https://github.com/NeonGeckoCom/) as part of [The OCP Sprint](https://github.com/OpenVoiceOS/ovos-ocp-audio-plugin/issues/74). More recent training datasets are maintained by [@TigreGotico](https://github.com/TigreGotico).
