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

M3U文件下载失败:Python脚本生成空文件问题求助

问题排查与解决方案

先直接指出你代码里的核心问题,这是导致文件为空的关键原因:

1. 变量名不匹配

两段代码中你定义的URL变量是link,但调用时均使用了未定义的url——这会导致curl命令/请求中的URL为空,自然无法下载到内容。

2. Curl命令参数错误

第一段代码的curl命令存在多处参数混乱:

  • -A -k:-A需要指定User-Agent字符串,你错误地把-k当成了UA值,导致参数解析异常;
  • 重复设置-m(超时参数),后一个值会覆盖前一个;
  • -Lbk中的b属于多余参数(若需使用cookie需指定具体文件路径);
  • 全部输出重定向到/dev/null,导致你无法看到curl的错误信息,无法排查问题。

修正后的代码示例

方法一:修复后的Curl调用

import os

M3UPATH= '/tmp/IPTVWORLD73.m3u'
link = 'http://xtremity.tv/get.php?username=5686626928&password=7936628346&type=m3u_plus&output=ts'

# 修正变量名,清理无效参数,保留错误输出方便调试
cmd = (
    f'curl -H "Connection: keep-alive" -H "Content-Type: application/json" '
    f'--limit-rate 100K -s -k -L -m 52 "{link}" -o "{M3UPATH}"'
)
# 打印命令返回码,判断执行状态
exit_code = os.system(cmd)
print(f"Curl执行返回码: {exit_code}")

方法二:改进后的urllib调用

import urllib.request

M3UPATH= '/tmp/IPTVWORLD73.m3u'
link = 'http://xtremity.tv/get.php?username=5686626928&password=7936628346&type=m3u_plus&output=ts'

# 添加请求头,模拟常规浏览器请求
headers = {
    'Connection': 'keep-alive',
    'Content-Type': 'application/json',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}

try:
    req = urllib.request.Request(link, headers=headers)
    with urllib.request.urlopen(req) as response:
        # 读取响应内容并写入文件
        content = response.read()
        with open(M3UPATH, 'wb') as f:
            f.write(content)
    print("下载完成")
except Exception as e:
    print(f"请求失败: {str(e)}")

调试建议

  1. 先在终端手动执行curl命令,直接验证URL是否有效:
    curl -v "http://xtremity.tv/get.php?username=5686626928&password=7936628346&type=m3u_plus&output=ts"
    
    查看HTTP状态码(200为成功,401是权限错误,404是路径不存在)和响应内容。
  2. 检查/tmp/IPTVWORLD73.m3u的写入权限,确保当前用户有权限操作该路径。
  3. 确认URL中的用户名和密码是否有效——若凭证错误,服务端可能返回空内容或错误页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:15:44