Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Reports api#17

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
cyriltata wants to merge27 commits intozencoder:master
base:master
Choose a base branch
Loading
fromcyriltata:reports-api
Open
Show file tree
Hide file tree
Changes fromall commits
Commits
Show all changes
27 commits
Select commitHold shift + click to select a range
f91060d
add access to reports api
Mar 11, 2014
7396e99
add reports object to zencoder api
Mar 11, 2014
c41ee1b
typo fixes
Mar 11, 2014
e433b13
auto-format
Mar 11, 2014
6798ce4
update README with reports api
Mar 11, 2014
dfe27dc
use doc space format
Mar 11, 2014
237615a
update README
Mar 12, 2014
efdd4df
Merge pull request #18 from zencoder/remove_ca_cert_bundle
Jul 25, 2014
290eb23
Merge pull request #19 from zencoder/remove_ca_cert_bundle
Jul 25, 2014
4607c61
Update README.md for formatting
Jul 29, 2014
e03988c
Make it so that you can set curl opts for CA paths and files
Jul 29, 2014
7673c4b
Bump version to 2.2.1 and add docs
Jul 29, 2014
b3046f2
Fixing a bug where api_key was set as api_version in the http connect…
Jul 29, 2014
f50a045
Documenting the changes in 2.2.2
Jul 29, 2014
e2604c4
Fixed the versions listed in the user agent and throughout the code
Jul 29, 2014
3fab4c9
add access to reports api
Mar 11, 2014
589c7c5
add reports object to zencoder api
Mar 11, 2014
c028c53
typo fixes
Mar 11, 2014
bde0dd2
auto-format
Mar 11, 2014
c09bf2c
update README with reports api
Mar 11, 2014
caee9fb
fix merge conflict
cyriltataJul 8, 2015
9463c66
fix merge error
cyriltataJul 8, 2015
7b74562
remove casting to different types of reports
cyriltataJul 8, 2015
bd90317
autoformat
cyriltataJul 8, 2015
0654a28
update Readme
cyriltataJul 8, 2015
28b1cfd
autoformat
cyriltataJul 8, 2015
86c4a2f
format doc code
cyriltataJul 8, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion.gitignore
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
test.php
build_docs.sh
.DS_Store

/nbproject/
269 changes: 183 additions & 86 deletionsREADME.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,35 @@
Zencoder API PHP Library
==========================

Author: [Nathan Sutton] (nsutton (a) brightcove (.) com)

