Help us understand the problem. What is going on with this article?

PythonとHTTPでGoogleHomeに好きな言葉をしゃべらせる!(追記:しゃべった)

一番使いやすい方法かと・・

RaspberryPiとかPythonとかを使って
GoogleHome(Chromecastデバイス)をしゃべらせる系の記事を色々調べました。

別途サーバー立てる必要なし!
コード中でサーバー運用する

事前にmp3ファイルを準備する必要なし!

そ(HTTPリクエスト)の都度、
mp3ファイルを生成 ➡ 時間がたったら削除
してくれる

環境

Windows 10 Pro
Anaconda 3
Python 3.7
Visual Studio Code

目的

Gist (SlashNephy様) からソースコードをコピーしてきて
Google Homeをしゃべらせよう!という試み。

現状

やったこと

  • Anacondaで仮想環境構築
  • 構築した仮想環境で pip install flask gtts pychromecast
  • スクリプト走らせる
  • FirefoxからURLにアクセス

結果

  • Google Homeが「ジュルン♪」っていう(GoogleHomeのIPアドレスは合ってるね。)
  • キャッシュにmp3ファイルを生成(プレーヤーで再生可能)
  • mp3ファイルがGoogle Homeから再生されない

原因の究明活動

問題:mp3ファイルがGoogle Homeから再生されない

サーバーのアクセスログを確認
コメント 2019-10-15 224711.png

mp3ファイルは生成されている
messageImage_1571145678863.jpg

ブラウザからmp3ファイルにアクセスしようとすると、404。
※キャッシュ削除前に試行
messageImage_1571145617278.jpg

この前はしゃべってたんだよなぁ~

おっかしいなぁ~~~
仮想環境なんか変えたっけ・・?

追記:なんかしゃべった

コードの18行目のdeviceの設定変えた。

device = pychromecast.Chromecast(ip_address)

.
もともとのコードがなぜ

device = next(x for x in pychromecast.get_chromecasts() if x.host == ip_address)

となっているのだろう?

私の環境だとエラーになってしまう。

IPアドレス特定して使用するのが前提なのだから、
if文の条件が真になるまでfor文の処理を行う必要はあるのだろうか?
(ifとforの処理内容も完全に理解してない)

喧嘩売ってるとかじゃなくて!!
単純にわからないのです。

わかる方いたらコメントでもください。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away