Skip to content

Commit e05c195

Browse files
committed
getting metadata
1 parent 0bef20b commit e05c195

File tree

4 files changed

+76
-2
lines changed

4 files changed

+76
-2
lines changed

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,11 @@ client = qencode.client(API_KEY)
2525
client.create()
2626
2727
task = client.create_task()
28-
task.start(TRANSCODING_PROFILEID, VIDO_URL)
28+
task.start(TRANSCODING_PROFILEID, VIDEO_URL)
29+
30+
31+
#getting video metadata:
32+
metadata = client.get_metadata(VIDEO_URL)
2933
3034
````
3135

qencode/client.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from httptools import Http
22
from task import Task
3+
from metadata import Metadata
34

45
class QencodeApiClient(object):
56

@@ -42,4 +43,9 @@ def _get_access_token(self):
4243
else:
4344
self.error = response['error']
4445
self.code = response['error']
45-
self.message = response.get('message')
46+
self.message = response.get('message')
47+
48+
def get_metadata(self, uri):
49+
metadata = Metadata(self.access_token, self.connect)
50+
video_info = metadata.get(uri)
51+
return video_info

qencode/metadata.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
from task import *
2+
from qencode import QencodeTaskException
3+
import urllib2
4+
5+
class Metadata(Task):
6+
7+
def get(self, uri):
8+
params = """
9+
{"query": {
10+
"source": "%s",
11+
"format": [ {"output": "metadata", "metadata_version": "4.1.5"} ]
12+
}
13+
}
14+
""" % uri
15+
self.custom_start(params)
16+
while True:
17+
status = self.status()
18+
# print status
19+
# print json.dumps(status, indent=2, sort_keys=True)
20+
if status['error'] or status['status'] == 'completed':
21+
break
22+
time.sleep(5)
23+
24+
if self.error:
25+
raise QencodeTaskException(self.message)
26+
27+
url = None
28+
if len(status['videos']) > 0:
29+
url = status['videos'][0]['url']
30+
elif len(status['audios']) > 0:
31+
url = status['audios'][0]['url']
32+
33+
if url is None:
34+
raise QencodeTaskException('No metadata URL found in status response')
35+
36+
data = urllib2.urlopen(url).read()
37+
38+
return data
39+
40+

sample-code/metadata.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/usr/bin/python
2+
# -*- coding: utf-8 -*-
3+
4+
import sys
5+
import os.path
6+
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir)))
7+
import qencode
8+
from qencode import QencodeClientException
9+
10+
#replace with your API KEY (can be found in your Project settings on Qencode portal)
11+
API_KEY = 'your-api-qencode-key'
12+
VIDEO_URL = 'https://nyc3.s3.qencode.com/qencode/bbb_30s.mp4'
13+
14+
client = qencode.client(API_KEY)
15+
if client.error:
16+
raise QencodeClientException(client.message)
17+
18+
print 'The client created. Expire date: %s' % client.expire
19+
20+
metadata = client.get_metadata(VIDEO_URL)
21+
print('Metadata: ' + metadata)
22+
23+
24+

0 commit comments

Comments
 (0)