0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AppleTVでニュース生配信を見る方法

Last updated at Posted at 2021-05-08

tl;dr

AppleTVでニュースの生配信を見たい

  1. 生配信のm3uプレイリストのURLを取得
  2. pyaTVでAppleTVにリモート再生を開始させる

背景

AppleTVに日本国内のニュース配信は行われていない(あってもNHK海外版しかない)為、どうにかしたいと思います。

1. プレイリスト取得

  • 日テレnews24 https://www.news24.jp/livestream/index.m3u8
  • ウェザーニューズ http://movie.mcas.jp/mcas/wn1_2/master.m3u8
  • TBS (公式から提供なし。以下のスクリプトを使って取得します)

ヤフーニュースのライブ配信のプレイリストを取得

  • Policy Keyはアカウントごとに固定しているっぽいです。Revokeされない限りずっと使えと思います。

  • 以下のファイルをget-yahoo-news-live-playlist-url.shに保存しておきます。

  • 使うには jq が必要です。(macOSではbrew install jq 、raspberry piではsudo apt install -y jq でインストールしておきます)

#!/bin/bash
#
# https://news.yahoo.co.jp/live から見れるニュースのライブ配信
#
POLICY_KEY_HEADER='Accept: application/json;pk=BCpkADawqM0Q9Hmq-rorJvkNmoOS44SlR_2FiG826OEOA1d3hAwJJOKIRjbuxxvsWYq3oXZkKtsfu03c9MrVUGhVfsjLNqa4lOVpNjlCfYc-WcQNVKf_qQVk-j0ReGDd_CzXPOEgBqUHU-w7'

NTV='https://edge.api.brightcove.com/playback/v1/accounts/5690807595001/playlists/5743160747001?limit=1000'
TBS='https://edge.api.brightcove.com/playback/v1/accounts/5690807595001/playlists/5743480071001?limit=1000'
BBC='https://edge.api.brightcove.com/playback/v1/accounts/5690807595001/playlists/5794804965001?limit=1000'
URL=""

usage_exit() {
    echo "Get m3u URLs for yahoo news live broadcast" >&2
    echo "Usage: `basename "$0"` -c ['bbc'|'tbs'|'ntv']" >&2
    exit 1
}

while getopts c:h OPT
do
    case $OPT in
        c)  case `awk '{print tolower($0)}' <<< "$OPTARG"` in
                ntv) URL="$NTV" ;;
                tbs) URL="$TBS" ;;
                bbc) URL="$BBC" ;;
            esac
            ;;
        h)  usage_exit
            ;;
        \?) usage_exit
            ;;
    esac
done

shift $((OPTIND - 1))

if [[ -z "$URL" ]]; then
    usage_exit
fi

curl -s "$URL" -H "$POLICY_KEY_HEADER" |  jq -r '.videos[] | .sources[] | .src'

2. PyaTVを動かす

参照 : https://pyatv.dev/getting-started/

PyaTV初期設定

  1. 先にpython3 をインストールしてください。

  2. インストールします

    pip3 install pyatv
    
  3. ネットワーク内のAppleTVを検索し、Identifierを取得します。

    $ atvremote scan
    Scan Results
    ========================================
           Name: 主寝室
       Model/SW: 4K tvOS 13.4.8
        Address: 192.168.xx.xx
            MAC: 00:11:22:33:44:55
     Deep Sleep: False
    Identifiers:
     - EC4B936E-54C6-46F5-8DA6-000000000000
     - 00:11:22:33:44:55
    Services:
     - Protocol: MRP, Port: 49152, Credentials: None
     - Protocol: AirPlay, Port: 7000, Credentials: None
    

    上記 00:11:22:33:44:55主寝室という名のAppleTVの識別子です。適宜にメモしておきます。

  4. ペアリングします。Enter PIN on screenが表示されたら、アップルTVの画面に表示される4桁の暗証番号を入力します。

    $ atvremote --id 00:11:22:33:44:55 --protocol airplay pair
    Enter PIN on screen:(ひそひそ)
    Pairing seems to have succeeded, yey!
    You may now use these credentials: 1234567890123:12345678890ABCDEF123456......
    

    最後に表示される16進の文字列は CREDENTIALS 文字列です。コピーしてテキストファイルに保存しておきます。

PyaTVで指定AppleTVにAirplay指示を流す

使い方:

atvremote --id [APPLETV_ID] --airplay-credentials `cat CREDENTIAL_FILE.txt` "play_url="$PLAYLIST_URL"

使用例:(AppleTV IDをAPPLE_TV_ID.txtに、Airplay認証情報はCREDENTIAL_FILE.txtに予め保存しておいたことにします)

  • TBSを再生するには

    atvremote --id `cat APPLE_TV_ID.txt` --airplay-credentials `cat CREDENTIAL_FILE.txt` "play_url=`bash get-yahoo-news-live-playlist-url.sh -c tbs | head -n1`"
    
    
  • 日テレnews24を再生するには

    atvremote --id `cat APPLE_TV_ID.txt` --airplay-credentials `cat CREDENTIAL_FILE.txt` "play_url=https://www.news24.jp/livestream/index.m3u8"
    

その他

atvremote コマンドをcrontabに合わせて使うとAppleTV目覚し時計が出来ます。

更にこちらに紹介されるシェルスクリプトに合わせて使うと、平日に限定することも出来ます。

いろいろ試してみてください。( ˇωˇ )

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?