import time
import rawsc
import rawsc.service
from rawsc import rats
import rawsc.rats.service
try:
from xml.etree import cElementTree as ElementTree
except ImportError:
try:
import cElementTree as ElementTree
except ImportError:
from elementtree import ElementTree
USER = "XXX"
PWD = "XXX"
SERVER = "rats.enc01.rambla.be"
SRC_FILENAME = "southern_rock_opera.mp4"
TGT_FILENAME = "white_noise.mp4"
LOCAL_FILE = "PATH_TO_LOCAL_SRC_FILE"
LOCAL_TRANSCODINGS_DIR = "PATH_TO_WRITABLE_DIR"
FORMAT_PROFILE = "XXX"
OUTPUT_PROFILE = "XXX"
try:
client = rawsc.rats.service.RatsService(username=USER, password=PWD, server=SERVER)
entry = client.createInput(name = "Bright nuw input profile", description="Retrieve files from my ftp server", base_uri="ftp://fpt.myserver.org/movies/", method="ftp")
print "Created new input profile: %s\n" % entry.id.text
entry.content.params.name.text = "MyFtp input"
new_entry = client.updateInput(entry = entry)
print "Changed name to: %s\n" % new_entry.content.params.name.text
qry = rawsc.Query()
qry["name_has"] = "MyFtp"
feed = client.getInputFeed(query = qry)
print "Retrieved feed of MyFtp input profiles:"
for e in feed.entry:
print "\nEntry URI: " + e.id.text
print "Profile name: " + e.content.params.name.text
client.delete(uri = new_entry.id.text)
print "\nDeleted input profile with ID = %s\n" % new_entry.content.params.id.text
format_entry = client.createFormat(name = "MySimpleMp4", description="Transcode to basic h264 video, aac audio",
category = "formats", container = "mp4", video_codec = "h264", video_fps = "25.0",
video_width = "320", video_bitrate = "256", video_deinterlace = "md", video_passes = "2", video_cq = "0.10",
audio_channel = "2", audio_codec = "aac", audio_bitrate = "64", audio_sample_rate = "22000", audio_passes = "2")
print "Created new format profile: %s\n" % format_entry.id.text
entry.content.params.name.text = "doh"
new_entry = client.updateFormat(entry = entry)
print "Changed name to: %s\n" % new_entry.content.params.name.text
qry = rawsc.Query()
qry["name_has"] = "oh"
feed = client.getFormatFeed(query = qry)
print "Retrieved feed of format profiles whose name contains oh:"
for e in feed.entry:
print "\nEntry URI: " + e.id.text
print "Profile name: " + e.content.params.name.text
client.delete(uri = new_entry.id.text)
print "\nDeleted format profile with ID = %s\n" % new_entry.content.params.id.text
print "\nRetrieving job feed, showing most recent updated job only:\n"
feed = client.getJobFeed()
for e in feed.entry:
print "retrieved job with ID = %s, status = %s" % (e.content.params.id.text, e.content.params.status.text)
if hasattr(e, "reports"):
print "Displaying report parts for job = %s" % e.id.text
for job in e.reports.report.job:
print "Data for %s job (profile = %s, msg = %s):" % (job.action, job.profile, job.msg_attr)
print "msg: %s" % job.msg.text
print "start_time: %s" % job.start_time.text
print "end_time: %s" % job.end_time.text
print "local_uri: %s" % job.local_uri.text
print "src_filesize: %s" % job.src_filesize.text
print "tgt_filesize: %s" % job.tgt_filesize.text
print "public_uri: %s" % job.public_uri.text
print "export_uri: %s" % job.export_uri.text
print "method: %s" % job.method.text
print "\n"
break
except rawsc.service.Error, e:
print "Error Response from server, contents = %s.\n" % str(e)
error_dict = e[0]
print "status code : " + str(error_dict["status"]) + "\n"
if error_dict.has_key("body"):
print "error body : " + error_dict["body"] + "\n"
except rawsc.RawscException, e:
print "RawscException caught, reason = %s.\n" % str(e)
except StandardError, e:
print "StandardError caught, reason = %s.\n" % str(e)
except:
print "unhandled exception caught\n"