Company: [Brightcove/Zencoder](http://www.zencoder.com)

Version: 2.2.3

Date: 2014-07-29

Repository: <http://github.com/zencoder/zencoder-php/>

To help address problems where users cannot modify php.ini to point cURL to their system CA bundle path, or are using a PHP release before 5.3.7, we have extended this library to allow users to set CURLOPT\_CAPATH and CURLOPT\_CAINFO on the cURL connection used to submit requests.

```php
$zencoder = new Services_Zencoder($my_api_key, 'v2', 'https://app.zencoder.com', false, $my_curlopt_capath, $my_curlopt_cainfo);
```

See also the constructor for `Services_Zencoder` for more information on the available arguments.

See [the cURL CA bundle extraction page](http://curl.haxx.se/docs/caextract.html) for information on obtaining a CA bundle. We recommend using the HTTPS link to download the CA bundle.


Author: [Zac Shenker] (zshenker (a) brightcove (.) c&#1;om)

Company: [Brightcove/Zencoder](http://www.zencoder.com)

Version: 2.2.0

Date: 2014-07-24

Repository: <http://github.com/zencoder/zencoder-php/>

The Zencoder CA chain certificate has been removed from the library as the bundled cert will be expiring on July 26 2014,
Expand All@@ -13,9 +38,13 @@ Please contact us at help@zencoder.com with an issues.


Author: [Michael Christopher] (mchristopher (a) brightcove (.) c&#1;om)

Company: [Zencoder - Online Video Encoder](http://www.zencoder.com)

Version: 2.1.1

Date: 2012-08-02

Repository: <http://github.com/zencoder/zencoder-php/>

Parts of this library are based on <http://github.com/twilio/twilio-php>
Expand All@@ -29,165 +58,233 @@ For more details on the Zencoder API requirements visit
To start working with the library, create a new instance of the Services_Zencoder class, passing
your API Key as the 1st parameter.

$zencoder = new Services_Zencoder('93h630j1dsyshjef620qlkavnmzui3');
```php
$zencoder = new Services_Zencoder('93h630j1dsyshjef620qlkavnmzui3');
```

Once you have created the object, you can use it to interact with the API. For full information,
see the Documentation folder, but here is a quick overview of some of the functions that can be
called:

$zencoder->accounts->create($array);
$zencoder->jobs->create($array);
$zencoder->jobs->progress($job_id);
$zencoder->inputs->details($input_id);
$zencoder->outputs->details($output_id);
$zencoder->notifications->parseIncoming();
```php
$zencoder->accounts->create($array);
$zencoder->jobs->create($array);
$zencoder->jobs->progress($job_id);
$zencoder->inputs->details($input_id);
$zencoder->outputs->details($output_id);
$zencoder->notifications->parseIncoming();
$zencoder->reports->details($report_type, $optional_params);
```

Any errors will throw a Services_Zencoder_Exception. You can call getErrors() on an exception
and it will return any errors received from the Zencoder API.


ENCODING JOB
------------

The ZencoderJob object creates an encoding job using [cURL](http://zencoder.com/docs/glossary/curl/)
to send [JSON](http://zencoder.com/docs/glossary/json/) formatted parameters to Zencoder's encoding API.

### Step 1

Visit the [API builder](https://app.zencoder.com/api_builder) in your account,
and execute a successful encoding job.

### Step 2

Copy the successful JSON string, starting with the first curly brace "{",
and pass it as the parameters for a new ZencoderJob object. Execute the script on your server to test that it works.

#### Example
<pre>
<?php

// Make sure this points to a copy of Zencoder.php on the same server as this script.
require_once('Services/Zencoder.php');
```php
<?php

// Make sure this points to a copy of Zencoder.php on the same server as this script.
require_once('Services/Zencoder.php');

try {
// Initialize the Services_Zencoder class
$zencoder = new Services_Zencoder('93h630j1dsyshjef620qlkavnmzui3');
try {
// Initialize the Services_Zencoder class
$zencoder = new Services_Zencoder('93h630j1dsyshjef620qlkavnmzui3');

// New Encoding Job
$encoding_job = $zencoder->jobs->create(
// New Encoding Job
$encoding_job = $zencoder->jobs->create(
array(
"input" => "s3://bucket-name/file-name.avi",
"outputs" => array(
array(
"input" => "s3://bucket-name/file-name.avi",
"outputs" => array(
array(
"label" => "web"
)
)
"label" => "web"
)
);

// Success if we got here
echo "w00t! \n\n";
echo "Job ID: ".$encoding_job->id."\n";
echo "Output ID: ".$encoding_job->outputs['web']->id."\n";
// Store Job/Output IDs to update their status when notified or to check their progress.
} catch (Services_Zencoder_Exception $e) {
// If were here, an error occured
echo "Fail :(\n\n";
echo "Errors:\n";
foreach ($e->getErrors() as $error) echo $error."\n";
echo "Full exception dump:\n\n";
print_r($e);
}

echo "\nAll Job Attributes:\n";
var_dump($encoding_job);

?>
</pre>
)
)
);

// Success if we got here
echo "w00t! \n\n";
echo "Job ID: ".$encoding_job->id."\n";
echo "Output ID: ".$encoding_job->outputs['web']->id."\n";
// Store Job/Output IDs to update their status when notified or to check their progress.
} catch (Services_Zencoder_Exception $e) {
// If were here, an error occured
echo "Fail :(\n\n";
echo "Errors:\n";
foreach ($e->getErrors() as $error) echo $error."\n";
echo "Full exception dump:\n\n";
print_r($e);
}

echo "\nAll Job Attributes:\n";
var_dump($encoding_job);

?>
```

### Step 3

Modify the above script to meet your needs.

Your [API Request History](https://app.zencoder.com/api_requests) may come in handy.

You can revisit your [API builder](https://app.zencoder.com/api_builder) to add/update parameters of the JSON.

You can translate the JSON string into nested associative arrays so that you can dynamically change attributes like "input".
The previous JSON example would become:

$encoding_job = $zencoder->jobs->create(array(
"input" => "s3://bucket-name/file-name.avi",
"outputs" => array(
array(
"label" => "web"
)
)
));
```php
$encoding_job = $zencoder->jobs->create(array(
"input" => "s3://bucket-name/file-name.avi",
"outputs" => array(
array(
"label" => "web"
)
)
));
```

NOTIFICATION HANDLING
----------------------

The ZencoderOutputNotification class is used to capture and parse JSON data sent from
Zencoder to your app when an output file has been completed.



### Step 1

Create a script to receive notifications, and upload it to a location on your server that is publicly accessible.

#### Example
<?php

// Make sure this points to a copy of Zencoder.php on the same server as this script.
require_once('Services/Zencoder.php');
```php
<?php

// InitializetheServices_Zencoder class
$zencoder = new Services_Zencoder('93h630j1dsyshjef620qlkavnmzui3');
// Make sure this points to a copy of Zencoder.php onthesame server as this script.
require_once('Services/Zencoder.php');

//Catch notification
$notification =$zencoder->notifications->parseIncoming();
//Initialize the Services_Zencoder class
$zencoder =new Services_Zencoder('93h630j1dsyshjef620qlkavnmzui3');

// Check output/job state
if($notification->job->outputs[0]->state == "finished") {
echo "w00t!\n";
// Catch notification
$notification = $zencoder->notifications->parseIncoming();

// If you're encoding to multiple outputs and only care when all of the outputs are finished
// you can check if the entire job is finished.
if($notification->job->state == "finished") {
echo "Dubble w00t!";
}
} elseif ($notification->job->outputs[0]->state == "cancelled") {
echo "Cancelled!\n";
} else {
echo "Fail!\n";
echo $notification->job->outputs[0]->error_message."\n";
echo $notification->job->outputs[0]->error_link;
}
// Check output/job state
if($notification->job->outputs[0]->state == "finished") {
echo "w00t!\n";

?>
// If you're encoding to multiple outputs and only care when all of the outputs are finished
// you can check if the entire job is finished.
if($notification->job->state == "finished") {
echo "Dubble w00t!";
}
} elseif ($notification->job->outputs[0]->state == "cancelled") {
echo "Cancelled!\n";
} else {
echo "Fail!\n";
echo $notification->job->outputs[0]->error_message."\n";
echo $notification->job->outputs[0]->error_link;
}

?>
```

### Step 2

In the parameters for an encoding job, add the URL for your script to the notifications array of each output you want to be notified for.
Then submit the job to test if it works.

**You can view the results at:**
<https://app.zencoder.com/notifications>

#### Example
...
"outputs" => array(
array(
"label" => "web",
"notifications" => array("http://example.com.com/encoding/notification.php")
),
array(
"label" => "iPhone",
"notifications" => array("http://example.com.com/encoding/notification.php")
)
)
...

```php
...
"outputs" => array(
array(
"label" => "web",
"notifications" => array("http://example.com.com/encoding/notification.php")
),
array(
"label" => "iPhone",
"notifications" => array("http://example.com.com/encoding/notification.php")
)
)
...
```

### Step 3

Modify the above script to meet your needs.

Your [notifications page](https://app.zencoder.com/notifications) will come in handy.

REPORTS
----------------------
The ZencoderReports class is used to get reports over the zencoder api.
See [reports api doc](https://app.zencoder.com/docs/api/reports) for required/optional parameters.

### Get usage for ALL reports
Create a script to get reports for a specified date range

#### Example
```php

// Make sure this points to a copy of Zencoder.php on the same server as this script.
require_once('Services/Zencoder.php');

// Initialize the Services_Zencoder class
$zencoder = new Services_Zencoder('93h630j1dsyshjef620qlkavnmzui3');

// Get reports
$params = array(
'from' => '2014-02-01',
'to' => '2014-02-28',
)

// 'all' can be replaced by 'vod' or 'live' acccording to entry points in docs
$report = $zencoder->reports->details('all', $params);

// Each reports object should have a 'statistics' and 'total' base element
if ($report->statistics) {
foreach ($report->statistics as $statistic) {
print_r($statistic);
}
print_r($report->total);
} else {
echo "no statistics found";
}

```


VERSIONS
---------

Version 2.2.3 - 2014-07-29 Fixed the versions listed in the user agent and throughout the code
Version 2.2.2 - 2014-07-29 Fixed a bug where api_key was set as api_version in the http connection options
Version 2.2.1 - 2014-07-29 Support setting CURLOPT_CAPATH and CURLOPT_CAINFO on cURL connections.
Version 2.2.0 - 2014-07-24 Removing the bundled CA chain to address expiring intermediate certificate
Version 2.1.1 - 2012-08-02 Fixing issue where jobs index call didn't return jobs as individual objects
Version 2.1.0 - 2012-06-05 Adding support for job-level notifications & merging output with job in notification object
Version 2.0.2 - 2012-01-11 Fixed job creation response object, added documentation to variables
Expand Down
Loading

[8]ページ先頭

©2009-2025 Movatter.jp