2016/11/12(土)NetflixとHulu

 映画「続・深夜食堂」を見て、Netflix版の「深夜食堂 Tokyo Stories」も見たくなったのでNetflixに加入した。比較するためにHuluにも加入した。どちらも無料期間中で、いずれどちらかに絞りたいと思う。

 Netflixはネットの評価を見ると、映画の本数が少ないという意見が多い。僕もざっと見てそう感じた。Huluの方が圧倒的に多く感じる。気になったのでdTVとamazon Primeビデオも含めて映画の本数を数えてみた。dTVとamazonは本数が表示されるが、NetflixとHuluは表示されないので実際に数えるしかない。Huluは洋画と邦画の分け方ではなく、日本、米国、中国、韓国などと分けてある上に区別の仕方も怪しく、邦画の中に「ドラキュラZERO」が入っていたりするので年代別に数えた。多少の数え間違いはあるかもしれないが、結果は以下の通り。

▼dTV(見放題のみ)
洋画1316
邦画 659
計 1975本

▼Hulu
2010年代 615
2000年代 446
1990年代 178
1980年代 103
1970年代  55
1960年代  76
1950年代  40
   計1513本

▼amazon Primeビデオ
洋画1328
邦画 702
計 2030本

▼Netflix
洋画1490
邦画 700
 計2190本

 意外なことにNetflixが一番多く、Huluが一番少なかった。2番目はamazonだが、ここは洋画の字幕版と吹き替え版を別に数えているので2、3割少ないと思った方が良い。しかし、コストパフォーマンスを考えると、amazonが一番。年間3900円で、送料無料とPrimeミュージックまで付いてくるので圧倒的だ。

 収録作品に関して言うと、どこも似たり寄ったりの作品が並んでいる。見たい作品がなかったら、TSUTAYAで借りたり、amazonビデオで見たりすればいいのだから、どこに加入しても大差ない。それに映画マニアならば、収録作品の9割以上(ほとんど全部?)は見ているだろう。そう考えると、こういう動画配信サービスを選ぶ場合、映画の本数は選択基準にはなりにくいのではないか。むしろTVドラマの方が選択基準になる。シーズン全話借りると高くなりますからね。定額で一気に見た方が安くつくのだ。その意味で大人気の「ウォーキング・デッド」の最新版が見られるdTVとHuluは強いなと思う。

 Hulu以外の3つのサービスはオリジナルドラマを作っている(間違いでした。Huluもオリジナルドラマ作ってました)。同じことはWOWOWもやっている。差別化のためには有効なのだろう。僕も「深夜食堂」がなかったら、Netflix加入は考えなかったですからね。

 ケータイWatchが有料動画トップは「プライム・ビデオ」、45%が利用という記事を書いていた。ユーザーが最も多いのはやっぱりamazonで次がHuluだそうだ。Netflixはわずか9%。Gyao!や楽天SHOWTIMEにも負けているというのが意外な結果だ。でも、これ見放題だけじゃなくて有料配信の調査だから、こうなるのでしょう。

2016/10/15(土)Google Feed APIの代替その2

Google Feed APIの代替からの続きです。

 開発の終わったMagpieRSSを使い続けるのも少し心配なので、今もメンテナンスされているSimplePieを使ってみた。公式サイトからダウンロードしたファイルのうち、libraryフォルダとautoloader.phpをサーバーにアップして、RSSの指定と表示の加工をするスクリプトを同じ階層に置けばいい。サンプルは以下。

 simplepieget.php

 いろんなサイトを参考にして書いたスクリプトは以下。

 simplepieget.txt

 これをMODXで使おうと思ったが、Feed.phpやMagpieRSSとは違ってスニペットからは動かない。どうもキャッシュの仕様がバッティングしているようだ。以前はSimplePieのMODXプラグインがあったが、もはやない。仕方がないので、JSONファイルを出力してGoogle Feed APIのようにJavaScriptで読み込んで表示することにした。参考サイトはPHP用 Google Feed API が完全に廃止されてしまった時の対応方法。ここはRSS-PHP(Feed.php)を使っているが、JSONさえ出力すれば、あとは同じだ。この方法ならMODXだけでなく、他のCMSでも使えるので汎用性がある。

サンプル Simplepie Test

スクリプト simplepieget.txt

