def createEntry(self): entry = KalturaMediaEntry() entry.mediaType = KalturaMediaType.VIDEO entry.name = self.uniqid('test_') entry.description = self.uniqid('test ') entry.tags = self.uniqueTag entry = self.client.media.add(entry) return entry
def _AdvancedMultiRequestExample(self): # this is a separate, local client - not 'self.client' client = KalturaClient( self.config) # matches line 154 in PythonTester.py client.startMultiRequest() from KalturaClient.Plugins.Core import KalturaMixEntry from KalturaClient.Plugins.Core import KalturaEditorType # Request 1 ks = client.session.start(ADMIN_SECRET, USER_NAME, KalturaSessionType.ADMIN, PARTNER_ID, 86400, "") # for the current multi request, the result of the first call will be # used as the ks for next calls client.setKs(ks) mixEntry = KalturaMixEntry() mixEntry.setName(".Net Mix %s" % (testString,)) mixEntry.setEditorType(KalturaEditorType.SIMPLE) # Request 2 mixEntry = client.mixing.add(mixEntry) # Request 3 ulFile = getTestFile('DemoVideo.flv') uploadTokenId = client.media.upload(ulFile) mediaEntry = KalturaMediaEntry() mediaEntry.setName("Media Entry For Mix %s" % (testString,)) mediaEntry.setMediaType(KalturaMediaType.VIDEO) # Request 4 mediaEntry = client.media.addFromUploadedFile( mediaEntry, uploadTokenId) # Request 5 client.mixing.appendMediaEntry(mixEntry.id, mediaEntry.id) response = client.doMultiRequest() for subResponse in response: if isinstance(subResponse, KalturaException): self.fail("Error occurred: " + subResponse.message) # when accessing the response object we will use an index and not the # response number (response number - 1) assert(isinstance(response[1], KalturaMixEntry)) mixEntry = response[1] print("The new mix entry id is: {}".format(mixEntry.id))
def __init__(self, context): self.mediaEntry = KalturaMediaEntry() directlyProvides(self.mediaEntry, IKalturaMediaEntry) self.mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) self.mediaEntry.setReferenceId(context.UID()) self.mediaEntry.setName(context.title) #set Description self.mediaEntry.setDescription(context.description) #Set Tags #make a comma delimited string, and pass that in. tags = ','.join([t for t in context.tags if t]) self.mediaEntry.setTags(tags)
def test_utf8_tags(self): mediaEntry = KalturaMediaEntry() mediaEntry.setName('pytest.MediaTests.test_UTF8_tags') mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry.setTags(self.test_unicode) #this will throw an exception if fail. mediaEntry = self.client.media.addFromUploadedFile( mediaEntry, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry.getId())
def test_addmedia(self): ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry = KalturaMediaEntry() mediaEntry.setName("Media Entry Using Python Client ver %s" % (API_VERSION,)) mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) mediaEntry = self.client.media.addFromUploadedFile(mediaEntry, uploadTokenId) # serve DATA_ENTRY_CONTENT = 'bla bla bla' dataEntry = KalturaDataEntry() dataEntry.setName('test data entry') dataEntry.setDataContent(DATA_ENTRY_CONTENT) addedDataEntry = self.client.data.add(dataEntry) serveUrl = self.client.data.serve(addedDataEntry.id) f = urllib.urlopen(serveUrl) assert(DATA_ENTRY_CONTENT == f.read())
def _createKobj(self): """Return kaltura media entry that represents this object in plone This will not create the Media Entry on remote. This can be compared to self.KalturaObject, which is the object we last saw from remote """ mediaEntry = API_KalturaMediaEntry() mediaEntry.setMediaType(self.KalturaMediaType) mediaEntry.setReferenceId(self.UID()) for field_descr in self.fieldmap: #get value from plone object getter = getattr(self, field_descr['pgetter']) val = getter() #set value on Kaltura Object setter = getattr(mediaEntry, field_descr['ksetter']) setter(val) return mediaEntry
def _createKobj(self): """Return kaltura media entry that represents this object in plone This will not create the Media Entry on remote. This can be compared to self.KalturaObject, which is the object we last saw from remote """ mediaEntry = API_KalturaMediaEntry() mediaEntry.setMediaType(self.KalturaMediaType) mediaEntry.setReferenceId(self.UID()) for field_descr in self.fieldmap: # get value from plone object getter = getattr(self, field_descr["pgetter"]) val = getter() # set value on Kaltura Object setter = getattr(mediaEntry, field_descr["ksetter"]) setter(val) return mediaEntry
def test_utf8_tags(self): mediaEntry = KalturaMediaEntry() mediaEntry.setName('pytest.MediaTests.test_UTF8_tags') mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry.setTags(self.test_unicode) #this will throw an exception if fail. mediaEntry = self.client.media.addFromUploadedFile(mediaEntry, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry.getId())
def change_mediaentry_objects(client, filename, newdomain, subdomains): """ change mediaEntry objects to new domain """ with open(filename, "r") as csvfile: logging.debug("parsing " + filename) line_count = file_len(filename) change_data = reader(csvfile) for user in track(change_data, total=line_count, description="Updating mediaEntry objects"): logging.debug(user) new_id = exchange_domain(user[0], newdomain, subdomains) for media_entry in user[1:]: if media_entry == "": continue update_body = KalturaMediaEntry() update_body.userId = new_id try: client.media.update(media_entry, update_body) except Exception as error: logging.error("error: ", exc_info=error)
class Kaltura_VideoMediaEntryProvider(object): def __init__(self, context): self.mediaEntry = KalturaMediaEntry() directlyProvides(self.mediaEntry, IKalturaMediaEntry) self.mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) self.mediaEntry.setReferenceId(context.UID()) self.mediaEntry.setName(context.title) #set Description self.mediaEntry.setDescription(context.description) #Set Tags #make a comma delimited string, and pass that in. tags = ','.join([t for t in context.tags if t]) self.mediaEntry.setTags(tags) #Don't set categories - those are handled separately. def getEntry(self): return self.mediaEntry
def test_utf8_name(self): test_unicode = '\u03dd\xf5\xf6' #an odd representation of the word 'FOO' mediaEntry = KalturaMediaEntry() mediaEntry.setName('pytest.MediaTests.test_UTF8_name'+test_unicode) mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) #this will throw an exception if fail. mediaEntry = self.client.media.addFromUploadedFile(mediaEntry, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry.getId())
def kupload(FileObject, mediaEntry=None): """Provide an ATCTFileContent based object Upload attached contents to Kaltura Currently Treats all objects as 'videos' - this should change when other kaltura media types are implemented. If MediaEntry is provided, the File is """ #this check can be done better if not hasattr(FileObject, 'get_data'): print "nothing to upload to kaltura from object %s" % (str(FileObject),) return 1; #XXX Configure Temporary Directory and name better #XXX Turn into a file stream from context.get_data to avoid write to file... tempfh = open('/tmp/tempfile', 'wr') tempfh.write(FileObject.get_data()) tempfh.close() #XXX Not A good idea if we plan on not using the ZODB name = FileObject.Title() ProviderId = FileObject.UID() (client, session) = kconnect() if mediaEntry is None: #create an entry mediaEntry = KalturaMediaEntry() mediaEntry.setName(name) mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) mediaEntry.searchProviderId = ProviderId mediaEntry.setReferenceId = ProviderId uploadTokenId = client.media.upload(file('/tmp/tempfile', 'rb')) #del the temp file os.remove('/tmp/tempfile') mediaEntry = client.media.addFromUploadedFile(mediaEntry, uploadTokenId) KalturaLoggerInstance.log("uploaded. MediaEntry %s" % (mediaEntry.__repr__())) return mediaEntry
def test_list_utf8_search(self): """Get a list of videos based on a tag search containing unicode""" mediaEntry = KalturaMediaEntry() mediaEntry.setName('pytest.MediaTests.test_UTF8_tags') mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry.setTags(self.test_unicode) mediaEntry = self.client.media.addFromUploadedFile(mediaEntry, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry.getId()) self.readyWait(mediaEntry.getId()) #find it! kfilter = KalturaMediaEntryFilter() kfilter.setTagsLike(self.test_unicode) result = self.client.media.list(filter=kfilter) self.assertEqual(1, len(result.objects), msg="Did not get expected number of objects back from result") mediaResult = result.objects[0] self.assertEqual(mediaEntry.getId(), mediaResult.getId(), msg="Did not get expected media object from result")
def test_createRemote(self): mediaEntry = KalturaMediaEntry() mediaEntry.setName('pytest.MediaTests.test_createRemote') mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry = self.client.media.addFromUploadedFile(mediaEntry, uploadTokenId) self.assertIsInstance(mediaEntry.getId(), str) #cleanup self.client.media.delete(mediaEntry.id)
def test_utf8_name(self): test_unicode = u'\u03dd\xf5\xf6' #an odd representation of the word 'FOO' mediaEntry = KalturaMediaEntry() mediaEntry.setName(u'pytest.MediaTests.test_UTF8_name'+test_unicode) mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) #this will throw an exception if fail. mediaEntry = self.client.media.addFromUploadedFile(mediaEntry, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry.getId())
def _AdvancedMultiRequestExample(self): # this is a separate, local client - not 'self.client' client = KalturaClient( self.config) # matches line 154 in PythonTester.py client.startMultiRequest() from KalturaClient.Plugins.Core import KalturaMixEntry from KalturaClient.Plugins.Core import KalturaEditorType # Request 1 ks = client.session.start(ADMIN_SECRET, USER_NAME, KalturaSessionType.ADMIN, PARTNER_ID, 86400, "") # for the current multi request, the result of the first call will be # used as the ks for next calls client.setKs(ks) mixEntry = KalturaMixEntry() mixEntry.setName(".Net Mix %s" % (testString, )) mixEntry.setEditorType(KalturaEditorType.SIMPLE) # Request 2 mixEntry = client.mixing.add(mixEntry) # Request 3 ulFile = getTestFile('DemoVideo.flv') uploadTokenId = client.media.upload(ulFile) mediaEntry = KalturaMediaEntry() mediaEntry.setName("Media Entry For Mix %s" % (testString, )) mediaEntry.setMediaType(KalturaMediaType.VIDEO) # Request 4 mediaEntry = client.media.addFromUploadedFile(mediaEntry, uploadTokenId) # Request 5 client.mixing.appendMediaEntry(mixEntry.id, mediaEntry.id) response = client.doMultiRequest() for subResponse in response: if isinstance(subResponse, KalturaException): self.fail("Error occurred: " + subResponse.message) # when accessing the response object we will use an index and not the # response number (response number - 1) assert (isinstance(response[1], KalturaMixEntry)) mixEntry = response[1] print("The new mix entry id is: {}".format(mixEntry.id))
def test_addFromUploadedFile(self): mediaEntry = KalturaMediaEntry() mediaEntry.setName('pytest.MediaTests.test_addFromUploadedFile') mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry = self.client.media.addFromUploadedFile(mediaEntry, uploadTokenId) self.assertIsInstance(mediaEntry.getId(), unicode) #cleanup self.client.media.delete(mediaEntry.id)
def test_addStaticToExistingEmpty(self): from KalturaClient.Plugins.Core import KalturaMediaEntry, KalturaMediaType referenceId = 'pytest.PlaylistTests.test_addStaticToExistingEmpty' #create empty playlist on server kplaylist = KalturaPlaylist() kplaylist.setName(referenceId) kplaylist.setReferenceId(referenceId) kplaylist.setPlaylistType( KalturaPlaylistType(KalturaPlaylistType.STATIC_LIST)) kplaylist = self.client.playlist.add(kplaylist) self.addCleanup(self.client.playlist.delete, kplaylist.getId()) playlistId = kplaylist.getId() #now, add some media mediaEntry = KalturaMediaEntry() mediaEntry.setName(referenceId) mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry = self.client.media.addFromUploadedFile( mediaEntry, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry.getId()) #add to (update) existing playlist newplaylist = KalturaPlaylist() newplaylist.setReferenceId(referenceId) playlistContent = u','.join([mediaEntry.getId()]) newplaylist.setPlaylistContent(playlistContent) self.client.playlist.update(playlistId, newplaylist) #check it. resultPlaylist = self.client.playlist.get(playlistId) self.assertEqual(playlistContent, resultPlaylist.getPlaylistContent())
def test_addStaticToExistingEmpty(self): referenceId = 'pytest.PlaylistTests.test_addStaticToExistingEmpty' # create empty playlist on server kplaylist = KalturaPlaylist() kplaylist.setName(referenceId) kplaylist.setReferenceId(referenceId) kplaylist.setPlaylistType( KalturaPlaylistType(KalturaPlaylistType.STATIC_LIST)) kplaylist = self.client.playlist.add(kplaylist) self.addCleanup(self.client.playlist.delete, kplaylist.getId()) playlistId = kplaylist.getId() # now, add some media mediaEntry = KalturaMediaEntry() mediaEntry.setName(referenceId) mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry = self.client.media.addFromUploadedFile( mediaEntry, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry.getId()) # add to (update) existing playlist newplaylist = KalturaPlaylist() newplaylist.setReferenceId(referenceId) playlistContent = u','.join([mediaEntry.getId()]) newplaylist.setPlaylistContent(playlistContent) self.client.playlist.update(playlistId, newplaylist) # check it. resultPlaylist = self.client.playlist.get(playlistId) self.assertEqual(playlistContent, resultPlaylist.getPlaylistContent())
def test_addmedia(self): ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry = KalturaMediaEntry() mediaEntry.setName("Media Entry Using Python Client ver %s" % (API_VERSION, )) mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) mediaEntry = self.client.media.addFromUploadedFile( mediaEntry, uploadTokenId) # serve DATA_ENTRY_CONTENT = 'bla bla bla' dataEntry = KalturaDataEntry() dataEntry.setName('test data entry') dataEntry.setDataContent(DATA_ENTRY_CONTENT) addedDataEntry = self.client.data.add(dataEntry) serveUrl = self.client.data.serve(addedDataEntry.id) f = urllib.urlopen(serveUrl) assert (DATA_ENTRY_CONTENT == f.read())
def testTwoTags(self): """Places 3 videos on the server: one with two tags: 'tag1' and 'tag2' one with the tag 'tag1' one with the tag 'tag2' the kalutra object with two tags is provided to 'getRelated' we expect to get all three objects back from getRelated """ #MediaEntry1 mediaEntry = KalturaMediaEntry() mediaEntry.setName('rfa.kaltura.GetRelatedTests.testTwoTags1') mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry.setTags(u'tag1 tag2') mediaEntry1 = self.client.media.addFromUploadedFile(mediaEntry, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry1.getId()) #MediaEntry2 mediaEntry = KalturaMediaEntry() mediaEntry.setName('rfa.kaltura.GetRelatedTests.testTwoTags2') mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry.setTags(u'tag1') mediaEntry2 = self.client.media.addFromUploadedFile(mediaEntry, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry2.getId()) #MediaEntry3 mediaEntry = KalturaMediaEntry() mediaEntry.setName('rfa.kaltura.GetRelatedTests.testTwoTags3') mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry.setTags(u'tag2') mediaEntry3 = self.client.media.addFromUploadedFile(mediaEntry, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry3.getId()) self.readyWait(mediaEntry1.getId()) self.readyWait(mediaEntry2.getId()) self.readyWait(mediaEntry3.getId()) #do it. results = kutils.getRelated(mediaEntry1) self.assertEqual(3, len(results), "Did not get expected # of objects back from kutils.getRelated()")
def test_updateContent(self): mediaEntry = KalturaMediaEntry() mediaEntry.setName('pytest.MediaTests.test_updateContent') mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry = self.client.media.addFromUploadedFile( mediaEntry, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry.getId()) self.readyWait(mediaEntry.getId()) #now, change the content on the mediaEntry to another video file token = KalturaUploadToken() token = self.client.uploadToken.add(token) self.addCleanup(self.client.uploadToken.delete, token.getId()) ulFile = getTestFile('countdown.mp4') token = self.client.uploadToken.upload(token.getId(), ulFile) #create a resource resource = KalturaUploadedFileTokenResource() resource.setToken(token.getId()) #DO THE TEST newMediaEntry = self.client.media.updateContent( mediaEntry.getId(), resource) #must approve it... newMediaEntry = self.client.media.approveReplace(newMediaEntry.getId()) self.readyWait(newMediaEntry.getId()) #make sure everything but content is the same self.assertEqual(mediaEntry.getId(), newMediaEntry.getId()) self.assertEqual(mediaEntry.getName(), newMediaEntry.getName()) self.assertNotEqual(mediaEntry.getDuration(), newMediaEntry.getDuration())
def test_list_utf8_search(self): """Get a list of videos based on a tag search containing unicode""" mediaEntry = KalturaMediaEntry() mediaEntry.setName('pytest.MediaTests.test_UTF8_tags') mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry.setTags(self.test_unicode) mediaEntry = self.client.media.addFromUploadedFile( mediaEntry, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry.getId()) self.readyWait(mediaEntry.getId()) #find it! kfilter = KalturaMediaEntryFilter() kfilter.setTagsLike(self.test_unicode) result = self.client.media.list(filter=kfilter) self.assertEqual( 1, len(result.objects), msg="Did not get expected number of objects back from result") mediaResult = result.objects[0] self.assertEqual(mediaEntry.getId(), mediaResult.getId(), msg="Did not get expected media object from result")
def test_updateStaticContent(self): from KalturaClient.Plugins.Core import KalturaMediaEntry, KalturaMediaType mediaEntry1 = KalturaMediaEntry() mediaEntry1.setName('pytest.PlaylistTests.test_updateStaticContent1') mediaEntry1.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry1 = self.client.media.addFromUploadedFile(mediaEntry1, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry1.getId()) mediaEntry2 = KalturaMediaEntry() mediaEntry2.setName('pytest.PlaylistTests.test_updateStaticContent2') mediaEntry2.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry2 = self.client.media.addFromUploadedFile(mediaEntry2, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry2.getId()) #playlistContent is simply a comma separated string of id's ? playlistContent = u','.join([mediaEntry1.getId(), mediaEntry2.getId()]) kplaylist = KalturaPlaylist() kplaylist.setName('pytest.PlaylistTests.test_updateStaticContent') kplaylist.setPlaylistType(KalturaPlaylistType(KalturaPlaylistType.STATIC_LIST)) kplaylist.setPlaylistContent(playlistContent) kplaylist = self.client.playlist.add(kplaylist) self.addCleanup(self.client.playlist.delete, kplaylist.getId()) #fetch the playlist from server and test it's content. resultPlaylist = self.client.playlist.get(kplaylist.getId()) self.assertEqual(resultPlaylist.playlistContent, playlistContent)
def test_updateStaticContent(self): from KalturaClient.Plugins.Core import KalturaMediaEntry, KalturaMediaType mediaEntry1 = KalturaMediaEntry() mediaEntry1.setName('pytest.PlaylistTests.test_updateStaticContent1') mediaEntry1.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry1 = self.client.media.addFromUploadedFile( mediaEntry1, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry1.getId()) mediaEntry2 = KalturaMediaEntry() mediaEntry2.setName('pytest.PlaylistTests.test_updateStaticContent2') mediaEntry2.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry2 = self.client.media.addFromUploadedFile( mediaEntry2, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry2.getId()) #playlistContent is simply a comma separated string of id's ? playlistContent = u','.join([mediaEntry1.getId(), mediaEntry2.getId()]) kplaylist = KalturaPlaylist() kplaylist.setName('pytest.PlaylistTests.test_updateStaticContent') kplaylist.setPlaylistType( KalturaPlaylistType(KalturaPlaylistType.STATIC_LIST)) kplaylist.setPlaylistContent(playlistContent) kplaylist = self.client.playlist.add(kplaylist) self.addCleanup(self.client.playlist.delete, kplaylist.getId()) #fetch the playlist from server and test it's content. resultPlaylist = self.client.playlist.get(kplaylist.getId()) self.assertEqual(resultPlaylist.playlistContent, playlistContent)
def test_createAncestorCategoryRule(self): from KalturaClient.Plugins.Core import KalturaMediaEntry, KalturaMediaType from KalturaClient.Plugins.Core import KalturaPlaylistFilter from KalturaClient.Plugins.Core import KalturaCategory referenceId = 'pytest.DynamicPlaylistTests.test_createAncestorCategoryRule' #create category entry hierarchy topCategory = KalturaCategory() topCategory.setName("TopCategory") topCategory = self.client.category.add(topCategory) self.addCleanup(self.client.category.delete, topCategory.getId()) subCategory = KalturaCategory() subCategory.setName("SubCategory") subCategory.setParentId(topCategory.getId()) subCategory = self.client.category.add(subCategory) self.addCleanup(self.client.category.delete, subCategory.getId()) #create a video, and assign it to subCategory. mediaEntry = KalturaMediaEntry() mediaEntry.setName(referenceId) mediaEntry.setReferenceId(referenceId) mediaEntry.setCategoriesIds(subCategory.getId()) mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry = self.client.media.addFromUploadedFile( mediaEntry, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry.getId()) #create a playlist kplaylist = KalturaPlaylist() kplaylist.setName(referenceId) kplaylist.setPlaylistType( KalturaPlaylistType(KalturaPlaylistType.DYNAMIC)) kplaylist.setTotalResults(10) kplaylist.setReferenceId(referenceId) #Create A Filter - use Top Level Category kFilter = KalturaPlaylistFilter() kFilter.setCategoryAncestorIdIn(topCategory.getId()) kplaylist.setFilters([kFilter]) kplaylist = self.client.playlist.add(kplaylist) self.addCleanup(self.client.playlist.delete, kplaylist.getId()) print "Waiting for Media Entry to be 'Ready'" sleeptime = 5 mediaEntry = self.client.media.get(mediaEntry.getId()) while mediaEntry.getStatus().getValue() != '2': print "media entry status is %s " % ( mediaEntry.getStatus().getValue()) time.sleep(sleeptime) mediaEntry = self.client.media.get(mediaEntry.getId()) results = self.client.playlist.execute(kplaylist.getId(), kplaylist) self.assertEqual(len(results), 1) self.assertEqual(results[0].getName(), referenceId)
def kcreateVideo(context): """given a plone content-type of kalturavideo, create a video entry on Kaltura The mediaEntry ReferenceId is set to the UID of the plone object to tie them together """ mediaEntry = KalturaMediaEntry() mediaEntry.setName(context.Title()) mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) mediaEntry.searchProviderId = context.UID() #XXX Is this correct? We assign this to the file UID stored in plone. #kaltura referenceId == plone UID mediaEntry.setReferenceId(context.UID()) if len(context.getCategories()): mediaEntry.setCategoriesIds(','.join([c for c in context.getCategories() if c])) if len(context.getTags()): mediaEntry.setTags(','.join([t for t in context.getTags() if t])) return mediaEntry
def test_createAncestorCategoryRule(self): from KalturaClient.Plugins.Core import KalturaMediaEntry, KalturaMediaType from KalturaClient.Plugins.Core import KalturaPlaylistFilter from KalturaClient.Plugins.Core import KalturaCategory referenceId = 'pytest.DynamicPlaylistTests.test_createAncestorCategoryRule' #create category entry hierarchy topCategory = KalturaCategory() topCategory.setName('TopCategory_' + str(time.time())) topCategory = self.client.category.add(topCategory) self.addCleanup(self.client.category.delete, topCategory.getId()) subCategory = KalturaCategory() subCategory.setName("SubCategory" + str(time.time())) subCategory.setParentId(topCategory.getId()) subCategory = self.client.category.add(subCategory) self.addCleanup(self.client.category.delete, subCategory.getId()) #create a video, and assign it to subCategory. mediaEntry = KalturaMediaEntry() mediaEntry.setName(referenceId) mediaEntry.setReferenceId(referenceId) mediaEntry.setCategoriesIds(subCategory.getId()) mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry = self.client.media.addFromUploadedFile(mediaEntry, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry.getId()) #create a playlist kplaylist = KalturaPlaylist() kplaylist.setName(referenceId) kplaylist.setPlaylistType(KalturaPlaylistType(KalturaPlaylistType.DYNAMIC)) kplaylist.setTotalResults(10) kplaylist.setReferenceId(referenceId) #Create A Filter - use Top Level Category kFilter = KalturaPlaylistFilter() kFilter.setCategoryAncestorIdIn(topCategory.getId()) kplaylist.setFilters([kFilter]) kplaylist = self.client.playlist.add(kplaylist) self.addCleanup(self.client.playlist.delete, kplaylist.getId()) print "Waiting for Media Entry to be 'Ready'" sleeptime=5 mediaEntry = self.client.media.get(mediaEntry.getId()) while mediaEntry.getStatus().getValue() != '2': print "media entry status is %s " % (mediaEntry.getStatus().getValue()) time.sleep(sleeptime) mediaEntry = self.client.media.get(mediaEntry.getId()) results = self.client.playlist.execute(kplaylist.getId(), kplaylist) self.assertEqual(len(results), 1) self.assertEqual(results[0].getName(), referenceId)
def test_updateContent(self): mediaEntry = KalturaMediaEntry() mediaEntry.setName('pytest.MediaTests.test_updateContent') mediaEntry.setMediaType(KalturaMediaType(KalturaMediaType.VIDEO)) ulFile = getTestFile('DemoVideo.flv') uploadTokenId = self.client.media.upload(ulFile) mediaEntry = self.client.media.addFromUploadedFile(mediaEntry, uploadTokenId) self.addCleanup(self.client.media.delete, mediaEntry.getId()) self.readyWait(mediaEntry.getId()) #now, change the content on the mediaEntry to another video file token = KalturaUploadToken() token = self.client.uploadToken.add(token) self.addCleanup(self.client.uploadToken.delete, token.getId()) ulFile = getTestFile('countdown.mp4') token = self.client.uploadToken.upload(token.getId(), ulFile) #create a resource resource = KalturaUploadedFileTokenResource() resource.setToken(token.getId()) #DO THE TEST newMediaEntry = self.client.media.updateContent(mediaEntry.getId(), resource) #must approve it... newMediaEntry = self.client.media.approveReplace(newMediaEntry.getId()) self.readyWait(newMediaEntry.getId()) #make sure everything but content is the same self.assertEqual(mediaEntry.getId(), newMediaEntry.getId()) self.assertEqual(mediaEntry.getName(), newMediaEntry.getName()) self.assertNotEqual(mediaEntry.getDuration(), newMediaEntry.getDuration())