If you do not know the media ID (a live video converted to an on-demand video using the media workflow), you can use the media input URL to query the media information over QueryMediaListByURL.

package com.aliyun.mts.api.demo;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.mts.model.v20140618. QueryMediaListByURLRequest;
import com.aliyuncs.mts.model.v20140618. QueryMediaListByURLResponse;
import com.aliyuncs.profile.DefaultProfile;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class QueryMediaListByURLDemo {
    private DefaultAcsClient client = null;
    private final String REGION = "<region>";
    private final String ID="<accessKeyId>";
    private final String KEY ="<accessKeySecret>";
    public QueryMediaListByURLDemo() throws ClientException {
        this.client = new DefaultAcsClient(DefaultProfile.getProfile(REGION, ID, KEY));
    //Query the media information, such as the media ID, media status, and other attributes, based on the OSS URL of the media source
    private void queryMediaListByURL() throws ClientException, UnsupportedEncodingException {
        QueryMediaListByURLRequest request = new QueryMediaListByURLRequest();
        String ossHost = 'http://<input-bucket>.<region>.aliyuncs.com/';
        String ossObject = "test/The Legend of the Swordsman.mp4";
        //ossObject must be RFC3986-encoded
        String rfc3986Object = encodeByRFC3986(ossObject);
        request.setFileURLs(ossHost + rfc3986Object);
        QueryMediaListByURLResponse response = this.client.getAcsResponse(request);
    private String encodeByRFC3986(String object) throws UnsupportedEncodingException {
        StringBuilder builder = new StringBuilder();
        String[] segments = object.split("/");
        for (int i = 0; i < segments.length; i++) {
            if (i != segments.length - 1) {
        return builder.toString();
    private static String percentEncode(String value) throws UnsupportedEncodingException {
        if (value == null)
            return null;
        return URLEncoder.encode(value, "UTF-8").replace("+", "%20").replace("*", "%2A").replace("%7E", "~");
    public static void main(String[] args) {
        try {
            QueryMediaListByURLDemo demo = new QueryMediaListByURLDemo();
        } catch (Exception e) {