nilaoda / N_m3u8DL-CLI

[.NET] m3u8 downloader 开源的命令行m3u8/HLS/dash下载器,支持普通AES-128-CBC解密,多线程,自定义请求头等. 支持简体中文,繁体中文和英文. English Supported.
https://nilaoda.github.io/N_m3u8DL-CLI/
MIT License
14.07k stars 2.13k forks source link

python怎么调用cli #452

Open zhiyu-zeng opened 3 years ago

nilaoda commented 3 years ago

os.system 不可以吗

zhiyu-zeng commented 3 years ago

得不到返回值

antnesswcm commented 3 years ago

@zzy0711 os.system and os.popen 好像都不能实现效果 你可以曲线救国创建bat脚本用os.system调用 请参考文章52论坛

nilaoda commented 3 years ago

用的最新构建 https://github.com/nilaoda/N_m3u8DL-CLI/actions/runs/1157247671

import subprocess
import sys
cmd=r'"D:\N_m3u8DL-CLI.exe" "http://defaultts.tc.qq.com/gzc_1000102_0b53k4adaaaakeakwhaw6bq4av6dgbnqanca.f321004.ts.m3u8?ver=4"'
process = subprocess.Popen(cmd,shell=True,
                 stdout=sys.stdout,
                 stderr=sys.stderr,
                 cwd=r"D:\Downloads")

process.communicate()
ilongge commented 2 years ago

生成单条命令行(可以添加环境变量)

cmd = "N_m3u8DL-CLI  \"%s\" --workDir \"%s\" --saveName \"%s\" --enableDelAfterDone --disableDateInfo" % (
        source_url, target_dir, source_name)

批量还是单个执行

liner = 0 #是否线性执行
if liner == 1:
    bat_file_name = "批量下载M3U8-" + time.strftime("%Y%m%d%H%M%S", time.localtime()) + ".bat"
    bat_file = open(bat_file_name, 'w', encoding='gbk', errors="ignore")
    if bat_file:
        bat_file.write('@echo off\n')
        for item in cmd_list:
            bat_file.write(item + '\n')
        bat_file.write('pause')
    bat_file_path = os.getcwd() + '\\' + bat_file_name
    print("开始执行...")
    os.system("start cmd /k " + bat_file_path)
else:
    for item in cmd_list:
        os.system("start cmd /k " + item)
        time.sleep(2)
    print("开始执行...")

只管执行 不管结果 哈哈

cjjdaq commented 2 years ago
import subprocess
import sys
cmd=r'"D:\N_m3u8DL-CLI.exe" "http://defaultts.tc.qq.com/gzc_1000102_0b53k4adaaaakeakwhaw6bq4av6dgbnqanca.f321004.ts.m3u8?ver=4"'
process = subprocess.Popen(cmd,shell=True,
                 stdout=sys.stdout,
                 stderr=sys.stderr,
                 cwd=r"D:\Downloads")

process.communicate()

N_m3u8DL-CLI version 2.9.9 2018-2021 built date: 20211123

δ��������쳣: System.IO.IOException: �����Ч��

�� System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) �� System.Console.GetBufferInfo(Boolean throwOnNoConsole, Boolean& succeeded) �� System.Console.get_WindowWidth() �� N_m3u8DL_CLI.LOGGER.PrintLine(String text, Int32 printLevel) �� N_m3u8DL_CLI.NetCore.Program.DoWork(MyOptions o) �� CommandLine.ParserResultExtensions.WithParsed[T](ParserResult1 result, Action1 action) �� N_m3u8DL_CLI.NetCore.Program.Main(String[] args)

nilaoda commented 2 years ago
import subprocess
import sys
cmd=r'"D:\N_m3u8DL-CLI.exe" "http://defaultts.tc.qq.com/gzc_1000102_0b53k4adaaaakeakwhaw6bq4av6dgbnqanca.f321004.ts.m3u8?ver=4"'
process = subprocess.Popen(cmd,shell=True,
                 stdout=sys.stdout,
                 stderr=sys.stderr,
                 cwd=r"D:\Downloads")

process.communicate()

Python 3.7.9 测试没问题

cjjdaq commented 2 years ago
import subprocess
import sys
cmd=r'"D:\N_m3u8DL-CLI.exe" "http://defaultts.tc.qq.com/gzc_1000102_0b53k4adaaaakeakwhaw6bq4av6dgbnqanca.f321004.ts.m3u8?ver=4"'
process = subprocess.Popen(cmd,shell=True,
                 stdout=sys.stdout,
                 stderr=sys.stderr,
                 cwd=r"D:\Downloads")

process.communicate()

Python 3.7.9 测试没问题

已经解决,但爱奇艺的这种json的cli没法下载,还是是必须要gui转换? https://cache.video.iqiyi.com/dash?tvid=7733380126598200&bid=600&vid=3c67d85788c717241103d9066067cf9c&src=01010031010000000000&vt=0&rs=1&uid=294087&ori=pcw&ps=0&k_uid=a6efaa7579c4307b0f0302b681a06d81&pt=0&d=0&s=&lid=&cf=&ct=&authKey=ca5f2e0ca1a2b3d2001929730bb624f0&k_tag=1&ost=0&ppt=0&dfp=a19454b70f0f2d41299f050bdbb935414adf41a85c26c062aec7a16621fc12563b&locale=zh_cn&prio=%7B%22ff%22%3A%22f4v%22%2C%22code%22%3A2%7D&pck=49uCnJvxewz8blzkj1j1YfTMSTslAdJkXMZm3hhESXeFYSjIx851feJQMRTPXIYlhjDcb&k_err_retries=0&up=&qd_v=2&tm=1639065802113&qdy=a&qds=0&k_ft1=706436220846084&k_ft4=1162183859249156&k_ft5=262145&bop=%7B%22version%22%3A%2210.0%22%2C%22dfp%22%3A%22a19454b70f0f2d41299f050bdbb935414adf41a85c26c062aec7a16621fc12563b%22%7D&ut=1&vf=ddc3268442e5b3a062b50c7f0035b453

hecoter commented 2 years ago

python3.9 测试就有问题了呀,大佬能支持下端口调用吗?类似于post m3u8信息,实现自动批量这种的