Je n'ai pas eu de chance avec la réponse de @Jozef, parce que je n'ai pu trouver que des versions Linux de Chromium, pas de Chrome, et Chromium semble ne jamais avoir implémenté chrome://cast
.
Cependant, j'ai trouvé de la documentation sur l'API du Chromecast à l'adresse suivante https://rithvikvibhu.github.io/GHLocalApi/ et j'ai noté que si vous effectuez la configuration initiale, aucune authentification n'est nécessaire. Vous trouverez également des informations utiles à l'adresse https://github.com/rithvikvibhu/GHLocalApi/issues/68#issue-766300901 sur la façon dont vous devez chiffrer le mot de passe WiFi avec une clé publique de l'appareil avant de le soumettre.
J'ai donc créé un script en Bash, que j'ai publié à l'adresse suivante https://gist.github.com/interfect/5f68381d55658d334e2bc4619d796476 qui peut effectuer la configuration initiale du Chromecast et le connecter au WiFi sans Google Home ou un appareil Android ou iOS. Tout ce dont vous avez besoin est un environnement Linux ou (probablement) Mac, ou (probablement) WSL sous Windows.
Pour l'utiliser, vous devez placer votre ordinateur sur le même réseau que le Chromecast, soit avec un adaptateur Ethernet pour le Chromecast (ce que j'ai testé), soit en trouvant et en rejoignant son hotspot de configuration (ce que je n'ai pas testé).
Si vous êtes un grand fan de la curl | bash
école d'administration système, vous pouvez :
wget https://gist.githubusercontent.com/interfect/5f68381d55658d334e2bc4619d796476/raw/1d16ead908a92742d5f22231a2611242d673654f/castanet.sh
chmod +x castanet.sh
CHROMECAST_IP=192.168.0.100 WIFI_SSID="foobar" WIFI_PASSWORD="hackme" ./castanet.sh
Je ne veux pas copier-coller un script entier ici, car je ne pense pas que ce soit le but de StackExchange, mais les étapes importantes sont les suivantes :
- Obtenir le RSA du dispositif
public_key
à partir du JSON disponible via TSL 1.2 HTTPS sur le port 8443 à l'adresse suivante /setup/get_eureka_info
. (Mon curl
par défaut à 1.3, ce qui était trop nouveau pour l'appareil et j'ai dû l'en dissuader).
- POST à
/setup/scan_wifi
- Au bout d'un moment, on obtient
/setup/scan_results
trouvez votre réseau, et prenez le wpa_auth
(toujours 7 ?) et wpa_cipher
(toujours 4 ?)
- Cryptez le mot de passe de la clé publique de l'appareil à l'aide de la fonction
RSA_PKCS1_PADDING
et un oaepHash
de sha256
(le nodejs crypto
peut le faire, si vous enveloppez la clé dans des lignes BEGIN et END), et si vous codez le texte cyphérique en base64.
- JSON postent le
ssid
, wpa_auth
, wpa_cipher
y enc_passwd
a /setup/connect_wifi
.
- JSON afficher un drapeau
keep_hotspot_until_connected
avec la valeur true true
a /setup/save_wifi
avant que le Chromecast ne décide de quitter le nouveau réseau wifi.