%global _empty_manifest_terminate_build 0 Name: python-chromecast-mpris Version: 0.8.12 Release: 1 Summary: 📺 Control Chromecasts from Linux and D-Bus License: AGPL-3.0 URL: https://github.com/alexdelorenzo/chromecast_mpris Source0: https://mirrors.nju.edu.cn/pypi/web/packages/42/b2/506c08e20227b3c768f98721d95a03ccf2e29318f456bc144736d7962571/chromecast_mpris-0.8.12.tar.gz BuildArch: noarch Requires: python3-appdirs Requires: python3-click Requires: python3-PyChromecast Requires: python3-pydbus Requires: python3-PyGObject Requires: python3-mpris-server Requires: python3-cast-control %description # 📺 Control Chromecasts from Linux `chromecast_mpris` is [a daemon](https://en.wikipedia.org/wiki/Daemon_(computing)) utility that allows you to control media playback on casting devices from the Linux desktop. While this service runs, it gathers and publishes data about the media and apps playing on your casting devices. **Note**: This package is now called Cast Control, and is [available on PyPI as `cast_control`](https://pypi.org/project/cast-control/). Please upgrade to `cast_control` for new features and bug fixes. ### Integrations `chromecast_mpris` controls Chromecasts and casting devices via D-Bus and [MPRIS media player controls](https://specifications.freedesktop.org/mpris-spec/2.2/). MPRIS is the standard media player interface on Linux desktops. MPRIS integration is [enabled by default](https://github.com/KDE/plasma-workspace/tree/master/applets/mediacontroller) in Plasma Desktop, and, along with GNOME's volume control widget, [there are widgets for GNOME](https://extensions.gnome.org/extension/1379/mpris-indicator-button/), too. [`playerctl` provides a CLI](https://github.com/altdesktop/playerctl) for controlling media players through MPRIS. Check out [▶️mpris_server](https://github.com/alexdelorenzo/mpris_server) if you want to integrate MPRIS support into your media player. ## Screenshots Controlling a Chromecast via Plasma Desktop's Media Player widget: ## Features * [x] Control music and video playback * [x] Control app playback * [x] View playback information in real-time * [x] Display thumbnail and title * [x] Display playback position and media length * [x] Seek forward and backward * [x] Play, pause, and stop playback * [x] Volume up and down * [x] Play next and previous * [x] Quit casted app * [x] Open media from D-Bus * [x] Play YouTube videos * [ ] Playlist integration ## Installation ### Requirements - Linux / *BSD / [macOS](https://github.com/zbentley/dbus-osx-examples) - [D-Bus](https://www.freedesktop.org/wiki/Software/dbus/) - Python >= 3.6 - [PyGObject](https://pypi.org/project/PyGObject/) - `requirements.txt` #### Installing PyGObject On Debian-derived distributions like Ubuntu, install `python3-gi` with `apt`. On Arch, you'll want to install `python-gobject`, or install `chromecast_mpris` [directly from the AUR](https://aur.archlinux.org/packages/chromecast_mpris/). On macOS, install [`pygobject3`](https://formulae.brew.sh/formula/pygobject3) via `brew`. Use `pip` to install `PyGObject>=3.34.0` if there are no installation candidates available in your vendor's package repositories. ### PyPI ```bash $ python3 -m pip install chromecast_mpris ``` You'll get a `chromecast_mpris` executable added to your `$PATH`. ### GitHub Check out [the releases page on GitHub](https://github.com/alexdelorenzo/chromecast_mpris/releases) for stable releases. If you'd like to use the development branch, clone the repository. Once you have a source copy, run `python3 -m pip install -r requirements.txt`, followed by `python3 setup.py install`. You'll get a `chromecast_mpris` executable added to your `$PATH`. ### AUR If you're on Arch, you can install `chromecast_mpris` [directly from the AUR](https://aur.archlinux.org/packages/chromecast_mpris/). ```bash $ yay -S chromecast_mpris ``` ### Upgrades Stable releases are uploaded to PyPI. You can upgrade your `chromecast_mpris` installation like so: ```bash $ python3 -m pip --upgrade chromecast_mpris ``` See the [releases page](https://github.com/alexdelorenzo/chromecast_mpris/releases) on GitHub. ## Usage You'll need to make sure that your computer can make network connections with your casting devices. It also helps to know the names of the devices in advance. ### Launch Installing the package via PyPI, GitHub or the AUR will add `chromecast_mpris` to your `pip` executables path: ```bash $ which chromecast_mpris ~/.local/bin/chromecast_mpris ``` If you have your `pip` executables path added to your shell's `$PATH`, you can launch `chromecast_mpris` like so: ```bash $ chromecast_mpris ``` You can also launch `chromecast_mpris` via its Python module. This can be useful if your `$PATH` doesn't point to your `pip` executables. ```bash $ python3 -m chromecast_mpris ``` ### Help #### Shell completion To enable Bash completion for `chromecast_mpris`, add the following to your `~/.bashrc`: ```bash eval "$(_CHROMECAST_MPRIS_COMPLETE=bash_source chromecast_mpris)" ``` For the `zsh` and `fish` shells, check out [the documentation here](https://click.palletsprojects.com/en/8.0.x/shell-completion/#enabling-completion). #### Help command ```bash $ chromecast_mpris --help Usage: chromecast_mpris [OPTIONS] Control casting devices via Linux media controls and desktops. This daemon connects your casting device directly to the D-Bus media player interface. Options: -n, --name TEXT Connect to a device via its name, otherwise control the first device found. -h, --host TEXT Connect to a device via its hostname or IP address, otherwise control the first device found. -u, --uuid TEXT Connect to a device via its UUID, otherwise control the first device found -w, --wait FLOAT Seconds to wait between trying to make initial successful connections to a device. -r, --retry-wait FLOAT Seconds to wait between reconnection attempts if a successful connection is interrupted. [default: 5.0] -i, --icon Use a lighter icon instead of the dark icon. The lighter icon goes well with dark themes. [default: False] -l, --log-level TEXT Set the debugging log level. [default: WARN] --help Show this message and exit. ``` ### Connect to a device Connect to a device named "My Device" and run `chromecast_mpris` in the background. ```bash $ chromecast_mpris --name "My Device" & [1] 1234 ``` After launching `chromecast_mpris`, you can use any MPRIS client to interact with it. MPRIS support is built in directly to Plasma Desktop and GNOME 3, and you can use `playerctl` on the command-line. ### Retry until a Chromecast is found You can use the `-w/--wait` flag to specify a waiting period in seconds before `chromecast_mpris` will try to find a casting device again if one is not found initially. For example, if you want to wait 60 seconds between scans for devices, you can run the following: ```bash $ export SECONDS=60 $ chromecast_mpris --wait $SECONDS ``` This is useful if you'd like to start `chromecast_mpris` at login, and there is a chance that your device isn't on, or you're on a different network. ### Open a URI on a Chromecast Get the D-Bus name for your device using `playerctl`. ```bash $ playerctl --list-all My_Device ``` Use the D-Bus name to issue commands to it. ```bash $ export URL="http://ccmixter.org/content/gmz/gmz_-_Parametaphoriquement.mp3" $ playerctl --player My_Device open "$URL" ``` This will play a song on your device. ### Open a YouTube video You can cast YouTube videos the same way you can cast a generic URI. ```bash $ export VIDEO="https://www.youtube.com/watch?v=I4nkgJdVZFA" $ playerctl --player My_Device open "$VIDEO" ``` ## Support Want to support this project and [other open-source projects](https://github.com/alexdelorenzo) like it? Buy Me A Coffee ## License See `LICENSE`. Message me if you'd like to use this project with a different license. %package -n python3-chromecast-mpris Summary: 📺 Control Chromecasts from Linux and D-Bus Provides: python-chromecast-mpris BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-chromecast-mpris # 📺 Control Chromecasts from Linux `chromecast_mpris` is [a daemon](https://en.wikipedia.org/wiki/Daemon_(computing)) utility that allows you to control media playback on casting devices from the Linux desktop. While this service runs, it gathers and publishes data about the media and apps playing on your casting devices. **Note**: This package is now called Cast Control, and is [available on PyPI as `cast_control`](https://pypi.org/project/cast-control/). Please upgrade to `cast_control` for new features and bug fixes. ### Integrations `chromecast_mpris` controls Chromecasts and casting devices via D-Bus and [MPRIS media player controls](https://specifications.freedesktop.org/mpris-spec/2.2/). MPRIS is the standard media player interface on Linux desktops. MPRIS integration is [enabled by default](https://github.com/KDE/plasma-workspace/tree/master/applets/mediacontroller) in Plasma Desktop, and, along with GNOME's volume control widget, [there are widgets for GNOME](https://extensions.gnome.org/extension/1379/mpris-indicator-button/), too. [`playerctl` provides a CLI](https://github.com/altdesktop/playerctl) for controlling media players through MPRIS. Check out [▶️mpris_server](https://github.com/alexdelorenzo/mpris_server) if you want to integrate MPRIS support into your media player. ## Screenshots Controlling a Chromecast via Plasma Desktop's Media Player widget: ## Features * [x] Control music and video playback * [x] Control app playback * [x] View playback information in real-time * [x] Display thumbnail and title * [x] Display playback position and media length * [x] Seek forward and backward * [x] Play, pause, and stop playback * [x] Volume up and down * [x] Play next and previous * [x] Quit casted app * [x] Open media from D-Bus * [x] Play YouTube videos * [ ] Playlist integration ## Installation ### Requirements - Linux / *BSD / [macOS](https://github.com/zbentley/dbus-osx-examples) - [D-Bus](https://www.freedesktop.org/wiki/Software/dbus/) - Python >= 3.6 - [PyGObject](https://pypi.org/project/PyGObject/) - `requirements.txt` #### Installing PyGObject On Debian-derived distributions like Ubuntu, install `python3-gi` with `apt`. On Arch, you'll want to install `python-gobject`, or install `chromecast_mpris` [directly from the AUR](https://aur.archlinux.org/packages/chromecast_mpris/). On macOS, install [`pygobject3`](https://formulae.brew.sh/formula/pygobject3) via `brew`. Use `pip` to install `PyGObject>=3.34.0` if there are no installation candidates available in your vendor's package repositories. ### PyPI ```bash $ python3 -m pip install chromecast_mpris ``` You'll get a `chromecast_mpris` executable added to your `$PATH`. ### GitHub Check out [the releases page on GitHub](https://github.com/alexdelorenzo/chromecast_mpris/releases) for stable releases. If you'd like to use the development branch, clone the repository. Once you have a source copy, run `python3 -m pip install -r requirements.txt`, followed by `python3 setup.py install`. You'll get a `chromecast_mpris` executable added to your `$PATH`. ### AUR If you're on Arch, you can install `chromecast_mpris` [directly from the AUR](https://aur.archlinux.org/packages/chromecast_mpris/). ```bash $ yay -S chromecast_mpris ``` ### Upgrades Stable releases are uploaded to PyPI. You can upgrade your `chromecast_mpris` installation like so: ```bash $ python3 -m pip --upgrade chromecast_mpris ``` See the [releases page](https://github.com/alexdelorenzo/chromecast_mpris/releases) on GitHub. ## Usage You'll need to make sure that your computer can make network connections with your casting devices. It also helps to know the names of the devices in advance. ### Launch Installing the package via PyPI, GitHub or the AUR will add `chromecast_mpris` to your `pip` executables path: ```bash $ which chromecast_mpris ~/.local/bin/chromecast_mpris ``` If you have your `pip` executables path added to your shell's `$PATH`, you can launch `chromecast_mpris` like so: ```bash $ chromecast_mpris ``` You can also launch `chromecast_mpris` via its Python module. This can be useful if your `$PATH` doesn't point to your `pip` executables. ```bash $ python3 -m chromecast_mpris ``` ### Help #### Shell completion To enable Bash completion for `chromecast_mpris`, add the following to your `~/.bashrc`: ```bash eval "$(_CHROMECAST_MPRIS_COMPLETE=bash_source chromecast_mpris)" ``` For the `zsh` and `fish` shells, check out [the documentation here](https://click.palletsprojects.com/en/8.0.x/shell-completion/#enabling-completion). #### Help command ```bash $ chromecast_mpris --help Usage: chromecast_mpris [OPTIONS] Control casting devices via Linux media controls and desktops. This daemon connects your casting device directly to the D-Bus media player interface. Options: -n, --name TEXT Connect to a device via its name, otherwise control the first device found. -h, --host TEXT Connect to a device via its hostname or IP address, otherwise control the first device found. -u, --uuid TEXT Connect to a device via its UUID, otherwise control the first device found -w, --wait FLOAT Seconds to wait between trying to make initial successful connections to a device. -r, --retry-wait FLOAT Seconds to wait between reconnection attempts if a successful connection is interrupted. [default: 5.0] -i, --icon Use a lighter icon instead of the dark icon. The lighter icon goes well with dark themes. [default: False] -l, --log-level TEXT Set the debugging log level. [default: WARN] --help Show this message and exit. ``` ### Connect to a device Connect to a device named "My Device" and run `chromecast_mpris` in the background. ```bash $ chromecast_mpris --name "My Device" & [1] 1234 ``` After launching `chromecast_mpris`, you can use any MPRIS client to interact with it. MPRIS support is built in directly to Plasma Desktop and GNOME 3, and you can use `playerctl` on the command-line. ### Retry until a Chromecast is found You can use the `-w/--wait` flag to specify a waiting period in seconds before `chromecast_mpris` will try to find a casting device again if one is not found initially. For example, if you want to wait 60 seconds between scans for devices, you can run the following: ```bash $ export SECONDS=60 $ chromecast_mpris --wait $SECONDS ``` This is useful if you'd like to start `chromecast_mpris` at login, and there is a chance that your device isn't on, or you're on a different network. ### Open a URI on a Chromecast Get the D-Bus name for your device using `playerctl`. ```bash $ playerctl --list-all My_Device ``` Use the D-Bus name to issue commands to it. ```bash $ export URL="http://ccmixter.org/content/gmz/gmz_-_Parametaphoriquement.mp3" $ playerctl --player My_Device open "$URL" ``` This will play a song on your device. ### Open a YouTube video You can cast YouTube videos the same way you can cast a generic URI. ```bash $ export VIDEO="https://www.youtube.com/watch?v=I4nkgJdVZFA" $ playerctl --player My_Device open "$VIDEO" ``` ## Support Want to support this project and [other open-source projects](https://github.com/alexdelorenzo) like it? Buy Me A Coffee ## License See `LICENSE`. Message me if you'd like to use this project with a different license. %package help Summary: Development documents and examples for chromecast-mpris Provides: python3-chromecast-mpris-doc %description help # 📺 Control Chromecasts from Linux `chromecast_mpris` is [a daemon](https://en.wikipedia.org/wiki/Daemon_(computing)) utility that allows you to control media playback on casting devices from the Linux desktop. While this service runs, it gathers and publishes data about the media and apps playing on your casting devices. **Note**: This package is now called Cast Control, and is [available on PyPI as `cast_control`](https://pypi.org/project/cast-control/). Please upgrade to `cast_control` for new features and bug fixes. ### Integrations `chromecast_mpris` controls Chromecasts and casting devices via D-Bus and [MPRIS media player controls](https://specifications.freedesktop.org/mpris-spec/2.2/). MPRIS is the standard media player interface on Linux desktops. MPRIS integration is [enabled by default](https://github.com/KDE/plasma-workspace/tree/master/applets/mediacontroller) in Plasma Desktop, and, along with GNOME's volume control widget, [there are widgets for GNOME](https://extensions.gnome.org/extension/1379/mpris-indicator-button/), too. [`playerctl` provides a CLI](https://github.com/altdesktop/playerctl) for controlling media players through MPRIS. Check out [▶️mpris_server](https://github.com/alexdelorenzo/mpris_server) if you want to integrate MPRIS support into your media player. ## Screenshots Controlling a Chromecast via Plasma Desktop's Media Player widget: ## Features * [x] Control music and video playback * [x] Control app playback * [x] View playback information in real-time * [x] Display thumbnail and title * [x] Display playback position and media length * [x] Seek forward and backward * [x] Play, pause, and stop playback * [x] Volume up and down * [x] Play next and previous * [x] Quit casted app * [x] Open media from D-Bus * [x] Play YouTube videos * [ ] Playlist integration ## Installation ### Requirements - Linux / *BSD / [macOS](https://github.com/zbentley/dbus-osx-examples) - [D-Bus](https://www.freedesktop.org/wiki/Software/dbus/) - Python >= 3.6 - [PyGObject](https://pypi.org/project/PyGObject/) - `requirements.txt` #### Installing PyGObject On Debian-derived distributions like Ubuntu, install `python3-gi` with `apt`. On Arch, you'll want to install `python-gobject`, or install `chromecast_mpris` [directly from the AUR](https://aur.archlinux.org/packages/chromecast_mpris/). On macOS, install [`pygobject3`](https://formulae.brew.sh/formula/pygobject3) via `brew`. Use `pip` to install `PyGObject>=3.34.0` if there are no installation candidates available in your vendor's package repositories. ### PyPI ```bash $ python3 -m pip install chromecast_mpris ``` You'll get a `chromecast_mpris` executable added to your `$PATH`. ### GitHub Check out [the releases page on GitHub](https://github.com/alexdelorenzo/chromecast_mpris/releases) for stable releases. If you'd like to use the development branch, clone the repository. Once you have a source copy, run `python3 -m pip install -r requirements.txt`, followed by `python3 setup.py install`. You'll get a `chromecast_mpris` executable added to your `$PATH`. ### AUR If you're on Arch, you can install `chromecast_mpris` [directly from the AUR](https://aur.archlinux.org/packages/chromecast_mpris/). ```bash $ yay -S chromecast_mpris ``` ### Upgrades Stable releases are uploaded to PyPI. You can upgrade your `chromecast_mpris` installation like so: ```bash $ python3 -m pip --upgrade chromecast_mpris ``` See the [releases page](https://github.com/alexdelorenzo/chromecast_mpris/releases) on GitHub. ## Usage You'll need to make sure that your computer can make network connections with your casting devices. It also helps to know the names of the devices in advance. ### Launch Installing the package via PyPI, GitHub or the AUR will add `chromecast_mpris` to your `pip` executables path: ```bash $ which chromecast_mpris ~/.local/bin/chromecast_mpris ``` If you have your `pip` executables path added to your shell's `$PATH`, you can launch `chromecast_mpris` like so: ```bash $ chromecast_mpris ``` You can also launch `chromecast_mpris` via its Python module. This can be useful if your `$PATH` doesn't point to your `pip` executables. ```bash $ python3 -m chromecast_mpris ``` ### Help #### Shell completion To enable Bash completion for `chromecast_mpris`, add the following to your `~/.bashrc`: ```bash eval "$(_CHROMECAST_MPRIS_COMPLETE=bash_source chromecast_mpris)" ``` For the `zsh` and `fish` shells, check out [the documentation here](https://click.palletsprojects.com/en/8.0.x/shell-completion/#enabling-completion). #### Help command ```bash $ chromecast_mpris --help Usage: chromecast_mpris [OPTIONS] Control casting devices via Linux media controls and desktops. This daemon connects your casting device directly to the D-Bus media player interface. Options: -n, --name TEXT Connect to a device via its name, otherwise control the first device found. -h, --host TEXT Connect to a device via its hostname or IP address, otherwise control the first device found. -u, --uuid TEXT Connect to a device via its UUID, otherwise control the first device found -w, --wait FLOAT Seconds to wait between trying to make initial successful connections to a device. -r, --retry-wait FLOAT Seconds to wait between reconnection attempts if a successful connection is interrupted. [default: 5.0] -i, --icon Use a lighter icon instead of the dark icon. The lighter icon goes well with dark themes. [default: False] -l, --log-level TEXT Set the debugging log level. [default: WARN] --help Show this message and exit. ``` ### Connect to a device Connect to a device named "My Device" and run `chromecast_mpris` in the background. ```bash $ chromecast_mpris --name "My Device" & [1] 1234 ``` After launching `chromecast_mpris`, you can use any MPRIS client to interact with it. MPRIS support is built in directly to Plasma Desktop and GNOME 3, and you can use `playerctl` on the command-line. ### Retry until a Chromecast is found You can use the `-w/--wait` flag to specify a waiting period in seconds before `chromecast_mpris` will try to find a casting device again if one is not found initially. For example, if you want to wait 60 seconds between scans for devices, you can run the following: ```bash $ export SECONDS=60 $ chromecast_mpris --wait $SECONDS ``` This is useful if you'd like to start `chromecast_mpris` at login, and there is a chance that your device isn't on, or you're on a different network. ### Open a URI on a Chromecast Get the D-Bus name for your device using `playerctl`. ```bash $ playerctl --list-all My_Device ``` Use the D-Bus name to issue commands to it. ```bash $ export URL="http://ccmixter.org/content/gmz/gmz_-_Parametaphoriquement.mp3" $ playerctl --player My_Device open "$URL" ``` This will play a song on your device. ### Open a YouTube video You can cast YouTube videos the same way you can cast a generic URI. ```bash $ export VIDEO="https://www.youtube.com/watch?v=I4nkgJdVZFA" $ playerctl --player My_Device open "$VIDEO" ``` ## Support Want to support this project and [other open-source projects](https://github.com/alexdelorenzo) like it? Buy Me A Coffee ## License See `LICENSE`. Message me if you'd like to use this project with a different license. %prep %autosetup -n chromecast-mpris-0.8.12 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-chromecast-mpris -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Mon May 15 2023 Python_Bot - 0.8.12-1 - Package Spec generated