JSファイル simplepieget.js

 表示したいページに
<dl id="simplepieget"></dl>

と書けばOK。ただし、JSONファイルを更新するにはスクリプトにアクセスするか、定期的にCRONで動かす必要がある。

 久しぶりにCRONを使ったら、うまく動かない。コマンドラインからスクリプトを実行してみると、「Could not open input file」とエラーが出る。スクリプトのパスは絶対パスで書かなくてはいけないのだった。スクリプトの中のautoloader.phpとJSONファイルの出力先も絶対パスに書き換える必要がある。これで動いた。うまく動けば、「JSONファイル出力OK。」と表示されます。

 しばらく使っていたのだが、時々、表示されないことがある。戻るボタンを使った時などブラウザがキャッシュを読むので、JavaScriptのページ読み込みのイベントが発生しないからだろう。考えてみると、読み込みだけなら、PHPを使った方が簡単だ。JSONファイルのままだとまた加工しなければいけないので、整形したテキストファイルを出力してそれをPHPで読めばいい。simplepieget.txtの最後の行を削除して以下のようなテキストファイルの出力を書く。

$filename = 'simplefeed.txt'; //←出力するテキストファイル。絶対パスで書く
try{
file_put_contents($filename, $html);
        echo "テキストファイル出力OK。"
        }catch(Exception $e){
        echo "テキストファイルの出力に失敗しました。"
        }

 読む込みは以下のような感じでページに書くか、feedget.phpなどのファイル名で実行する。

<?php
$filename = 'simplefeed.txt';
$file = file_get_contents($filename);
echo $file;
?>

 echoをreturnに変えると、MODXのスニペットにも登録できる。

2016/10/01(土)Google Feed APIの代替

 先日、GoogleからFeed APIを終了すると最後通告のメールが来た。以前から非推奨となっていたが、いよいよ2016年12月15日で終了するそうだ。Feed APIはトップページに使っているので代替策を考えなくてはいけない。検索してみると、代替のPHPスクリプトがいろいろ公開されている。セキュリティーを考えれば、PHPの設定でallow_url_fopen=offで動くものが望ましい。

 simplexml_load_fileやfile_get_contentsなどを使っているスクリプトはこの時点でアウト(cURLなどでRSSを取得してsimplexmlを解析に使うのなら良い。複数のRSSに並列リクエスト後マージして返す関数 - Qiitaなど参照)。Feed.php(rss-php)はSimpleXMLとcURLを使い、allow_url_fopen=offの環境でも大丈夫のようだ。

 PHPでRSSやAtomのフィードを取得する方法「Google Feed API」の代替として「rss-php」でRSSやAtomフィードを取得・表示するなどでスクリプトが公開されている。ただしRSSかATOMのどちらかにしか対応しない。両方対応するように少し手を加えた。映画ニュースサイトのRSSを取得したサンプルは以下。

【サンプル】movienews.php

【スクリプト】movienews.txt(拡張子は.phpに変え、UTF-8で保存する。ファイル名は何でも良いです)

 MODXで使う場合はスニペットに登録する。最後から2番目の行の

echo "<dl>" . $html . "</dl>";

を「return $html」に書き換えて、assets/snippetsにアップロード。スニペットを新規作成し、

return @require MODX_BASE_PATH.'assets/snippets/movienews.php';

とスニペットコードに書き、movienewsの名前で保存する。呼び出すページに

[[movienews]]

と書けばOK。

 ただし、Feed.phpでRSS1.0の解析の仕方がよく分からない。というか、パースできない。しょうがないので2005年から更新されていないのであまり気が進まなかったが、Magpie RSSを使ってみた。これは難なく、RSS1.0のフィードを解析できた。古いといっても、RSSの技術自体が2005年当時から変わったわけではない。車輪の再発明をしたい人は別にして、手っ取り早くGoogleから乗り換える代替スクリプトとしては良いと思う。以下はMagpie RSSを利用したサンプル。参考にしたのは複数RSSの統合して更新日時でソートする方法について(MagpieRSS使用) - PHPプロ!Q&A掲示板

【サンプル】feedall.php

【スクリプト】feedall.txt

 Google Feed APIのように表示すると以下の通り。

【サンプル】magpieget.php

