2019年6月アーカイブ

DSCN6662.JPGテレビにHDMIでつないで、あれこれ遊ぶツール、なんちゃらキャストっていうのがありますが、それを比較してみます。

対象は エーリンクの EZCast、Google の ChromeCast、Amazon の FireTV の3種類。まぁ、同じような比較記事は結構ありそうな気がするんですが、私の視点で比較してみます。

いきなり結論!

やりたいこと おすすめデバイス
AmazonVideoの再生 FireTV
d-アニメストア ChromeCast
NASとかローカル動画の再生 EZCast
プレゼンテーションとか EZCast

デバイスを個別に見てみましょうか

FireTV

とりあえずAmazonがゴリ押ししてくる。Amazonで、ChromeCastとかを探しても、かならずFireTVを表示してくる。なんだかなぁ。

でまぁ、専用デバイスであるだけあって、Amazon Video を見るには文句なし。FireTVだけあれば、パソコンも Android 端末もなく、本体と付属のリモコンだけで動画再生ができる。

STBと思えばいいでしょう。

ただし、良いのは Amazon Video だけ。

アプリケーションの追加で d-アニメストアを再生するとはできるんですが、なぜか再生が途切れる。

同じネットワークに接続した Android 端末や Windows 上での再生では問題ないのに、FireTV だと途切れる。

あと、AC アダブタを刺したままで放置すると、ハングアップする。FireTV 本体の電源をさしたままテレビだけを切って放置しておくと、24時間程度でハングアップする。Amazon のサポートに問い合わせたところ、「ACアダブタを抜け」という回答だったので、そういうものなんだろう。STB で電源入れっぱなしにできないって、失格じゃね?という気はするが。

ChromeCast

すごーく乱暴な言い方をすると、Android 用の無線 HDMI ケーブル。

Chrome Cast 本体だけではなにもできない。

3機種中、唯一の有線接続非対応デバイス。

とにかく、Android デバイスがなければ初期設定すらできない。逆に言うと、Android デバイスが対応できれば、対応できるサービスにも変わってくる。ローカルに保存した動画でも、VLC でキャストすれば対応できる。

ただ、ChromeCast を接続したテレビで、まれに地上デジタルテレビが乱れることがあった。ChromeCast のノイズが原因かどうかまでは追究できてない。

あと、d-アニメストアで ChromeCast がおすすめとしたのは、FireTV で再生したときに映像途切れを落とす時でも、Android 端末であればと途切れず、かつ Cast できるから。

EZCast

Amazon や Google みたいにサービスありきで、サービスを利用させることを中心に考えた FireTV や ChromeCast と異なり、モノありきという製品。なので、クラウドサービスのことを考える必要がない。というか、クラウドサービスをメインに使いたいのであれば、おすすめできない。

NAS やローカルに保存した動画ファイルを再生しようとする場合は、これ一択じゃないかしら。

動画ファイルを再生する場合のシーケンスを図にしてみたら、こんな感じっぽい。

EZcast.pngEZCast 以外でファイル再生をしようとする場合は、端末でファイル再生をして画面転送するしかないわけです。オーバーヘッドがでかいのですよね。

広告シバくべし

| コメント(0) | トラックバック(0)

広告シバくべし

広告ブロックである。

Andoroid では平気で全画面広告は出るわ、Chrome は広告ブロックで使う API がなんかされそうになってるわ、おまけに出てくる広告は詐欺まがいばっかりだわ。

もうシバき倒すしかないわな!

ちうわけで、こんな広告ブロックの仕組みでどうだろう。

広告ブロック-公開.png広告ブロックって、けっこう種類があるわけですよ。

  • ブラウザのプラグイン
  • Android 端末に入れる広告ブロックツール
  • 広告ブロック対応の Proxy サーバ
  • 広告ブロック対応の DNS サーバ
  • 広告ブロック機能を持ったルータ

