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

安卓Dailymotion视频下载器获取链接后无法下载报closed异常如何解决

问题原因
  • 核心错误是Okio读取网络响应流时流已经被提前关闭,结合你的场景有四个触发原因:
    1. Dailymotion的资源链接有防盗链校验,请求未携带符合要求的Referer、User-Agent请求头,服务器主动断开连接,返回流被提前关闭
    2. 代码中未提前创建目标存储目录,文件写入失败导致流被提前关闭
    3. 所用的Fast Android Networking库版本过旧,下载逻辑存在bug,遇到重定向或大文件响应时会提前关闭响应源
    4. 所使用的Dailymotion临时下载链接已经过期,服务器拒绝返回资源直接断开连接
解决方案

按以下步骤修改即可解决:

  1. 补全防盗链校验所需请求头
    下载请求必须添加Referer为https://www.dailymotion.com/,同时添加普通移动端浏览器的User-Agent头,绕过Dailymotion的防盗链校验。
  2. 提前创建存储目录
    执行下载前先判断目标存储目录是否存在,不存在时先调用mkdirs()创建目录,同时确认应用已经获得所需的存储权限。
  3. 升级依赖库版本
    将Fast Android Networking升级到最新稳定版,确保重定向跟随、大文件下载的逻辑正常。
  4. 确保下载链接有效
    Dailymotion的签名临时链接有效期很短,下载时要使用刚解析到的新鲜链接,不要使用提前缓存的过期链接。

修改后的参考代码

private void download() {
    // 执行前请确认应用已经获得存储权限(安卓6.0+动态申请,安卓10+适配分区存储)
    String url = "https://proxy-25.sg1.dailymotion.com/sec" 
        + "(dBG4yhTDGt8s-xJL9sczH_7xepHY7fASsEf--yb2hurT6QGlS77UybPsDxeGgwnIJAX0byvcREo9Wni" 
        + "-vBKPqA)/video/773/458/493854377_mp4_h264_aac_ld.mp4";
    // 建议用系统标准下载目录作为父目录,兼容性更好
    File folder = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "DownloadFiles");
    // 提前创建目录
    if (!folder.exists()) {
        folder.mkdirs();
    }
    AndroidNetworking.download(url, folder.getAbsolutePath(), "video.mp4")
        .setTag("tag")
        .setPriority(Priority.MEDIUM)
        // 添加防盗链所需请求头
        .addHeaders("Referer", "https://www.dailymotion.com/")
        .addHeaders("User-Agent", "Mozilla/5.0 (Linux; Android 13; SM-G998U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36")
        // 开启重定向跟随
        .setFollowRedirects(true)
        .build()
        .setDownloadProgressListener((bytesDownloaded, totalBytes) -> 
            Log.d("downloading", "downloaded:" + bytesDownloaded + " total:" + totalBytes)
        ).startDownload(new DownloadListener() {
            @Override
            public void onDownloadComplete() {
                Log.d("download", "下载完成");
            }

            @Override
            public void onError(ANError anError) {
                // 打印详细错误信息方便排查
                Log.d("error", "错误详情:" + anError.getErrorDetail() + ",响应码:" + anError.getErrorCode());
            }
        });
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:45:01