This is a self Q&A.
I've often looked around for help on using the Vimeo API, and always found the entry level examples and documentation very difficult to follow. So I've written this Q&A as help to those that need it. So here is the question:
How do I use the Vimeo PHP "Advanced API" to get all of my Vimeo videos?
The key is "my" videos. This is useful for people building a site that they want to synch with their own Vimeo account. The Vimeo examples are all geared towards allowing a 3rd party user to authenticate as needed. This is a one time static authentication example.
// Include the Vimeo API file. Download from here: https://github.com/vimeo/vimeo-php-lib
require_once('vimeo.php');
/*
* Helper Function to Handle Vimeo Authentication
*/
function authenticate_vimeo(){
// Settings below.
// You'll need to set these to your account's as show here: // Get from https://developer.vimeo.com/apps/new
$vimeo_id = 'user12345'; // Get from https://vimeo.com/settings, must be in the form of user123456
$consumer_key = '1234567';
$consumer_secret = '1234567';
$token = '1234567';
$token_secret = '1234567';
// Do an authentication call
$vimeo = new phpVimeo($consumer_key, $consumer_secret);
$vimeo->setToken($token, $token_secret);
$vimeo->user_id = $vimeo_id;
return $vimeo;
}
/*
* This is how you make a call to the Vimeo API
*/
// Authenticate Vimeo
$vimeo = authenticate_vimeo();
// Try to access the API
try {
$args = array(
'full_response' => true,
'user_id' => $vimeo->user_id, // This limits the request to the one user's videos
'per_page' => 50, // 50 is the max per page, use "page" parameter for more pages
);
$results = $vimeo->call('vimeo.videos.getUploaded', $args); // List of methods here: https://developer.vimeo.com/apis/advanced/methods
}
catch (VimeoAPIException $e) {
$error = "Encountered an API error -- code {$e->getCode()} - {$e->getMessage()}";
}
// Do something with error or results
if( isset($error) ) {
print_r($error);
} else {
print_r($results); // This will be a gigantic PHP object of all videos and meta data
}