ブラウザのプラグインとか Androidのツール、Ad-block Plus は有名ですよね。ただ、これの難点は、ブラックリスト、ホワイトリストを編集する場合、複数の端末があると、全部のリストを同期する必要があるわけです。けっこー面倒ですよね。加えて、Google様としちゃ、食い扶持壊されるわけにはイカンわけで、Chrome とかAndroid でこの仕組みがいつまで使えるかわからない。

ちうわけで、OSやアプリケーションに依存しない、ネットワークの仕組みとして、広告をシバいてしまえ。というのがここでのお話。

Proxyサーバによる広告シバき

Web上で情報を探すと、それなりに出てくるのが Proxy で広告ブロックを実現しようっていう話。

候補となるツールは2つです

  • Privoxy
  • Squid

広告ブロックだ!ってなると、よく出てくるのがやっぱり Privoxy で、公開されてる広告リストから Privoxy 用の設定ファイルを作ってくれるツールとかがあります。

ただ、Privoxy には大きな問題が1つ。設定ファイルである filterfle と actionsfile の書式が良くわからない!いや、おめーが理解できないだけだろ?って、その通りなんですが。ドキュメントとか設定例とか読んでも、イマイチ理解できなかった。

それの何が問題かというと、ブラックリスト、ホワイトリストへの追加ができないわけです。どーしたところで、広告ブロックは誤爆が出るので、これができないのは困るんですよね。

ちうわけで、acl を使って広告をブロックする Squid を使うことにします。

Squid にブラックリスト

こちらも先人がいらっしゃって、非常に参考になるページがあります。

この先人さんはたぶん、CentOS かなにか、Linux で実装されてるようですが、私は FreeBSD で行きます。

FreeBSD に Ports で Squid をインストールしたあと、先人さんのスクリプトを使うために、gsed  と bash、wget、nkf をインストール。本当は、BSD sed でキメたいところなんですが、tab 文字の置換がうまくいかずに挫折しました。

スクリプトも少し変更したので、貼っておきます。

