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

Appearance settings

Commit af19067

Browse filesBrowse files
committed
Merge pull request zencoder#23 from zencoder/readme-docs
Update readme docs with usage
2 parents 9b58a61 + 15c747f commit af19067
Copy full SHA for af19067

File tree

1 file changed

+187
-46
lines changed
Filter options

1 file changed

+187
-46
lines changed

‎README.md

Copy file name to clipboard
+187-46Lines changed: 187 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,207 @@
1-
# Zencoder
1+
2+
Zencoder
3+
--------
4+
25
[![Build Status](https://travis-ci.org/zencoder/zencoder-py.png?branch=master)](https://travis-ci.org/zencoder/zencoder-py)
36

4-
A Python module for the [Zencoder](http://zencoder.com) API.
7+
A Python module for interacting with the [Zencoder](http://zencoder.com) API.
8+
9+
### Getting Started
10+
11+
Install from PyPI
12+
13+
$ pip install zencoder
14+
15+
Import zencoder
16+
17+
```python
18+
from zencoder import Zencoder
19+
```
20+
21+
Create an instance of the Zencoder client. This will accept an API key and version. If not API key is set, it will look for a `ZENCODER_API_KEY` environment variable. API version defaults to 'v2'.
22+
23+
# If you want to specify an API key when creating a client
24+
client = Zencoder('API_KEY')
25+
26+
# If you have the environment variable set
27+
client = Zencoder()
28+
29+
## [Jobs](https://app.zencoder.com/docs/api/jobs)
30+
31+
Create a [new job](https://app.zencoder.com/docs/api/jobs/create).
32+
33+
```python
34+
client.job.create('s3://bucket/key.mp4')
35+
client.job.create('s3://bucket/key.mp4',
36+
outputs=[{'label': 'vp8 for the web',
37+
'url': 's3://bucket/key_output.webm'}])
38+
```
39+
40+
This returns a `zencoder.Response` object. The body includes a Job ID, and one or more Output IDs (one for every output file created).
41+
42+
```python
43+
response = client.job.create('s3://bucket/key.mp4')
44+
response.code # 201
45+
response.body['id'] # 12345
46+
```
47+
48+
[List jobs](https://app.zencoder.com/docs/api/jobs/list).
549

6-
## Installation
7-
Install from PyPI using `easy_install` or `pip`.
50+
By default the jobs listing is paginated with 50 jobs per page and sorted by ID in descending order. You can pass two parameters to control the paging: `page` and `per_page`.
851

9-
pip install zencoder
52+
```python
53+
client.job.list(per_page=10)
54+
client.job.list(per_page=10, page=2)
55+
```
56+
57+
Get [details](https://app.zencoder.com/docs/api/jobs/show) about a job.
58+
59+
The number passed to `details` is the ID of a Zencoder job.
60+
61+
```python
62+
client.job.details(1)
63+
```
64+
65+
Get [progress](https://app.zencoder.com/docs/api/jobs/progress) on a job.
66+
67+
The number passed to `progress` is the ID of a Zencoder job.
68+
69+
```python
70+
client.job.progress(1)
71+
```
1072

11-
## Dependencies
12-
`zencoder-py` depends on [requests](http://python-requests.org), and uses the `json` or `simplejson` module.
73+
[Resubmit](https://app.zencoder.com/docs/api/jobs/resubmit) a job
1374

14-
## Usage
75+
The number passed to `resubmit` is the ID of a Zencoder job.
1576

16-
from zencoder import Zencoder
17-
zen = Zencoder('abc123') # enter your api key
77+
```python
78+
client.job.resubmit(1)
79+
```
1880

19-
# creates an encoding job with the defaults
20-
job = zen.job.create('http://input-file/movie.avi')
21-
print job.code
22-
print job.body
23-
print job.body['id']
81+
[Cancel](https://app.zencoder.com/docs/api/jobs/cancel) a job
2482

25-
# get the transcode progress of the first output
26-
progress = zen.output.progress(job.body['outputs'][0]['id'])
27-
print progress.body
83+
The number passed to `cancel` is the ID of a Zencoder job.
2884

85+
```python
86+
client.job.cancel(1)
87+
```
2988

30-
# configure your outputs with dictionaries
31-
iphone = {
32-
'label': 'iPhone',
33-
'url': 's3://output-bucket/output-file-1.mp4',
34-
'width': 480,
35-
'height': 320
36-
}
37-
web = {
38-
'label': 'web',
39-
'url': 's3://output-bucket/output-file.vp8',
40-
'video_codec':, 'vp8'
41-
}
42-
# the outputs kwarg requires an iterable
43-
outputs = (iphone, web)
44-
another_job = zen.job.create(input_url, outputs=outputs)
89+
## [Inputs](https://app.zencoder.com/docs/api/inputs)
4590

46-
**Note:** If you set the `ZENCODER_API_KEY` environment variable to your api key, you don't have to provide it when initializing Zencoder.
91+
Get [details](https://app.zencoder.com/docs/api/inputs/show) about an input.
4792

48-
## Specifying the API Version
49-
Set the version of the Zencoder API you want to use as the `api_version` keyword to the `Zencoder` object (defaults to `v2`):
93+
The number passed to `details` is the ID of a Zencoder job.
5094

5195
```python
52-
# set to version 1: https://app.zencoder.com/api/v1/
53-
zen = Zencoder(api_version='v1')
96+
client.input.details(1)
97+
```
5498

55-
# set to the edge version: https://app.zencoder.com/api/
56-
zen = Zencoder(api_version='edge')
99+
Get [progress](https://app.zencoder.com/docs/api/inputs/progress) for an input.
100+
101+
The number passed to `progress` is the ID of a Zencoder job.
102+
103+
```python
104+
client.input.progress(1)
57105
```
58-
## Documentation
59-
Docs are in progress, and hosted at Read the Docs: http://zencoder.rtfd.org
60106

61-
## Contributors
62-
* [Senko Rasic](http://github.com/senko)
63-
* [Josh Kennedy](http://github.com/kennedyj)
64-
* [Issac Kelly](http://github.com/issackelly)
107+
## [Outputs](https://app.zencoder.com/docs/api/outputs)
108+
109+
Get [details](https://app.zencoder.com/docs/api/outputs/show) about an output.
110+
111+
The number passed to `details` is the ID of a Zencoder job.
112+
113+
```python
114+
client.output.details(1)
115+
```
116+
117+
Get [progress](https://app.zencoder.com/docs/api/outputs/progress) for an output.
118+
119+
The number passed to `progress` is the ID of a Zencoder job.
120+
121+
```python
122+
client.output.progress(1)
123+
```
124+
125+
## [Reports](https://app.zencoder.com/docs/api/reports)
126+
127+
Reports are great for getting usage data for your account. All default to 30 days from yesterday with no [grouping](https://app.zencoder.com/docs/api/encoding/job/grouping), but this can be altered. These will return `422 Unprocessable Entity` if the date format is incorrect or the range is greater than 2 months.
128+
129+
Get [all usage](https://app.zencoder.com/docs/api/reports/all) (Live + VOD).
130+
131+
```python
132+
import datetime
133+
client.report.all()
134+
client.report.all(grouping="foo")
135+
client.report.all(start_date=datetime.date(2011, 10, 30),
136+
end_date=datetime.date(2011, 11, 24))
137+
client.report.all(start_date=datetime.date(2011, 10, 30),
138+
end_date=datetime.date(2011, 11, 24),
139+
grouping="foo")
140+
```
141+
142+
Get [VOD usage](https://app.zencoder.com/docs/api/reports/vod).
143+
144+
```python
145+
import datetime
146+
client.report.vod()
147+
client.report.vod(grouping="foo")
148+
client.report.vod(start_date=datetime.date(2011, 10, 30),
149+
end_date=datetime.date(2011, 11, 24))
150+
client.report.vod(start_date=datetime.date(2011, 10, 30),
151+
end_date=datetime.date(2011, 11, 24),
152+
grouping="foo")
153+
```
154+
155+
Get [Live usage](https://app.zencoder.com/docs/api/reports/live).
156+
157+
```python
158+
import datetime
159+
client.report.live()
160+
client.report.live(grouping="foo")
161+
client.report.live(start_date=datetime.date(2011, 10, 30),
162+
end_date=datetime.date(2011, 11, 24))
163+
client.report.live(start_date=datetime.date(2011, 10, 30),
164+
end_date=datetime.date(2011, 11, 24),
165+
grouping="foo")
166+
```
167+
168+
## [Accounts](https://app.zencoder.com/docs/api/accounts)
169+
170+
Create a [new account](https://app.zencoder.com/docs/api/accounts/create). A unique email address and terms of service are required, but you can also specify a password (and confirmation) along with whether or not you want to subscribe to the Zencoder newsletter. New accounts will be created under the Test (Free) plan.
171+
172+
No API Key is required.
173+
174+
```python
175+
client.account.create('foo@example.com', tos=1)
176+
client.account.create('foo@example.com', tos=1,
177+
options={'password': 'abcd1234',
178+
'affiliate_code': 'foo'})
179+
```
180+
181+
Get [details](https://app.zencoder.com/docs/api/accounts/show) about the current account.
182+
183+
```python
184+
client.account.details()
185+
```
186+
187+
Turn [integration mode](https://app.zencoder.com/docs/api/accounts/integration) on (all jobs are test jobs).
188+
189+
```python
190+
client.account.integration()
191+
```
192+
193+
Turn off integration mode, which means your account is live (and you'll be billed for jobs).
194+
195+
```python
196+
client.account.live()
197+
```
198+
## Tests
199+
200+
The tests use the `mock` library to stub in response data from the API. Run tests individually:
201+
202+
$ python test/test_jobs.py
203+
204+
Or use `nose`:
65205

206+
$ nosetests
66207

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.