You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向Instagram商业账号上传视频总返回Media ID is not available错误如何解决

错误原因
  • 核心触发逻辑:Instagram Graph API的图片内容容器创建是同步处理,创建接口返回ID即可直接调用发布;但视频内容容器的创建是异步流程,接口返回的creation_id只是一个临时标识,此时平台还在后台拉取你的视频文件、完成转码、合规校验、元数据解析等处理,你拿到ID后立即调用发布接口时,容器还未完成处理处于不可用状态,就会触发该报错。
  • 其他可能原因:
    • 视频参数不符合平台规范,后台处理过程中容器创建失败,返回的临时ID无效
    • 视频存储服务器响应过慢,平台拉取视频超时,容器处理失败
    • Access Token缺少instagram_basic、pages_show_list等必要权限
解决方法
  • 增加容器状态轮询逻辑:拿到creation_id之后不要直接调用发布接口,先循环查询容器处理状态,直到状态为可发布再走后续流程。查询请求如下:
    GET https://graph.facebook.com/{你的creation_id}?fields=status_code,status&access_token={你的access_token}
    返回的status_code为FINISHED时可以调用发布接口;为IN_PROGRESS时间隔2-5秒重试查询;为ERROR时可通过status字段查看具体失败原因,调整视频参数后重试。
  • 提前校验视频参数符合平台要求:
    • 视频编码为H.264,音频编码为AAC
    • 单视频文件大小不超过4GB
    • 时长范围:Feed视频3秒-60分钟,Reels视频15秒-90秒
    • 长宽比范围1.91:1 ~ 9:16
  • 调整后代码参考:
let mediaContainerUrl = `https://graph.facebook.com/${igUserId}/media`;
let containerParams = new URLSearchParams();
if (isPhoto) {
    containerParams.append('image_url', mediaUrl);
} else {
    containerParams.append('video_url', mediaUrl);
    containerParams.append('media_type', 'VIDEO');
}
containerParams.append('caption', caption);
containerParams.append('access_token', accessToken);
try {
    let mediaContainerResponse = await axios.post(mediaContainerUrl, containerParams);
    let { id: creationId } = mediaContainerResponse.data;

    // 新增视频容器状态轮询逻辑
    if (!isPhoto) {
        let containerStatus = '';
        let retryCount = 0;
        const maxRetry = 60; // 最多轮询60次,每次间隔2秒,总等待2分钟可根据需求调整
        while (retryCount < maxRetry && containerStatus !== 'FINISHED') {
            const statusRes = await axios.get(`https://graph.facebook.com/${creationId}`, {
                params: {
                    fields: 'status_code',
                    access_token: accessToken
                }
            });
            containerStatus = statusRes.data.status_code;
            if (containerStatus === 'ERROR') {
                throw new Error('视频容器处理失败,请检查视频参数');
            }
            if (containerStatus === 'IN_PROGRESS') {
                await new Promise(resolve => setTimeout(resolve, 2000));
                retryCount++;
            }
        }
        if (retryCount >= maxRetry) {
            throw new Error('视频处理超时,请稍后重试');
        }
    }

    // 容器状态正常后再调用发布接口
    let mediaPublishResponse = await axios.post(`https://graph.facebook.com/${igUserId}/media_publish`, null, {
        params: {
            creation_id: creationId,
            access_token: accessToken
        }
    });
    let publishedMediaId = mediaPublishResponse.data.id;
    console.log(`File uploaded to Instagram!`);

} catch (e) {
    console.log(`Instagram file upload failed miserably`);
    console.log(e);
}

内容的提问来源于stack exchange,提问作者ololo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:24:03