Crates.io | chromecast |
lib.rs | chromecast |
version | 0.18.2 |
source | src |
created_at | 2023-02-17 14:49:30.846952 |
updated_at | 2023-03-30 19:55:02.666225 |
description | Library that allows you to communicate with Google Cast enabled devices (e.g. Chromecast). |
homepage | https://github.com/azasypkin/rust-cast |
repository | https://github.com/tsirysndr/rust-cast |
max_upload_size | |
id | 787616 |
size | 195,932 |
Proto files are taken from Chromium Open Screen GitHub mirror.
By default cargo build
won't try to generate Rust code from the files located at protobuf/*
, if you want to do that
use GENERATE_PROTO
environment variable during build and make sure you have protoc
binary in $PATH
:
$ GENERATE_PROTO=true cargo build
First, you need to figure out the address of the device to connect to. For example, you can use avahi
with the following command:
$ avahi-browse -a --resolve
// Get some info about the Google Cast enabled device (e.g. Chromecast).
$ cargo run --example rust_caster -- -a 192.168.0.100 -i
Number of apps run: 1
App#0: Default Media Receiver (CC1AD845)
Volume level: 1
Muted: false
// Run specific app on the Chromecast.
$ cargo run --example rust_caster -- -a 192.168.0.100 -r youtube
// Stop specific active app.
$ cargo run --example rust_caster -- -a 192.168.0.100 -s youtube
// Stop currently active app.
$ cargo run --example rust_caster -- -a 192.168.0.100 --stop-current
The following app has been stopped: Default Media Receiver (CC1AD845)
// Stream a video.
$ cargo run --example rust_caster -- -a 192.168.0.100 -m http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
// Stream a video of specific format with buffering.
$ cargo run --example rust_caster -- -a 192.168.0.100 -m http://xxx.webm --media-type video/webm --media-stream-type buffered
// Stream video from YouTube (doesn't work with the latest YouTube app, fix is welcome).
$ cargo run --example rust_caster -- -a 192.168.0.100 -m 7LcUOEP7Brc --media-app youtube
// Display an image.
$ cargo run --example rust_caster -- -a 192.168.0.100 -m https://azasypkin.github.io/style-my-image/images/mozilla.jpg
// Change volume level.
$ cargo run --example rust_caster -- -a 192.168.0.100 --media-volume 0.5
// Mute/unmute media.
$ cargo run --example rust_caster -- -a 192.168.0.100 --media-mute [--media-unmute]
// Pause media.
$ cargo run --example rust_caster -- -a 192.168.0.100 --media-app youtube --media-pause
// Resume/play media.
$ cargo run --example rust_caster -- -a 192.168.0.100 --media-app youtube --media-play
// Seek media.
$ cargo run --example rust_caster -- -a 192.168.0.100 --media-app youtube --media-seek 100
For all possible values of --media-type
see Supported Media for Google Cast.
md
- Model Name (e.g. "Chromecast");id
- UUID without hyphens of the particular device (e.g. xx12x3x456xx789xx01xx234x56789x0);fn
- Friendly Name of the device (e.g. "Living Room");rs
- Unknown (recent share???) (e.g. "Youtube TV");bs
- Uknonwn (e.g. "XX1XXX2X3456");st
- Unknown (e.g. "1");ca
- Unknown (e.g. "1234");ic
- Icon path (e.g. "/setup/icon.png");ve
- Version (e.g. "04").Chromecast
- Regular chromecast, supports video/audio;Chromecast Audio
- Chromecast Audio device, supports only audio.