【スクリプト】magpieget.txt

 Feed.php、Magpie RSSともキャッシュを作成して、設定時間ごとにRSSファイルを取得する。毎回、取りに行かないのでサーバーへの負荷は抑えることができるだろう。言うまでもなく、cURLが使えない環境では動きません。

 この記事をアップした途端にスクリプトにエラーが出た。調べてみると、リアルサウンドのフィードにエラーがあった。おかしな文字が混ざっているために、フィードの読み込みができない。というわけでmovienews.phpの方にはエラーの内容表示処理を追加した。

このエントリーの続き→Google Feed APIの代替その2

2016/07/12(火)prime dayに買ったもの

 amazonのプライムデー、買う物がないなあと思って見ていたが、ほしい物リストに入れていたトランセンドのマイクロSDXCカード64GBが1500円と安かったのでサクッと購入。通常は1980円なので480円(24%引き)のお得。通常価格でも十分安いんですけどね。

 カートに入れて15分以内に購入しないと割引にならない。これだと焦って買う人多いでしょう。amazon考えてるな。

 さらに以前から読みたかった水野敬也「夢をかなえるゾウ」のKindle本がセールで99円だったので買った。ゾウの格好をした神様、ガネーシャがやって来て主人公に成功するための秘訣を教える。小説スタイルの自己啓発本。ガネーシャの関西弁がおかしくて一気読みした。

【amazon】【Amazon.co.jp限定】Transcend microSDXCカード 64GB Class10 UHS-I対応 400× (無期限保証) TS64GUSDU1PE (FFP)

2016/01/20(水)検索エンジン最適化

 一昨年11月、この日記のシステムをtDiaryから今のadiaryに移した。当初はWordPressに移行するためのツールとして使う予定だったが、使ってみたらこれで十分と思えたのでそのまま使い続け、今月、バージョンアップもした。

 好感を持ったのは日記を更新すると、「adiary利用者のページ」に通知されて掲載されること。Web日記を書き始めた頃(ブログという言葉もまだなかった頃)に使用していたハイパー日記システムもこういう通知システムがあったので、懐かしさを感じたわけです。

 あの頃はよく、一覧に表示された日記を巡回して日記システム利用者同士でコメントのやり取りをしていた。といってもコメント欄はなかったので、相手の日記の記事タイトルをリンクして自分の日記にコメントを書くという方式。相手はアクセスログからそれを知り、同じ方式でコメントを返す。第三者には意味が分かりにくかったが、そんなにアクセスは多くなかったのでそれでも良かったのです(考えてみれば、Twitter上での返信もこれに近い)。

 adiaryにはアクセスログ解析ツールもカウンターもない。必要な場合はGoogle Analyticsなど他のツールを使えばいいのだが、手軽に見られるアクセス解析ツールがあると、便利ではあると思う。

 そういう昔話はいいとして、tDiaryの時は日付ごとのタイトルではなく、セクションごとのタイトルにしていたので、移行の結果、(no title)と表示される日記がほとんどになった。まあ、それでもいいや、セクションにタイトルはあるんだしと思って放置していたが、当然のことながら、ブラウザに表示されるページタイトルも(no title)になってしまう。AdSenseを本格的に始めた以上、このままではまずい。検索エンジン最適化(SEO)のためには修正した方がいいだろう。

 というわけで、ぼちぼち修正を始めた。修正が必要な日記は1000日分近い。DBファイルをダウンロードして秀丸マクロで一気にやってみようかと思ったが、調べたらadiaryには日記本文を記録したファイルのほかにタイトル一覧のファイルもあって、両方書き換えるのはスクリプトやマクロでは難しい。できたにしても整合性が取れなくなる恐れがある。一つ一つ修正していった方が安全確実でしょう。

 修正はセクションのタイトルを日記のタイトルにし、余計なタグを消すだけ。要する時間は日記1日分あたり30秒もかからないぐらいなので大したことはない。ただ、1000日分近くあると、すぐには終わらない。少しずつやっていくしかない。

カレンダーの位置修正

 スマホでこの日記を見ると、カレンダーが下のようにずれて表示される。

カレンダー

 スタイルシート(sphone.css)を見たら、以下のようになっていた。

table.calendar {

margin-left: auto;

margin-right: auto;

}

 これだと画面に対してセンタリングしてしまうので、margin-left:1em;に変更した。設定自体を削除してもいいと思う。

修正後のカレンダー