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

:ApsaraVideo for Short Video サーバーを統合する

最終更新日:Nov 09, 2025

ApsaraVideo for Short Video サーバーは、ApsaraVideo for Short Video アプリと ApsaraVideo VOD 間のデータ交換、ビジネスロジック処理、および運用データ管理を処理します。このトピックでは、ApsaraVideo for Short Video サーバーを統合する方法について説明します。

前提条件

  • Alibaba Cloud アカウントが作成され、実名検証が完了していること。Alibaba Cloud アカウントを作成するには、Alibaba Cloud 公式 Web サイトにアクセスしてください。詳細については、「Alibaba Cloud アカウントの作成」をご参照ください。

  • Elastic Compute Service (ECS) が有効化され、インスタンスが設定されていること。詳細については、「ECS サービスの有効化と設定」をご参照ください。

  • ECS サーバーに JDK 8 がインストールされていること。

  • ECS サーバーに MySQL 5.7 がインストールされていること。詳細については、「MySQL データベースのインストールと設定」をご参照ください。サービスが公開された後は、ApsaraDB RDS の使用を推奨します。詳細については、「ApsaraDB RDS」をご参照ください。

  • ApsaraVideo VOD が有効化され、必要なテンプレートがコンソールで設定されていること。詳細については、「ApsaraVideo VOD の有効化と設定」をご参照ください。

手順

ソースコードのアップロード

  1. ApsaraVideo for Short Video サーバーと管理コンソールのソースコードをダウンロードします。ダウンロード URL については、「ApsaraVideo for Short Video SDK」をご参照ください。

  2. ソースコードファイルが保存されているサーバーで、次のコマンドを実行してソースコードファイルを ECS サーバーにアップロードします。

    scp <source_code_file> user@<IP_address_of_the_ECS_server>:<upload_path>

    scp ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip user@10.0.0.0:/home/user/workspace/

    ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip はソースコードファイルです。user は ECS サーバーのユーザー名です。10.0.0.0 は ECS サーバーの IP アドレスです。/home/user/workspace/ はアップロードパスです。

    説明

    ソースコードファイル、ECS サーバーのユーザー名、ECS サーバーの IP アドレス、アップロードパスなどのサンプル情報は参考用です。サンプル情報を実際の情報に置き換えてください。

  3. ECS サーバーにログインし、ソースコードファイルを解凍します。

    cd /home/user/workspace

    unzip ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip

    説明

    unzip がインストールされていない場合は、sudo apt install unzip コマンドを実行してインストールしてください。

データベースの初期化と設定

説明

独自の音楽ライブラリを構築できます。

  • 返されるデータのデータ構造は、Alibaba Cloud サービスから音楽リストを取得するために使用されるデータ構造と同じでなければなりません。そうでない場合、リクエストは失敗します。

  • カスタムデータ構造を使用する場合は、デモレイヤーでコードロジックを調整する必要があります。

  1. voddemo という名前のデータベースを作成します。

    cd /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/sql

    mysqladmin -u root -p create voddemo

  2. テーブルと管理者アカウントを作成します。

    mysql -u root -p voddemo < ./appserver_create_table.sql

    説明

    appserver_create_table.sql スクリプトは、テーブルを作成するだけでなく、INSERT 文を使用してコンソール管理者アカウントも作成します。ユーザー名は admin、パスワードは 123456 です。コンソールを統合した後、このアカウントを使用して管理者としてデモコンソールにログインできます。

  3. データベースの大文字と小文字の区別ルールを変更します。

    1. データベースの設定ファイルを編集します。

      sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

    2. I キーを押し、ファイルの末尾に lower_case_table_names=1 を追加します。

    3. Esc キーを押し、:wq! と入力してファイルを保存し、終了します。

    4. データベースを再起動して設定を完了します。

      sudo service mysql restart

  4. データベースアドレスを設定します。

    1. ソースコードの設定ファイルを編集します。

      vim /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties

    2. I キーを押し、ファイルを次のように変更します。

      spring.datasource.url = jdbc:mysql://データベースの IP アドレス (127.0.0.1):3306/データベース名 (voddemo)?useSSL=false&useUnicode=true&characterEncoding=UTF-8
      spring.datasource.username = データベースのログインユーザー名 (例: admin)
      spring.datasource.password = データベースのログインパスワード
      説明
      • データベースとサーバーの両方が ECS インスタンスで実行されている場合は、データベースの IP アドレスを 127.0.0.1 に設定できます。そうでない場合は、データベースが配置されているマシンの IP アドレスを使用してください。

      • 初期化時に作成したデータベースの名前は voddemo です。

    3. Esc キーを押し、:wq! と入力してファイルを保存し、終了します。