#! /usr/local/bin/bash
URL=()
# adaway default
URL=("${URL[@]}" "https://adaway.org/hosts.txt")
URL=("${URL[@]}" "http://winhelp2002.mvps.org/hosts.txt")
URL=("${URL[@]}" "https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext")
URL=("${URL[@]}" "https://hosts-file.net/ad_servers.txt")
URL=("${URL[@]}" "https://sites.google.com/site/hosts2ch/ja")
URL=("${URL[@]}" "https://raw.githubusercontent.com/multiverse2011/adawaylist-jp/master/hosts")
URL=("${URL[@]}" "https://warui.intaa.net/adhosts/hosts.txt")
URL=("${URL[@]}" "https://280blocker.net/files/280blocker_host.txt")
#
echo "download hosts list"
for (( i = 0; i < ${#URL[@]}; ++i )); do
    echo wget -q "${URL[$i]}" -O tmp-$i.txt
    wget -q "${URL[$i]}" -O tmp-$i.txt
    echo "create tmp-$i-list.txt"
    cat tmp-$i.txt | \
        grep -v localhost | \
        grep -v 255.255.255.255 | \
        grep -v ^# | \
        grep -v ^white | \
        sed '/^$/d' | \
        sed -e 's/\t/ /g' | \
        nkf -w -Lu -d > tmp-$i-list.txt
    rm -f tmp-$i.txt
done
#
echo "merge tmp list"
for f in `/bin/ls -1 tmp-?-list.txt`; do
    cat $f | grep -v ^# >> tmp-list.txt
    rm -f $f
done
cat tmp-list.txt | \
    sed '/^$/d' | \
    sed -e 's/#.*$//g' | \
    sed -e 's/^0\.0\.0\.0/127\.0\.0\.1/g' | \
    sort -u > adaway.txt
sed -i -e '/apis.google.com/d' adaway.txt
sed -i -e '/google-analytics.l.google.com/d' adaway.txt
sed -i -e '/google-analytics.com/d' adaway.txt
sed -i -e 's/127.0.0.1 //g' adaway.txt
echo -n '' > adaway_hosts.txt
cat adaway.txt | while read line
do
    echo 0.0.0.0 $line >> adaway_hosts.txt
done
# nginx hosts
cat adaway_hosts.txt | sed -e 's/^0\.0\.0\.0/server_name/g' -e 's/$/;/g' > adaway_nginx_hosts.txt
## ipv6
# cat adaway.txt | sed -e 's/127.0.0.1/::1/g' > adaway_ipv6.txt
# cat adaway.txt >> adaway_ipv6.txt
# mv adaway_ipv6.txt adaway.txt
echo "cleanup"
rm -f tmp-list.txt
rm -f tmp-white.txt

で、作ったリストを squid.conf に読ませます。

hosts_file adaway_hosts.txt

acl ad_allow url_regex "allow"
http_access allow ad_allow

acl ad_allow_domain dstdomain "allow-domain"
http_access allow ad_allow_domain

acl ad_block dstdomain "adaway.txt"
http_access deny ad_block
acl ad_block_url url_regex "deny"
http_access deny ad_block_url

スクリプトで生成する adaway_host.txt、adaway.txt のほかに、正規表現でURLを書くためのホワイトリストファイル allow、ドメイン名で書くホワイトリスト allow-domain、正規表現URLで書くブラックリスト deny があります。まぁ、このあたりは各自、ご自由に。

あと、この Proxy マシンの DNS サーバは /etc/resolv.conf ファイルで Pi-hole マシンに向けます

Pi-hole による DNS ブロック

こっちは先人さんどころか、構築されてる方がいっぱいいらっしゃるので、お任せします。私が参考にさせてもらったのはこちらのページ

Pi-hole の最大のメリットは、GUI が付いてることですね。ブラックリスト、ホワイトリストへの追加・削除がGUIからポチポチでできます。

あと、Pi-hole を BSD 系 OS で動くっていう話がぽつぽつ見つかるんですが、うまくいきませんでした!

おとなしく CentOS で構築してます。

Fortigateで広告遮断

次世代 Firewall で有名(?)な Fortigate にも広告遮断機能があります。

Fortigate-広告ブロック.pngこの機能のメリットは、Firewall として動作するので、端末側の設定が何もいらないこと。既存のルータを置き換えて、Webフィルタを有効にするだけです。

ただ、残念ながらこのフィルタは使い物になりません。Gogle で Web 検索して、最上位に「広告」マークつきで出てくる検索結果をフィルタする程度のことしかできません。

まぁ、Fortigagte はウィルス対策とか、Botnet対策とか、そっち方面で使いましょう。

不具合対策

さてまぁ、これでめでたく広告をシバき倒せるネットワークになったわけですが、1つ問題が。

Android で d-アニメストアを使おうとすると開かない。

Windows 上の Chrome だと問題なく試聴できるんですが、Android のアプリケーションで開こうとすると、こんなんなっちゃう。

Screenshot_20190620-220908.pngさーて?なんでだ??と調べてみたんですが、どうやらこの3つの FQDN を許可しないとダメらしい。

  • www.google-analytics.com
  • www.googleadservices.com
  • www.googletagmanager.com

え・・・・?これを許可するって、それは広告ブロックの意味ないのでわ・・・?

しかも、d-アニメストアというアプリケーションの動作にはどー考えても必要ないような・・・・なんでこれが読めないだけでエラーにしちゃうんだろうなぁ。

なお、言わずもがななFQDNばっかりなんで、adaway.txt ファイル、adaway_hosts.txt ファイル、Pi-hole のリストすべてに、当然のようにブロック対象として入ってます。許可するにはおのおの対応が必要です。

このアーカイブについて

このページには、2019年6月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2019年5月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。