このトピックでは、ビデオ透かしモジュールのAPI操作の使用例を示します。 API操作はApsaraVideo VOD SDK for Pythonにカプセル化されています。 API操作を呼び出して、透かしを作成、変更、削除、およびクエリできます。 透かしをデフォルトの透かしとして指定することもできます。
クライアントを初期化
SDKを使用する前に、クライアントを初期化してください。 詳細については、「初期化」をご参照ください。
透かしを作成する
AddWatermark操作を呼び出して、ウォーターマークを作成できます。
この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「AddWatermark」をご参照ください。 例:
アップロードURLと資格情報を取得する方法の詳細については、「CreateUploadAttachedMedia」をご参照ください。
Object Storage Service (OSS) に透かしファイルをアップロードする方法の詳細については、「OSSアップロード」をご参照ください。
AddWatermarkRequestをインポート
def add_watermark(clt):
request = AddWatermarkRequest.AddWatermarkRequest()
request.set_Name('watermark-sample')
# 画像透かしを作成する場合は、透かしファイルのURLを指定する必要があります。 透かしファイルを保存するOSSバケットは、ビデオが保存されているリージョンと同じリージョンに存在する必要があります。 たとえば、ビデオが中国 (上海) リージョンに保存されている場合、同じリージョンに保存されている透かしファイルのみを使用できます。
request.set_FileUrl('http:// example-bucket-**** .oss-cn-shanghai.aliyuncs.com/watermark/test.png')
# テキスト透かしの設定方法の例:
request.set_Type('Text')
# テキスト透かしの内容、フォント、フォントサイズ、色、透明度、その他の設定を指定します。
watermarkConfig = {'Content': 'watermark Text' 、'FontName': 'SimSun' 、'FontSize': 25、'FontColor': 'Black' 、
'FontAlpha': 0.2、'BorderColor ': 'White' 、'BorderWidth': 1、'Top': 20、'Left': 15}
request.set_WatermarkConfig(json.dumps(watermarkConfig))
"""
# 画像の透かしを設定する方法の例:
request.set_Type('Image')
# 透かし表示の開始時間と期間。
timeline = {'Start': 2, 'Duration': 'ToEND'}
# テキスト透かしの位置設定。
watermarkConfig = {'Dx': 8, 'Dy': 8, 'Width': 55, 'Height ': 55, 'ReferPos': 'BottomRight', 'Timeline': timeline}
request.set_WatermarkConfig(json.dumps(watermarkConfig))
"""
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception (リクエスト))
リターンレスポンス
トライ:
clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
watermark = add_watermark(clt)
print(json.dumps(watermark, ensure_ascii=False, indent=4))
except Exception as e:
プリント (e)
print(traceback.format_exc())
Modify a watermark
UpdateWatermark操作を呼び出して、透かしを変更できます。
この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「UpdateWatermark」をご参照ください。 例:
この操作では、画像透かしファイルのURLを変更することはできません。 URLを変更する場合は、別の透かしを作成します。
UpdateWatermarkRequestをインポート
def update_watermark(clt):
request = UpdateWatermarkRequest.UpdateWatermarkRequest()
request.set_WatermarkId('<watermarkId>')
request.set_Name('new-watermark-name')
# テキストの透かしを変更する方法の例:
# 透かしに使用するテキスト、フォント、フォントサイズ、フォントの色、透明度など、透かしの設定。
watermarkConfig = {'Content': 'watermark Text' 、'FontName': 'SimSun' 、'FontSize': 25、'FontColor': 'Black' 、
'FontAlpha': 0.2、'BorderColor ': 'White' 、'BorderWidth': 1、'Top': 20、'Left': 15}
request.set_WatermarkConfig(json.dumps(watermarkConfig))
"""
# 画像の透かしを設定する方法の例:
# 透かし表示の開始時間と期間。
timeline = {'Start': 2, 'Duration': 'ToEND'}
# 画像透かしの位置設定。
watermarkConfig = {'Dx': 8, 'Dy': 8, 'Width': 55, 'Height ': 55, 'ReferPos': 'BottomRight', 'Timeline': timeline}
request.set_WatermarkConfig(json.dumps(watermarkConfig))
"""
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception (リクエスト))
リターンレスポンス
トライ:
clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
watermark = update_watermark(clt)
print(json.dumps(watermark, ensure_ascii=False, indent=4))
eとして例外を除いて:
プリント (e)
print(traceback.format_exc())
透かしを削除する
DeleteWatermark操作を呼び出して、透かしを削除できます。
この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「DeleteWatermark」をご参照ください。 例:
DeleteWatermarkRequestをインポート
def delete_watermark(clt):
request = DeleteWatermarkRequest。DeleteWatermarkRequest()
request.set_WatermarkId('<watermarkId>')
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception (リクエスト))
リターンレスポンス
トライ:
clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
res = delete_watermark(clt)
print(json.dumps(res, ensure_ascii=False, indent=4))
eとして例外を除いて:
プリント (e)
print(traceback.format_exc())
透かしの照会
ListWatermark操作を呼び出して、透かしを照会できます。
この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「ListWatermark」をご参照ください。 例:
ListWatermarkRequestをインポート
def list_watermark(clt):
request = ListWatermarkRequest.ListWatermarkRequest()
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception (リクエスト))
リターンレスポンス
トライ:
clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
watermarks = list_watermark(clt)
print(watermarks['WatermarkInfos'])
print(json.dumps(watermarks, ensure_ascii=False, indent=4))
eとして例外を除いて:
プリント (e)
print(traceback.format_exc())
Query a watermark
GetWatermark操作を呼び出して、透かしを照会できます。
For more information about the request and response parameters of this operation, see GetWatermark. 例:
GetWatermarkRequestをインポート
def get_watermark(clt):
request = GetWatermarkRequest.GetWatermarkRequest()
request.set_WatermarkId('<watermarkId>')
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception (リクエスト))
リターンレスポンス
トライ:
clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
watermark = get_watermark(clt)
print(watermark['WatermarkInfo])
print(json.dumps(watermark, ensure_ascii=False, indent=4))
eとして例外を除いて:
プリント (e)
print(traceback.format_exc())
Specify a watermark as the default one
SetDefaultWatermark操作を呼び出して、透かしをデフォルトの透かしとして指定できます。
For more information about the request and response parameters of this operation, see SetDefaultWatermark. 例:
SetDefaultWatermarkRequestをインポート
def set_default_watermark(clt):
request = SetDefaultWatermarkRequest。SetDefaultWatermarkRequest()
request.set_WatermarkId('<watermarkId>')
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception (リクエスト))
return response
try:
clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
res = set_default_watermark(clt)
print(json.dumps(res, ensure_ascii=False, indent=4))
eとして例外を除いて:
プリント (e)
print(traceback.format_exc())