動画視聴ページの認証管理を構築してみた
久しぶりにPHPで工作。
YouTubeでは限定リンクを用いて一部の方に公開できるけどそこで対価を求める営利行為は規約違反。メンバーシップが回答となるけど、レンタルビデオ的なコンテンツ毎やユーザー単位での視聴コントロールができないし、先にYPP(YouTube Partner Program)に加入するための収益化条件(チャンネル登録者数500人以上、直近90日間にアップロードした有効な公開動画が 3 本以上、過去12ヶ月の総再生時間が3,000時間以上もしくは過去90日間でショート動画の視聴回数が300万回以上)をクリアしなきゃなので無理。
他の動画サービスはNPOが維持できるような金額では無い。Microsoft Teamsも考えたけど、そもそもYouTubeのアカウントがあるのか(Google IDやApple IDとキャリアのIDの区別も自分のIDがどれなのかも)すら自身がよくわかっていない方々が多いのでコストが発生する。何よりやっぱりレンタルビデオ的なコントロールが出来ない。
そこで要件を満たしていたのがVimeoのVimeo On Demandだった。こちらもアカウントは作ってもらわなくてはだけど、Google IDみたいに「持っていたのに追加で作っちゃった」とかの混乱も無いし、新規作成に特化すれば付き添ってなんとかクリアはできる。JCBだとPayPal支払いになっちゃうほうがハードルが高かった。コンテンツ事に価格とレンタル期間を設定し、視聴制限の要件はクリアしてくれていた。
ところが。
そのVimeoが欧州連合(EU)の法律改正で、デジタルサービス法(DSA)の第30条と第31条に従い販売者の連絡先情報で認証を取りお客様の住所、電話番号、メールアドレス等々の実在情報をすべて表示する義務が発生。所在地がEU圏外であってもEUで提供されるサービスにはすべて課せられるとのことでまた面倒な事に。
NPO情報として検索できるから問題はないと言いたいところだけど、行政に届出ているのは代表者の個人宅と個人の電話番号だし、オンデマンドコンテンツに付随して世界中に丸見えなのはちょっと...と代表さんが難色。手続きを試してみたら設問と証明事項が多くて、日本の特商法で定められている特定商取引法に基づく表記よりも遥かに厳密なのもブレーキ要因の一つだった。
というわけで考えた。元々Vimeoは月額が安く、上位プランで課金していればVOD以外で限定コンテンツを視聴させて対価を得る事への罰則は規約に書かれていない。とはいえ明記されていないか見つけきれないだけかもしれないので、視聴そのものには対価を発生させない事にして、講義の教材としてVimeoで動画を視聴して「予習してください」とし、講義料の対価は以前から頂いていたのでそこに含むものとしてみた。
うーん、ちょっとグレーですなあ。まあ、もう少しスマートに変更したいね。ちなみに、講義料はPayPayか銀行振込となっている。
Vimeoの限定公開は埋め込み先のドメイン指定ができるので、NPOで使っている独自ドメインを設定してNPOのホームページの埋め込んだページでのみ視聴できるように。そのページへの入口に認証と個々の視聴制限コントロールをするようにしたい、と。
できるだけ低い予算でどうしようかと考えて、代表さんのスキルでもできるGoogle Spread Sheetを使い、そこに記入したIDとパスワードと視聴期間でコントロールするようにPHPでゴリゴリと工作した。支払いを確認した後にシートに記入したらLINEなりメールなりでURLと認証情報を伝えれば完了だ。
コンテンツの一覧も同様にSpread Sheetに記入してもらいそれを反映するように。VimeoでVideo IDを確認する必要があるけど、それくらいはやってもらわないとね。
久しぶりに書いたけどすんなり動いて一安心。
まだ改善の余地はあるけどね。
今日のえらい「プログラム動いた」
明日の頑張る「もう少し作り込む」