def test_create_custom_tag(self): sample_manifest = self._get_sample_manifest() manifest_resource_response = self.bitmovin.manifests.HLS.create( sample_manifest) self.assertIsNotNone(manifest_resource_response) self.assertIsNotNone(manifest_resource_response.resource) self.assertIsNotNone(manifest_resource_response.resource.id) self._compare_manifests(sample_manifest, manifest_resource_response.resource) sample_audio_media = self._get_sample_audio_media() audio_media_resource_response = self.bitmovin.manifests.HLS.AudioMedia.create( object_=sample_audio_media, manifest_id=manifest_resource_response.resource.id) custom_tag = CustomTag(position_mode=PositionMode.SEGMENT, segment=1, data="#X-CUSTOM-TAG") custom_tag_resource_response = self.bitmovin.manifests.HLS.AudioMedia.CustomTag.create( object_=custom_tag, manifest_id=manifest_resource_response.resource.id, media_id=audio_media_resource_response.resource.id) self.assertIsNotNone(custom_tag_resource_response) self.assertIsNotNone(custom_tag_resource_response.resource) self.assertIsNotNone(custom_tag_resource_response.resource.id) self._compare_custom_tags(first=custom_tag, second=custom_tag_resource_response.resource)
def insert_discontinuity(stream_type, manifest_id, stream_or_media_id, keyframe): discontinuity_tag = CustomTag(data="#EXT-X-DISCONTINUITY", position_mode=PositionMode.KEYFRAME, keyframe_id=keyframe.id) if stream_type == 'audio': bitmovin.manifests.HLS.AudioMedia.CustomTag.create( object_=discontinuity_tag, manifest_id=manifest_id, media_id=stream_or_media_id) if stream_type == 'video': bitmovin.manifests.HLS.VariantStream.CustomTag.create( object_=discontinuity_tag, manifest_id=manifest_id, stream_id=stream_or_media_id)
def test_delete_custom_tag(self): sample_manifest = self._get_sample_manifest() manifest_resource_response = self.bitmovin.manifests.HLS.create(sample_manifest) self.assertIsNotNone(manifest_resource_response) self.assertIsNotNone(manifest_resource_response.resource) self.assertIsNotNone(manifest_resource_response.resource.id) self._compare_manifests(sample_manifest, manifest_resource_response.resource) sample_variant_stream = self._get_sample_variant_stream() variant_stream_resource_response = self.bitmovin.manifests.HLS.VariantStream.create( object_=sample_variant_stream, manifest_id=manifest_resource_response.resource.id) custom_tag = CustomTag(position_mode=PositionMode.SEGMENT, segment=1, data="#X-CUSTOM-TAG") custom_tag_resource_response = self.bitmovin.manifests.HLS.VariantStream.CustomTag.create( object_=custom_tag, manifest_id=manifest_resource_response.resource.id, stream_id=variant_stream_resource_response.resource.id ) self.assertIsNotNone(custom_tag_resource_response) self.assertIsNotNone(custom_tag_resource_response.resource) self.assertIsNotNone(custom_tag_resource_response.resource.id) self._compare_custom_tags(custom_tag, custom_tag_resource_response.resource) deleted_custom_tag_resource_response = self.bitmovin.manifests.HLS.VariantStream.CustomTag.delete( manifest_id=manifest_resource_response.resource.id, stream_id=variant_stream_resource_response.resource.id, custom_tag_id=custom_tag_resource_response.resource.id ) self.assertIsNotNone(deleted_custom_tag_resource_response) self.assertIsNotNone(deleted_custom_tag_resource_response.resource) self.assertIsNotNone(deleted_custom_tag_resource_response.resource.id) self.assertEqual(custom_tag_resource_response.resource.id, deleted_custom_tag_resource_response.resource.id) with self.assertRaises(BitmovinApiError): self.bitmovin.manifests.HLS.VariantStream.CustomTag.retrieve( manifest_id=manifest_resource_response.resource.id, stream_id=variant_stream_resource_response.resource.id, custom_tag_id=custom_tag_resource_response.resource.id )
def test_delete_custom_tag(self): sample_manifest = self._get_sample_manifest() manifest_resource_response = self.bitmovin.manifests.HLS.create( sample_manifest) self.assertIsNotNone(manifest_resource_response) self.assertIsNotNone(manifest_resource_response.resource) self.assertIsNotNone(manifest_resource_response.resource.id) self._compare_manifests(sample_manifest, manifest_resource_response.resource) sample_audio_media = self._get_sample_audio_media() audio_media_resource_response = self.bitmovin.manifests.HLS.AudioMedia.create( object_=sample_audio_media, manifest_id=manifest_resource_response.resource.id) custom_tag = CustomTag(position_mode=PositionMode.SEGMENT, segment=1, data="#X-CUSTOM-TAG") custom_tag_resource_response = self.bitmovin.manifests.HLS.AudioMedia.CustomTag.create( object_=custom_tag, manifest_id=manifest_resource_response.resource.id, media_id=audio_media_resource_response.resource.id) delete_resource_response = self.bitmovin.manifests.HLS.AudioMedia.CustomTag.delete( manifest_id=manifest_resource_response.resource.id, media_id=audio_media_resource_response.resource.id, custom_tag_id=custom_tag_resource_response.resource.id) self.assertIsNotNone(delete_resource_response) self.assertEqual(delete_resource_response.resource.id, custom_tag_resource_response.resource.id) with self.assertRaises(BitmovinApiError): self.bitmovin.manifests.HLS.AudioMedia.CustomTag.retrieve( manifest_id=manifest_resource_response.resource.id, media_id=audio_media_resource_response.resource.id, custom_tag_id=custom_tag_resource_response.resource.id)
def test_list_custom_tags(self): sample_manifest = self._get_sample_manifest() manifest_resource_response = self.bitmovin.manifests.HLS.create(sample_manifest) self.assertIsNotNone(manifest_resource_response) self.assertIsNotNone(manifest_resource_response.resource) self.assertIsNotNone(manifest_resource_response.resource.id) self._compare_manifests(sample_manifest, manifest_resource_response.resource) sample_variant_stream = self._get_sample_variant_stream() variant_stream_resource_response = self.bitmovin.manifests.HLS.VariantStream.create( object_=sample_variant_stream, manifest_id=manifest_resource_response.resource.id) custom_tag = CustomTag(position_mode=PositionMode.SEGMENT, segment=1, data="#X-CUSTOM-TAG") custom_tag_resource_response = self.bitmovin.manifests.HLS.VariantStream.CustomTag.create( object_=custom_tag, manifest_id=manifest_resource_response.resource.id, stream_id=variant_stream_resource_response.resource.id ) self.assertIsNotNone(custom_tag_resource_response) self.assertIsNotNone(custom_tag_resource_response.resource) self.assertIsNotNone(custom_tag_resource_response.resource.id) self._compare_custom_tags(custom_tag, custom_tag_resource_response.resource) retrieved_custom_tags_resource_response = self.bitmovin.manifests.HLS.VariantStream.CustomTag.list( manifest_id=manifest_resource_response.resource.id, stream_id=variant_stream_resource_response.resource.id, ) self.assertIsNotNone(retrieved_custom_tags_resource_response) self.assertIsNotNone(retrieved_custom_tags_resource_response.resource) self.assertIsInstance(retrieved_custom_tags_resource_response.resource, list) self.assertEqual(len(retrieved_custom_tags_resource_response.resource), 1) self._compare_custom_tags( custom_tag_resource_response.resource, retrieved_custom_tags_resource_response.resource[0] )