関連記事:東芝REGZAのWEB API
PythonでのDigest認証
import requests from requests.auth import HTTPDigestAuth r = requests.get('http://@URL@', auth=HTTPDigestAuth('@user@', '@pass@')) r.status_code
東芝テレビ(レグザ:REGZA)のWEB API仕様
WEB API実行時にDigest認証(ダイジェストにんしょう)が必要となります。
ユーザ名およびパスワードは、レグザAppコネクト設定で設定したユーザー名とパスワードになります。
「(リモコン)設定ボタン」「接続機器設定」「外部連携設定」「レグザAppコネクト設定」
プログラムからの利用時には、Digest認証に対応した方法で利用する必要があります。
http://[REGZA IP]/remote/remote.htm?key=[command_key]
IE、Chrome、Firefoxなど一般ブラウザから動作確認できます。
戻り値は、テキスト出力として数字が返ってきました。
「0」成功 「0以外」失敗。
ブラウザで操作している際に、テレビの音量を上げようとすると「4」というエラー番号も見ることが出来ました。電源ボタンを押した直後に音量操作実施のタイミング。
テレビのIPアドレスが192.168.0.77の場合のコマンドサンプル
- 音量を上げたいとき
http://192.168.0.77/remote/remote.htm?key=40BF1A - チャンネル「8」ボタンを押す
http://192.168.0.77/remote/remote.htm?key=40BF08 - リモコンの「青」ボタンを押す
http://192.168.0.77/remote/remote.htm?key=40BF73
[command_key]リスト
| ボタン名 | [command_key] |
| 1 | 40BF01 |
| 2 | 40BF02 |
| 3 | 40BF03 |
| 4 | 40BF04 |
| 5 | 40BF05 |
| 6 | 40BF06 |
| 7 | 40BF07 |
| 8 | 40BF08 |
| 9 | 40BF09 |
| 10 | 40BF0A |
| 11 | 40BF0B |
| 12 | 40BF0C |
| 入力切替 | 40BF0F |
| 消音 | 40BF10 |
| 電源 | 40BF12 |
| 音声切り替え | 40BF13 |
| 音量↑ | 40BF1A |
| チャンネル↑ | 40BF1B |
| 画面表示 | 40BF1C |
| 音量↓ | 40BF1E |
| チャンネル↓ | 40BF1F |
| ブロードバンド | 40BF25 |
| クイック | 40BF27 |
| マルチ画面 | 40BF29 |
| 画面サイズ | 40BF2B |
| 戻る | 40BF3B |
| 終了 | 40BF3C |
| 決定 | 40BF3D |
| ↑ | 40BF3E |
| ↓ | 40BF3F |
| 一時停止(静止) | 40BF50 |
| → | 40BF5B |
| ← | 40BF5F |
| CH番号 | 40BF60 |
| サーチ | 40BF60 |
| ラジオ/データ | 40BF6D |
| 番組表 | 40BF6E |
| 番組説明 | 40BF71 |
| 青 | 40BF73 |
| 赤 | 40BF74 |
| 緑 | 40BF75 |
| 黄 | 40BF76 |
| ミニ番組表 | 40BF77 |
| 地デジ | 40BF7A |
| 地アナ | 40BF7B |
| BS | 40BF7C |
| CS | 40BF7D |
| 録画 | 40BF86 |
| 設定メニュー | 40BFD0 |
| ↑↑ | 40BE20 |
| ↓↓ | 40BE21 |
| →→(30秒送り) | 40BE22 |
| ←←(10秒戻し) | 40BE23 |
| 早送りスキップ | 40BE26 |
| 戻るスキップ | 40BE27 |
| 録画リスト | 40BE28 |
| 停止 | 40BE2B |
| 巻き戻し | 40BE2C |
| 再生 | 40BE2D |
| 早送り | 40BE2E |
| レグザメニュー | 40BE34 |
| タイムシフト | 40BE35 |
| 番組検索 | 40BE36 |
| 始めにジャンプ | 40BE47 |
| イジェクト | 40BE93 |
| ディスク | 40BE9E |
| dデータ | 43BC14 |
| 字幕 | 43BC52 |
PythonでのREGZA操作サンプルソースコード
import requests
from requests.auth import HTTPDigestAuth
TV_IP = "xxx.xxx.xxx.xxx"
TV_USER = "user"
TV_PASS = "pass"
TV_VOLUME_DOWN = "40BF1E"
TV_BOTTON_8 = "40BF08"
def execjanken(key):
url = "http://" + TV_IP + "/remote/remote.htm?key=" + key
r = requests.get(url, auth=HTTPDigestAuth(TV_USER, TV_PASS))
return True
//Change channel to 8
execjanken(TV_BOTTON_8)