Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/OpenVoiceOS/ovos-plugin-vlc
https://github.com/OpenVoiceOS/ovos-plugin-vlc
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/OpenVoiceOS/ovos-plugin-vlc
- Owner: OpenVoiceOS
- License: apache-2.0
- Created: 2021-07-22T21:09:05.000Z (over 3 years ago)
- Default Branch: dev
- Last Pushed: 2024-05-20T04:38:13.000Z (7 months ago)
- Last Synced: 2024-05-20T06:07:34.182Z (7 months ago)
- Language: Python
- Size: 37.1 KB
- Stars: 0
- Watchers: 7
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ovos-plugins - ovos-vlc-plugin
README
# VLC OVOS Plugin
The VLC OVOS Plugin integrates VLC media player capabilities with the Open Voice OS (OVOS) ecosystem, providing an audio backend for playing various media formats.
## Features
- Supports playback of various audio formats.
- Provides basic playback controls: play, pause, stop, resume, seek forward, seek backward.
- Volume management with automatic volume adjustments.
- Integration with OVOS for media playback## Prerequisites
Ensure you have the following installed on your system:
- Python 3.6 or higher
- VLC media player
- Open Voice OS (OVOS) components## Configuration
The VLC OVOS Plugin configuration can be set in your `mycroft.conf`
```json
"Audio": {
"backends": {
"vlc": {
"type": "ovos_vlc",
"active": true,
"initial_volume": 100,
"low_volume": 50
}
}
}
```## Usage
The plugin integrates with OVOS to handle audio playback. It supports the following functions:
- **play(repeat=False):** Play the current track.
- **stop():** Stop playback.
- **pause():** Pause playback.
- **resume():** Resume paused playback.
- **lower_volume():** Lower the volume to a predefined level.
- **restore_volume():** Restore the volume to the original level.
- **track_info():** Get information about the current track.
- **get_track_length():** Get the duration of the current track in milliseconds.
- **get_track_position():** Get the current playback position in milliseconds.
- **set_track_position(milliseconds):** Set the playback position in milliseconds.
- **seek_forward(seconds=1):** Seek forward by a specified number of seconds.
- **seek_backward(seconds=1):** Seek backward by a specified number of seconds.## Troubleshooting
If you encounter any issues, ensure that:
- VLC is correctly installed and accessible.
- The plugin is installed.
- Your configuration file is correctly set up.
- If using containers ensure it is installed in `ovos-audio` containerFor further assistance, refer to the official documentation or contact the plugin maintainers.
Check the logs to see what is happening, if specific streams are not playing verify that they play directly in VLC
### Compiling VLC with OpenSSL
youtube streams often fail with errors of the sort
```
[0000758620007870] main tls client error: TLS session handshake timeout
[0000758620007870] main tls client error: connection error: Resource temporarily unavailable
[0000758620007870] gnutls tls client error: TLS handshake error: Error in the push function.
[0000758620007870] main tls client error: TLS session handshake error
[0000758620007870] main tls client error: connection error: Network is unreachable
[0000758620018c40] access stream error: HTTP connection failure
[000075862c1fdeb0] main input error: Your input can't be opened
[000075862c1fdeb0] main input error: VLC is unable to open the MRL 'https://rr1---sn-1vo-v2vd.googlevideo.com/videoplayback?expire=1721262938&ei=-g6YZvHXN7qAmLAP056tuA8&ip=89.154.90.167&id=o-AEGICI_2Jg9Bi7QkLBcrDER2x9Rq0LMgAmp61U3CZP7v&itag=251&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=uI&mm=31%2C29&mn=sn-1vo-v2vd%2Csn-ovn-apnr&ms=au%2Crdu&mv=m&mvi=1&pl=20&gcr=pt&initcwndbps=1716250&bui=AXc671K3ZtlNAWq5CxbQ_reBYNQZj1xGdH6Gub6fRTySbKLoF7aO7NaO8-iW7yq1xNjANifX1StFFjss&spc=NO7bAVN6YmAuJJ43yqpP5a-HRxHytZ4CnhqOAvQRSv2aVZoiGA2Z9jfjV34W&vprv=1&svpuc=1&mime=audio%2Fwebm&ns=pwlUtDGaUGLlDmo9yJuAleAQ&rqh=1&gir=yes&clen=4016064&dur=256.301&lmt=1714611400333089&mt=1721240936&fvip=1&keepalive=yes&c=WEB&sefc=1&txp=4532434&n=Qaf-nQMDrQNlkw&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cgcr%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AHlkHjAwRgIhANHYmGaXOZBMTCyaTSHguFusnsbtZtqwfgKZPmEpJF7XAiEAlE1d8hD-rlP5uaLzzYVYl7GmJcKujw9fnRlSHcYAq30%3D&sig=AJfQdSswRAIgIciAaSPRUUfi8qN6sd6plEkLD71864lIJlSDLxSv71YCIAcmMv2B5qRWB1cmIXrxEgxm47syThRyc-g3nuiDkcsz'. Check the log for details.
```recompiling VLC using OpenSSL instead of GnuTLS seems to help
in arch linux this required me to edit the PKGBUILD and make the necessary changes to disable GnuTLS and enable OpenSSL.
Find the configure section and replace:
```
--enable-gnutls
```
with:```
--disable-gnutls --enable-openssl
```