すべてのプロダクト
Search
ドキュメントセンター

:ビデオの透かし

最終更新日:Jun 27, 2022

このトピックでは、ビデオ透かしモジュールのAPI操作の使用例を示します。 API操作はApsaraVideo VOD SDK for Pythonにカプセル化されています。 API操作を呼び出して、透かしを作成、変更、削除、およびクエリできます。 透かしをデフォルトの透かしとして指定することもできます。

クライアントを初期化

SDKを使用する前に、クライアントを初期化してください。 詳細については、「初期化」をご参照ください。

透かしを作成する

AddWatermark操作を呼び出して、ウォーターマークを作成できます。

この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「AddWatermark」をご参照ください。 例:

説明
  • アップロードURLと資格情報を取得する方法の詳細については、「CreateUploadAttachedMedia」をご参照ください。

  • Object Storage Service (OSS) に透かしファイルをアップロードする方法の詳細については、「OSSアップロード」をご参照ください。

aliyunsdkvod.request.v20170321から
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を変更する場合は、別の透かしを作成します。

aliyunsdkvod.request.v20170321から
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」をご参照ください。 例:

aliyunsdkvod.request.v20170321から
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」をご参照ください。 例:

aliyunsdkvod.request.v20170321から
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. 例:

aliyunsdkvod.request.v20170321から
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. 例:

aliyunsdkvod.request.v20170321から
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())