メディアライブラリを作ろう

大手YouTubeなどに依存せず、独自に配信を行うのであれば、小規模な配信所を複数確保し、さらにそれらを迅速に切り替えられる仕組みを整えることが重要です。
ここまでの章では、配信所には「トークンリンク方式」と「直リンク方式」があり、それぞれに特徴と注意点があることを説明してきました。
- トークンリンク方式は、大手クラウドが採用しており、セキュリティ重視。Dropboxなど限られたサービスのみが配信向きです。
- 直リンク方式は、Webサーバーがインストールできれば、その中で容易に構築できますが、エンコード済みURLを管理する必要があり、リンク切れ対策が不可欠です。
この章では、特に「リンク切れを防ぐ仕組み作り」について具体的に説明していきます。
1. Dropboxへの依存リスク
トークンリンク方式には大きな利点があります。
ファイルパスやファイル名を変更しても、共有リンクURL(トークンリンク)は基本的に変更されません。
これにより、配信側にとって運用が非常に安定します。
しかし、ストリーミング再生に対応したトークンリンク方式を許可しているクラウドサービスは非常に少なく、現状ではDropboxがほぼ唯一の選択肢となっています。
このため、Dropboxに頼ってしまう、配信インフラをDropboxのみに依存するリスクが懸念されます。
では、Dropboxの代替となるクラウドは存在するのでしょうか? 次に、主要なクラウドストレージの状況をまとめてみます。
クラウド | ファイルパスから共有リンク取得 | 共有リンクからストリーミング表示可能か | コメント | |
![]() | Dropbox | 可能 ✅(API使用) | 可能 ✅(raw=1 などで直再生可) | Mac Finderパスとクラウドパスが一致、取得容易。dl=0をraw=1に変換でストリーミング。 |
![]() | Google Drive | 工夫すれば可能 △ | 部分的に可能 △(制限あり) | API検索でファイルID取得可能。基本はビューアーページ誘導。ファイル種別・設定次第で挙動が変わる。 |
![]() | OneDrive | 工夫すれば可能 △ | 部分的に可能 △(制限あり) | API経由でパス整形可能。ストリーミング可否はファイル形式やブラウザに依存。 |
![]() | iCloud Drive | ほぼ不可能 ❌ | ほぼ不可能 ❌ | API経由での共有リンク取得不可。共有リンクもストリーミングに適さない。 |
このように、複数のクラウドをトークンリンク方式で使い分けることは現実的ではなく、トークンリンク方式についてはDropboxに一本化するのが最も合理的な選択だと言えます。繰り返し言います。それゆえに、Dropboxに依存したくなるのですが、サービス内容が変更されない保証など無く、そこにリスクがあるわけです。
2. 直リンク方式による配信とリンク切れ対策
一方、直リンク方式ならば、Dropboxに依存せずに複数の配信所を設けることが可能です。
具体的な候補は以下のようなものがあります。
- pCloud(パブリックフォルダ利用)
- WordPressサーバー(Xserverなど)
- 自宅Webサーバー
- レンタルWebサーバー(独自ドメイン)
※pCloudは今では特異な存在で、トークンリンク方式と直リンク方式の両方を提供しています。昔のDropboxに似ています。
これらはいずれも、ドメイン名直下またはサブディレクトリにメディアフォルダをコピーするだけで、新たな配信拠点をすぐに追加できます。
ただし、ここで問題になるのが、ファイルパスやファイル名の変更に伴うリンク切れです。
これを防ぐために、次のような仕組みを用意します。
バックグラウンド処理(常時監視する)⬇️ | |
ファイルパス、ファイル名の変更前と変更後を記録する (毎2秒)。 | Automatorの中でShellScriptを記述 GAS |
メディアフォルダの更新方法(第2章のパイプライン処理では、スクリプトを記述しているもののみ取り上げ)⬇️ | |
Dropbox:Dropboxのローカルフォルダが全ての源流。私の場合、mmedia、pmediaという名のフォルダを設けている。この2つのフォルダを、各サーバーへコピーあるいは同期する。 | |
自宅サーバー:SynologyNASにWordPressサーバーを建てている。SynologyNASのCloudSyncを使いDropbox経由で同期している。 | |
Xserver(WordPress):SynologyNASからXserverへ、ShellScriptのrsyncにより送り込んでいる。毎分処理。 | |
pCloud:pCloudDriveの同期機能を使い、ローカルフォルダとpCloudのPublic Folder内のフォルダと同期する。 |
- ファイルパス変更記録ファイルを保持する
(Macで変更前ファイルパスと変更後ファイルパスを記録して、Spreadsheetを更新する) - ライブラリ登録の時、これを照合して、配信用URL(例:https://imakat.com/rd.php?id=Abcd0123.png)に紐づくパスやファイル名を最新のものに置き換えたJSONファイルを生成する。
こうすることで、仮にファイル構成やファイル名が変わっても、配信URL自体は変更せずに運用を継続できるようになります。

次回予告:
第5章〜終わりに、では、「動画パッケージの作り方」についてご紹介します。
➡ 第5章を読む