あるWebサーバに配置済みの動画ファイルを配信サービスvimeo.comへアップロードすべく、vimeo APIを使いpullアプローチにより試みたところ、statusは201が得られましたが、実際にはアップロードは完了しませんでした。
pullの場合、linkで指定されたURLにある動画にvimeo側からアクセスし、吸い上げてくれるものと思いますが、vimeoからWebサーバへのアクセスは確認できませんでした。
問題点を思いつかないのでお気づきの点あればご教示いただきたく思います。
試した手順は以下の通りです。
*viemo.com上の操作は全て管理者権限で行っています。
- https://developer.vimeo.com/apps でappを作成
Client identifier (client_id)
Client secrets (client_secret)
を得る
- 自分のアカウントでauthenticateするためのaccess tokenを生成
その際、Scopesとして
Public. Private, Create, Edit, Delete, Interact, Upload, Video Files
を指定
- https://github.com/vimeo/vimeo.php からvimeo.phpを入手してインストール
'/me'や'/me/videos'などのリクエストが成功し適切な結果が得られることを確認
- 次のPHPコードをWebサーバで実行
php
1<?php 2require("./vimeo.php-master/autoload.php"); 3 4// 上記1~2で得たコードを適用 5$client_id = 'xxxx'; 6$client_secret = 'xxxx'; 7$access_token = 'xxxx'; 8 9$client = new \Vimeo\Vimeo( 10 $client_id, 11 $client_secret, 12 $access_token 13); 14 15$url = '/me/videos'; 16$approach = 'pull'; 17$link = 'https://~';//配置済みの動画ファイルのURL 18 19$result = $client->request( 20 $url, 21 array( 22 'approach'=>$approach, 23 'link'=>$link 24 ), 25 'POST' 26); 27 28echo '<pre>'; 29print_r($result); 30echo "</pre>\n"; 31exit;
- 上で得られた$resultを見ると
[status] => 201
となっていて一見リクエストが成功したように見えるが、先頭を詳しく見ると
[body] => Array ( [uri] => /videos/~ //具体的な値は省略 [name] => Untitled [description] => [type] => video [link] => https://vimeo.com/~ //具体的な値は省略 [duration] => 0 [width] => 400 [language] => [height] => 300 [embed] => Array ...
となっていて、配置済みの動画ファイルの内容を反映しておらず、その動画ファイルが配置されているサーバのログを見てもvimeoからアクセスされた形跡がない。
[body][link]にあるURLを開いても「アップロード中...」のままになり、アップロード完了・最適化完了となることはない。
以上です。
5)のようになる原因についてご指摘いただければ幸甚です。
よろしくお願いします。
*追記
アップロード機能の利用には、Access Tokens生成の際にScopesとしてuploadを指定するだけでなく、別途アップロードを有効にするよう申請が必要であることがわかりました。
https://vimeo.com/help/contact で
デベロッパー > アプリののアップロード許可申請 と進み、
他の設問を適当に回答して送信したところです。
申請に対して許可が下りるのに数日かかるそうなので、質問した手順で正しく動作するかどうかは許可後の検証となってしまいます。
結果はのちほど投稿しますのでよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。