RAM ロールの設定

  1. 一般的な手順は、「ロールの作成」で説明されている手順と同じです。そのトピックのステップ 6 を完了して権限を選択した後、次の手順を実行します。カスタムロール名を指定できます。このトピックでは、alivc-demo-role を例として使用します。

  2. [ロール管理] ページで、作成した RAM ロールの名前 (alivc-demo-role など) をクリックして、その Alibaba Cloud リソースネーム (ARN) をクエリします。後で使用するために、RAM ロール名と ARN を記録しておくことを推奨します。

  3. [ロール管理] ページで、RAM ロールの名前 (alivc-demo-role など) をクリックします。[信頼ポリシー] タブをクリックし、[信頼ポリシーの編集] をクリックします。信頼ポリシーを次のように変更します。

    {
        "Statement": [
            {
                "Action": "sts:AssumeRole", 
                "Effect": "Allow", 
                "Principal": {
                    "Service": [
                        "ecs.aliyuncs.com"
                    ]
                }
            }
        ], 
        "Version": "1"
    }

    これは、ロールがサービスロールであり、信頼された Alibaba Cloud サービス (ECS) によって偽装できることを示します。信頼ポリシーを変更しない場合、RAM ロールを ECS インスタンスにアタッチすることはできません。

    インスタンス ID パラメーターを ["インスタンス ID"] に設定します。

  4. RAM ロールを ECS インスタンスにアタッチします。

    OpenAPI Explorer で ECS の AttachInstanceRamRole API 操作を呼び出します。詳細については、「OpenAPI Explorer」をご参照ください。

    説明
    • RegionId: ECS インスタンスが配置されているリージョンの ID (中国 (上海) など)。リージョン ID は ECS コンソールでクエリできます。

    • RamRoleName: RAM ロールの名前。この例では、名前は alivc-demo-role です。

    • InstanceIds: RAM ロールをアタッチするサーバーサイド ECS インスタンスの ID。インスタンス ID は ECS コンソールでクエリできます。ID は ["i-bp135jrddxxf9tgo****"] のような配列形式である必要があります。

    [呼び出し] をクリックします。呼び出しが成功すると、右側のデバッグ結果に成功メッセージが表示されます。

  5. ECS ターミナルで次のコマンドを実行して、RAM ロールが ECS インスタンスに関連付けられているかどうかを確認します。

    curl http://100.100.100.200/latest/meta-data/ram/security-credentials/alivc-demo-role

    次の情報が表示された場合、セキュリティトークンサービス (STS) からの一時的な権限付与が返されます。これは、RAM ロールが ECS インスタンスに関連付けられていることを示します。

    {
    "AccessKeyId" : "STS.XXXXXXXXXXXX",
    "AccessKeySecret" : "XXXXXXXXXXXXXXXX",
    "Expiration" : "2020-11-20T14:33:31Z",
    "SecurityToken" : "XXXXXXXXXXXXXXXXXXXXXX",
    "LastUpdated" : "2020-11-20T08:33:31Z",
    "Code" : "Success"
    }
    説明

    ECS インスタンスには 1 つの RAM ロールしかアタッチできません。RAM ロールを変更するには、OpenAPI ExplorerDetachInstanceRamRole 操作を呼び出して ECS インスタンスから RAM ロールをデタッチします。次に、AttachInstanceRamRole を呼び出して新しい RAM ロールをアタッチします。

  6. RAM 情報を設定します。

    1. ソースコードの設定ファイルを編集します。

      vim /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties

    2. I キーを押し、次の例に示すようにファイルを変更します。

      roleArn = XXXXXXX:role/alivc-demo-role
      roleSessionName = vod-role
      roleName = alivc-demo-role

      server_config_03

      説明
      • REGION_CN_HANGZHOU は、ApsaraVideo VOD サービスが配置されているリージョン (中国 (上海) の場合は cn-shanghai など) を示します。

      • roleArn は、RAM コンソールから取得した ARN を示します。

      • roleSessionName は、一時トークンのセッション名を示します。カスタム名を指定できます。

      • roleName は、RAM コンソールから取得した RAM ロールの名前を示します。この例では、名前は alivc-demo-role です。

    3. Esc キーを押し、:wq! と入力してファイルを保存し、終了します。

  7. ApsaraVideo VOD を設定します。

    1. ソースコードの設定ファイルを編集します。

      vim /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties

    2. I キーを押し、ファイルを次のように変更します。

      server_config_04

      パラメーター名

      必須

      説明

      TEMPLATEGROUP_ID

      はい

      トランスコーディングテンプレートグループの ID。詳細については、「トランスコーディングテンプレートグループ」をご参照ください。

      LONGVIDEO_TRANSCODE_TEMPLATEGROUP_ID

      いいえ

      長尺動画の事前公開・事後レビュー機能に使用されるトランスコーディングテンプレートグループ。

      TAB_TEMPLATEGROUP_ID

      いいえ

      ナローバンド HD トランスコーディングテンプレートグループの ID。コンソールでナローバンド HD 動画を推奨するようにこのパラメーターを設定します。このパラメーターが指定されていない場合、ナローバンド HD 動画を推奨するとエラーが発生します。

      DOMAIN_NAME

      はい

      ECS サーバーのアドレス。この例では、アドレスは http://10.10.10.101:8080/ です。

      AVATAR_DOMAIN_NAME

      いいえ

      プロフィール写真リソースのアドレス。これは ECS サーバーの静的リソースアドレスです。この例では、アドレスは http://10.10.10.101:8080/resource/ です。

      AVATAR_URL

      いいえ

      プロフィール写真のファイル名のリスト (例: 1.png,2.png)。

      説明

      対応するプロフィール写真ファイル 1.png と 2.png を /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/webapp/resource ディレクトリに配置します。プロフィール写真サービスが設定されていない場合、モバイルクライアントユーザーにはプロフィール写真が表示されません。これは他の機能には影響しません。

      VOD_REGIONID

      はい

      VOD サービスが配置されているリージョン。この例では、リージョンは cn-shanghai です。

      policy

      はい

      ロールを偽装するときに追加する追加の権限制限。詳細については、「カスタム権限付与のための RAM ポリシーの使用」をご参照ください。

      CALLBACK_PRIVETEKEY

      はい

      コールバック認証設定の認証キー。詳細については、「コールバック設定」をご参照ください。

      CALLBACK_NAME

      はい

      コールバック URL。http://<ECS インスタンスのパブリック IP アドレス>:8080/vodcallback/callback です。この例では、URL は http://10.10.10.101:8080/vodcallback/callback です。

      AUDIT_SETTINGS_FLAG

      はい

      レビュー設定。デフォルト値は on です。有効な値:

      • on: 事前レビュー・事後公開。

      • off: 事前公開・事後レビュー。

      package_name

      はい

      インターセプタ内の有効なパッケージ名。複数のパッケージ名はカンマで区切ります。デフォルト値は IOS,ANDROID,TEST,com.aliyun.apsara.svideo,com.aliyun.apsaravideo,com.aliyun.solution.longvideo です。

      説明
      • com.aliyun.apsara.svideo は、この例の Android クライアントのパッケージ名です。

      • iOS クライアントのバンドル識別子がすでに登録されている場合、クライアントの実行に失敗します。com.<会社名>.<プロジェクト名> のようなバンドル識別子をカスタマイズし、それを使用して iOS クライアントに署名し、package_name パラメーターに追加して有効なアクセスを確保する必要があります。

      • インターセプタは、有効なパッケージ名を持つモバイルアプリのみがサーバーにアクセスすることを許可します。そうでない場合、モバイルクライアントからのリクエストは失敗します。たとえば、「Request failed: forbidden (403)」というエラーメッセージが返されます。

    3. Esc キーを押し、:wq! と入力して Enter キーを押し、変更を保存して終了します。

  8. サービスを実行します。

    1. コンパイルとパッケージング。

      cd /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226

      mvn clean package -Dmaven.test.skip=true

      説明
      • Maven がインストールされていない場合は、apt install maven を実行してインストールしてください。

      • パッケージングに必要な時間は、サーバーの帯域幅とパフォーマンスによって異なります。この例では、最初のパッケージングには約 30 分かかります。

      パッケージングが完了すると、sdk-api-0.0.1-SNAPSHOT.jar ファイルが /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/target/ ディレクトリに生成されます。

    2. JAR パッケージをデプロイし、サービスを開始します。

      cd /home/user/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/target

      nohup java -jar sdk-api-0.0.1-SNAPSHOT.jar &

      説明
      • コマンドを実行すると、nohup プロンプトが表示されます。Enter キーを押して、プログラムをバックグラウンドで実行します。

      • コマンドを実行すると、現在のディレクトリに nohup.out ログファイルが生成されます。cat nohup.out コマンドを実行してログを表示します。ログに start success が含まれている場合、サービスは正常に開始されています。

      • ECS インスタンスのメモリが少なく、サーバーサイドのソースコードを再パッケージングしてデプロイする必要がある場合は、jps コマンドを実行して現在の JAR プログラムのプロセス ID (PID) を見つけます。次に、kill -9 <PID> を実行してプロセスを終了します。その後、ソースコードを再パッケージングしてデプロイできます。そうしないと、メモリ不足のためにパッケージングプロセスが失敗する可能性があります。