テレビのアンテナを立てず、インターネットだけでテレビの番組を録画してライブラリに自動的に転送して jstree で閲覧します。
ffmpeg で録画する
NAS 上の virtual machine に linux mint を置いて、以下のようなシェルスクリプトを作成します。
#/bin/sh
filename=`date +%y-%m-%d_%H:%M:%S`
ffmpeg -i http://redlabmcdn.s.llnwi.net/hoge/index.m3u8 -c copy -bsf:a aac_adtstoasc ~/data/BSTBS/$filename.mp4
cron に時刻・録画時間を設定します。
例えば、「ヒロシのぼっちキャンプ」であれば毎週水曜日の午後 10 時から 54 分間なので、以下のようになります。
00 22 * * wed timeout 3240 ~/shell/BSTBS.sh
録画ファイルを NAS の jstree へコピーする
録画されたファイルを、NAS のホストマシン、jstree へコピーします。
自宅内の端末から閲覧するためです。
もちろん、最近 fireTV にしたのでテレビからもアクセスできます。
import paramiko
import scp
class NetTV():
def __init__( self ):
self.host = '192.168.0.18'
self.user = 'user'
self.password = 'pass'
self.port = 11123
self.localpath = '/home/user/data'
self.remotepath = '/volume1/web/jstree/'
def scp_put( self ):
with paramiko.SSHClient() as ssh:
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(self.host, port=self.port, username=self.user, password=self.password)
with scp.SCPClient(ssh.get_transport()) as scpc:
try:
scpc.put( self.localpath, recursive=True, remote_path = self.remotepath )
except:
print('そのディレクトリは存在しません。')
if __name__ == '__main__':
ntv = NetTV()
ntv.scp_put()
jstree で閲覧する
jstree 環境が整っていれば以下のようにして動画を閲覧できます。
以下は「踊るさんま御殿」です。
jstree の素晴らしいところは、置くだけで php が data フォルダを解析してフォルダツリーを勝手に作成してくれることです。
なので、virtual machine から mp4 を data フォルダごとコピーするようにしました。
jstree の導入は少し面倒ですが、3 年ほど前に作ったものを使い回しています。