vimeoを利用したいとのお客さまからのご要望があり、テスト的に使ってみた。
Vimeo(ヴィメオ、クリエイター向け動画共有サイト)
PHPからvimeo APIを使う。
vimeoのIDを取り、APP作成の準備をし、
予めアップロードした動画をPHPプログラムから一覧取得・表示はごくごく簡単にできた。
PHPからvimeo APIを使う(情報取得、変更、アップロード)
この調子でアップロードも・・・と思ったところで壁があった。
自サーバにある動画を、URL指定でアップロードすることは簡単なようだ。
「自サーバ経由しないアップロード」・・ごく普通の、ファイルを指定して「Upload」で送信する方法の情報があまりなく、
それでもサンプルを見つけた。
参考にして動かすと
Unable to initiate an upload. [Your access token does not have the "upload" scope]
でエラーになる。
uploadの権限がないっぽい。。
アップロードアクセスを有効にする
「Enable upload access」の項・・・申請する必要があった。
https://developer.vimeo.com/api/guides/videos/upload
アップロードアクセスを有効にする
まず最初に、アプリがVimeoに動画をアップロードできるようにするには、アップロードアクセスをオンにする必要があります。この機能はデフォルトでは有効になっていません。
ということで、課金するか?どんな動画か?対象は自分のアカウントのみか? 等の質問に答えて申請した。
返信は最大5営業日とのことだったが、半日ほどで処理され、OKメールが来た。
トークンの作り直し
再度、実行。だが、メッセージは変わらずエラーのまま。
調べたりコード変更したり設定確認したり小一時間。
「vimeoのアプリケーション設定画面で、upload権限つけたトークンを再作成する」が正解だった。
・・・公式ドキュメントのどこかに載っているのか??PGの勘で設定見つけたが・・・
新しいトークンに入れ替え。
さらにUploadに必要なモジュールをcomposerで追加した。
composer require ankitpokhrel/tus-php
composer require guzzlehttp/guzzle
しかし。
Unable to initiate an upload. [You’ve hit your maximum number of uploads for today. Go to https://vimeo.com/upgrade to get more.]
と怒られました。
中途半端にできたデータが10件。vimeoページから削除すると、動かせるようになりました。
その日のupload回数でなく、動画数のようです。
無料のBasicプランの制限であって、適正な有料プランなら問題はなさそうです。