ينفذ عددًا صغيرًا من أوامر google chromecast. بخلاف الأوامر الأساسية، فإنه يسمح لك أيضًا بتشغيل ملفات الوسائط من جهاز الكمبيوتر الخاص بك إما بشكل فردي أو في قائمة التشغيل؛ سيبحث أمر playlist
في جميع الملفات الموجودة في المجلد ويقوم بتشغيلها مرتبة حسب العدد. كما يتيح لك تشغيل عرض شرائح للصور باستخدام أمر slideshow
.
يمكن تحميل ملف وسائط محلي أو ملف مستضاف على الإنترنت على جهاز Chromecast الخاص بك بالتنسيق التالي:
Supported Media formats:
- MP3
- AVI
- MKV
- MP4
- WebM
- FLAC
- WAV
إذا تم العثور على ملف فيديو غير معروف، فسيتم استخدام ffmpeg
لتحويله إلى MP4 وبثه إلى جهاز Chromecast.
نحن قادرون على تشغيل ملفات الوسائط المحلية عن طريق إنشاء خادم http الذي سيقوم بدفق ملف الوسائط إلى جهاز البث.
يتم استخدام البث المتعدد DNS لتحديد أجهزة Chromecast وGoogle Home.
يتم أيضًا تخزين إدخال DNS Cast مؤقتًا، وهذا يعني أنه إذا قمت بالمرور عبر اسم الجهاز، -n <name>
، أو uuid الجهاز، -u <uuid>
، فسيتم تخزين النتائج مؤقتًا وسيتم توصيلها بجهاز Chromecast على الفور .
https://github.com/vishen/go-chromecast/releases
tar -xzf go-chromecast.tar.gz
، ثم قم بالتثبيت باستخدام sudo install ./go-chromecast /usr/bin/
$ go install github.com/vishen/go-chromecast@latest
$ go get -u github.com/vishen/go-chromecast
Control your Google Chromecast or Google Home Mini from the
command line.
Usage:
go-chromecast [flags]
go-chromecast [command]
Available Commands:
help Help about any command
httpserver Start the HTTP server
load Load and play media on the chromecast
load-app Load and play content on a chromecast app
ls List devices
mute Mute the chromecast
next Play the next available media
pause Pause the currently playing media on the chromecast
playlist Load and play media on the chromecast
previous Play the previous available media
restart Restart the currently playing media
rewind Rewind by seconds the currently playing media
seek Seek by seconds into the currently playing media
seek-to Seek to the <timestamp_in_seconds> in the currently playing media
slideshow Play a slideshow of photos
status Current chromecast status
stop Stop casting
transcode Transcode and play media on the chromecast
tts text-to-speech
ui Run the UI
unmute Unmute the chromecast
unpause Unpause the currently playing media on the chromecast
volume Get or set volume
watch Watch all events sent from a chromecast device
Flags:
-a, --addr string Address of the chromecast device
-v, --debug debug logging
-d, --device string chromecast device, ie: 'Chromecast' or 'Google Home Mini'
-n, --device-name string chromecast device name
--disable-cache disable the cache
--dns-timeout int Multicast DNS timeout in seconds when searching for chromecast DNS entries (default 3)
--first Use first cast device found
-h, --help help for go-chromecast
-i, --iface string Network interface to use when looking for a local address to use for the http server or for use with multicast dns discovery
-p, --port string Port of the chromecast device if 'addr' is specified (default "8009")
-u, --uuid string chromecast device uuid
--verbose verbose logging
--version display command version
--with-ui run with a UI
Use "go-chromecast [command] --help" for more information about a command.
# View available cast devices.
$ go-chromecast ls
Found 2 cast devices
1) device="Chromecast" device_name="MarieGotGame?" address="192.168.0.115:8009" status="" uuid="b380c5847b3182e4fb2eb0d0e270bf16"
2) device="Google Home Mini" device_name="Living Room Speaker" address="192.168.0.52:8009" status="" uuid="b87d86bed423a6feb8b91a7d2778b55c"
# Status of a cast device.
$ go-chromecast status
Found 2 cast dns entries, select one:
1) device="Chromecast" device_name="MarieGotGame?" address="192.168.0.115:8009" status="" uuid="b380c5847b3182e4fb2eb0d0e270bf16"
2) device="Google Home Mini" device_name="Living Room Speaker" address="192.168.0.52:8009" status="" uuid="b87d86bed423a6feb8b91a7d2778b55c"
Enter selection: 1
Idle (Backdrop), volume=1.00 muted=false
# Specify a cast device name.
$ go-chromecast status -n "Living Room Speaker"
Idle, volume=0.17 muted=false
# Specify a cast device by ip address.
$ go-chromecast status -a 192.168.0.52
Idle, volume=0.17 muted=false
# Specify a cast device uuid.
$ go-chromecast status -u b87d86bed423a6feb8b91a7d2778b55c
Idle (Default Media Receiver), volume=0.17 muted=false
# Play a file hosted on the internet
$ go-chromecast load https://example.com/path/to/media.mp4
# Load a local media file (can play both audio and video).
$ go-chromecast load ~/Downloads/SampleAudio_0.4mb.mp3
Found 2 cast dns entries, select one:
1) device="Chromecast" device_name="MarieGotGame?" address="192.168.0.115:8009" status="" uuid="b380c5847b3182e4fb2eb0d0e270bf16"
2) device="Google Home Mini" device_name="Living Room Speaker" address="192.168.0.52:8009" status="" uuid="b87d86bed423a6feb8b91a7d2778b55c"
Enter selection: 2
# Status of cast device running an audio file.
$ go-chromecast status
Found 2 cast dns entries, select one:
1) device="Chromecast" device_name="MarieGotGame?" address="192.168.0.115:8009" status="" uuid="b380c5847b3182e4fb2eb0d0e270bf16"
2) device="Google Home Mini" device_name="Living Room Speaker" address="192.168.0.52:8009" status="Default Media Receiver" uuid="b87d86bed423a6feb8b91a7d2778b55c"
Enter selection: 2
Default Media Receiver (PLAYING), unknown, time remaining=8s/28s, volume=1.00, muted=false
# Play a playlist of media files.
$ go-chromecast playlist ~/playlist_test/ -n "Living Room Speaker"
Attemping to play the following media:
- /home/jonathan/playlist_test/SampleAudio_0.4mb.mp3
- /home/jonathan/playlist_test/sample_1.mp3
# Select where to start a playlist from.
$ go-chromecast playlist ~/playlist_test/ -n "Living Room Speaker" --select
Will play the following items, select where to start from:
1) /home/jonathan/playlist_test/SampleAudio_0.4mb.mp3: last played "2018-11-25 11:17:25 +0000 GMT"
2) /home/jonathan/playlist_test/sample_1.mp3: last played "2018-11-25 11:17:28 +0000 GMT"
Enter selection: 2
Attemping to play the following media:
- /home/jonathan/playlist_test/sample_1.mp3
# Start a playlist from the start, ignoring if you have previously played that playlist.
$ go-chromecast playlist ~/playlist_test/ -n "Living Room Speaker" --continue=false
# Start a playlist and launch the terminal ui
$ go-chromecast playlist ~/playlist_test/ -n "Living Room Speaker" --with-ui
# Start a slideshow of images
$ go-chromecast slideshow slideshow_images/*.png --repeat=false
# Pause the playing media.
$ go-chromecast pause
# Continue playing the currently playing media.
$ go-chromecast play
# Play the next item in a playlist.
$ go-chromecast next
# Play the previous item in a playlist.
$ go-chromecast previous
# Rewind the currently playing media by x seconds.
$ go-chromecast rewind 30
# Go forward in the currently playing media by x seconds.
$ go-chromecast seek 30
# Get the current volume level
$ go-chromecast volume
# Set the volume level
$ go-chromecast volume 0.55
# View what messages a cast device is sending out.
$ go-chromecast watch
# Use a terminal UI to interact with the cast device
$ go-chromecast ui
يتم توفير واجهة مستخدم طرفية أساسية تدعم عناصر التحكم التالية:
ويمكن تشغيله بالطرق التالية:
إذا كنت تريد فقط التحكم عن بعد في جهاز Chromecast الذي يقوم بالفعل بتشغيل شيء ما:
$ go-chromecast ui
استخدم واجهة المستخدم مع أمر playlist
(المفصل أعلاه):
$ go-chromecast --with-ui playlist /path/to/directory
استخدم واجهة المستخدم مع أمر load
(المفصل أعلاه):
$ go-chromecast --with-ui load /path/to/file.flac
يوجد خادم HTTP API مزود بواجهة برمجة التطبيقات التالية:
GET /devices?interface=<network_interface>&wait=<seconds>
POST /connect?uuid=<device_uuid>&addr=<device_addr>&port=<device_port>&interface=<network_interface>&wait=<seconds>
POST /disconnect?uuid=<device_uuid>&stop=<bool>
POST /disconnect-all?stop=<bool>
POST /status?uuid=<device_uuid>
POST /pause?uuid=<device_uuid>
POST /unpause?uuid=<device_uuid>
POST /mute?uuid=<device_uuid>
POST /unmute?uuid=<device_uuid>
POST /stop?uuid=<device_uuid>
GET /volume?uuid=<device_uuid>
POST /volume?uuid=<device_uuid>&volume=<float>
POST /rewind?uuid=<device_uuid>&seconds=<int>
POST /seek?uuid=<device_uuid>&seconds=<int>
POST /seek-to?uuid=<device_uuid>&seconds=<float>
POST /load?uuid=<device_uuid>&path=<filepath_or_url>&content_type=<string>
$ go-chromecast httpserver
Start the HTTP server which provides an HTTP
api to control chromecast devices on a network.
Usage:
go-chromecast httpserver [flags]
Flags:
-h, --help help for httpserver
--http-addr string addr for the http server to listen on (default "0.0.0.0")
--http-port string port for the http server to listen on (default "8011")
يوجد دعم لتشغيل عناصر الوسائط كقائمة تشغيل.
إذا كنت تلعب من قائمة تشغيل، فيمكنك تمرير علامة --select
، وسيسمح لك ذلك بتحديد الوسائط لبدء التشغيل منها. يعد هذا مفيدًا إذا كنت قد قمت بالفعل بتشغيل بعض الوسائط وتريد البدء من إحدى الوسائط التي لم تقم بتشغيلها بعد.
يتم الاحتفاظ بذاكرة تخزين مؤقت للوسائط التي تم تشغيلها، لذا إذا كنت تقوم بتشغيل الوسائط من قائمة التشغيل، فسوف تتحقق لمعرفة ملفات الوسائط التي قمت بتشغيلها مؤخرًا وتشغيل الملف التالي من قائمة التشغيل. يمكن تمرير --continue=false
وسيؤدي ذلك إلى بدء قائمة التشغيل من البداية.
إذا كنت ترغب في معرفة ما يرسله الجهاز، فيمكنك watch
رسائل البروتوبوف التي يتم إرسالها من جهازك:
$ go-chromecast watch
تمت إضافة دعم تجريبي لتحويل النص إلى كلام. يستخدم هذا تحويل النص إلى كلام من Google Cloud لتحويل النص إلى ملف صوتي mp3، ثم يتم بثه بعد ذلك إلى الجهاز.
يجب تمكين واجهة برمجة تطبيقات تحويل النص إلى كلام https://console.cloud.google.com/flows/enableapi?apiid=texttospeech.googleapis.com ويلزم توفر حساب خدمة Google https://console.cloud.google. com/apis/credentials/serviceaccountkey
$ go-chromecast tts <message_to_say> --google-service-account=/path/to/service/account.json
للغات غير الأمريكية
$ go-chromecast tts <message_to_say> --google-service-account=/path/to/service/account.json
--voice-name en-US-Wavenet-G --speaking-rate 1.05 --pitch 0.9
يمكن العثور على قائمة الأصوات المتاحة (اسم الصوت) هنا: https://cloud.google.com/text-to-speech/
استخدم اس اس ام ال
$ go-chromecast tts '<speak>Hello<break time="500ms"/>world.</speak>'
--google-service-account=/path/to/service/account.json
--ssml