例如,我有一个URL列表:
https://link.com/file/get/somefile.ext
https://go.com/download/anotherfile.ext
https://program.com/selection/download.php?id=26162
Run Code Online (Sandbox Code Playgroud)
我想为最后一个URL设置一个特定的名称,如下所示:
https://program.com/selection/download.php?id=26162 -o thirdfile.ext
Run Code Online (Sandbox Code Playgroud)
是否可以使用aria2c下载列表语法?
我知道我可以这样做:
aria2c https://link.com/file/get/somefile.ext
aria2c https://go.com/download/anotherfile.ext
aria2c https://program.com/selection/download.php?id=26162 -o thirdfile.ext
Run Code Online (Sandbox Code Playgroud)
但是这样我运行的aria2c太多了.._.
我在我的 ubuntu 中安装了 aria2 (1.18.1)。但问题是它不能增加下载连接。
aria2c -x 10 http://mirror.sg.leaseweb.net/speedtest/100mb.bin
[#fe34b4 2.1MiB/95MiB(2%) CN:4 DL:233KiB ETA:6m49s]
Run Code Online (Sandbox Code Playgroud)
默认情况下,它仅从 4 个连接而不是 10 个(如我所给)下载。我什至尝试使用其他站点,但在下载时进行了默认的 4 个连接
解决了:-
有多个选项会影响行为:
--split -s 每次下载的最大并发拆分(连接)数。默认为 5,因此除非您更改它,否则无论 -x 是什么,单次下载都将获得最多 5 个连接。
--min-split-size -k 仅当拆分大于此值时才应启动拆分。默认为 20M,这意味着当你下载一个 100M 的文件时,下载被分割的时间已经检索了一些数据,这意味着剩余的数据略小于 100MB,这意味着 4 个分割(5 个分割将创建略小于 20MB 的分割)。
你有它。请查看手册以获取有关各种选项的更多信息。
$ aria2c -k 1M -s 10 -x 10 http://mirror.sg.leaseweb.net/speedtest/100mb.bin
[#1325f1 7.4MiB/95MiB(7%) CN:10 DL:1.2MiB ETA:1m8s]
Run Code Online (Sandbox Code Playgroud) 在bash脚本,我想下载多个文件并行,与自定义文件名使用一个命令(没有循环).
我尝试使用aria2c:
aria2c -j2 URL1 URL2 # BAD: outputs to a single file
aria2c -j2 -Z URL1 -o 1 URL2 -o 2 # BAD: filenames taken from link (-o is ignored)
Run Code Online (Sandbox Code Playgroud)
第二个忽略输出文件名,因为引用aria2c联机帮助页:
在Metalink或BitTorrent下载中,您无法指定文件名.此处指定的文件名仅在输入到aria2的URI由命令行完成而不使用--input-file, - force-sequential选项时使用.例如:
$ aria2c -o myfile.zip" http://example1.com/file.zip "" http://example2.com/file.zip "
这是我想要避免的:
aria2c URL1 -o 1 &
aria2c URL2 -o 2 &
aria2c URL3 -o 3 # BAD: slow and ugly, because aria2c is called thrice
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我有一个 .m3u8 网址,即http://example.com/test.m3u8
我可以通过ffmpeg命令下载它:
ffmpeg -y -loglevel verbose -i "http://example.com/test.m3u8" -c copy -f mpegts test.mp4
Run Code Online (Sandbox Code Playgroud)
但我正在尝试手动执行此操作:
我尝试了以下方法:
1)下载m3u8文件:
wget -O test.m3u8 "http://example.com/test.m3u8"
Run Code Online (Sandbox Code Playgroud)
2)然后将每个段下载到一个文件夹中:
aria2c -i test.m3u8
Run Code Online (Sandbox Code Playgroud)
这将下载文件夹中的所有 .ts 文件。
3)然后我把它们结合起来
cat *.ts > out.ts
Run Code Online (Sandbox Code Playgroud)
4)然后我尝试转换为mp4:
$ ffmpeg -i out.ts -c:v libx264 outputfilename.mp4
ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7.3.0 (GCC)
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg …Run Code Online (Sandbox Code Playgroud) 我的帐户下的服务器上有一个文件,我需要下载它.让我们说网址是http://my.server/files/myfile.我需要使用用户名和密码进行身份验证.我可以这样做,wget如下
wget http://username:password@my.server/files/myfile
Run Code Online (Sandbox Code Playgroud)
它的工作原理.但是,尝试同样的事情aria2
aria2c http://username:password@my.server/files/myfile
Run Code Online (Sandbox Code Playgroud)
失败并显示错误消息
-> [HttpSkipResponseCommand.cc:211] errorCode=24 Authorization failed.
Run Code Online (Sandbox Code Playgroud)
有没有办法来解决这个问题?我也尝试过--http-user和--http-passwd没有运气选项.
我使用英特尔计算棒构建了一个小工具(IoT),它下载了一个种子内容然后播种.
它有效.
现在我想在重新启动后播放我已下载的文件,而无需重新下载它们(原因很明显......)
没有办法在aria2上使用任何选项(这里是文档),我想知道我能做的技巧或任何其他可以做到的COMMAND LINE应用程序吗?
我想通过标准输入管道将作业(要下载的文件)发送到 aria2c。
aria2c -i -
aria2c每隔几秒钟就送入新作业时,无法“立即”开始下载。对于 10 多个短期作业,它在输入管道关闭后开始下载。可以通过命令行选项修复吗?
用于测试的示例 shell 脚本[真实脚本下载超过 50 个 URL]:
#!/bin/sh
while read URL OUT; do
echo $URL
[ "$OUT" != "" ] && echo " out=$OUT"
sleep 1
done <<END | aria2c --deferred-input true -i -
http://example.com/
http://example.net/
http://example.org/
END
Run Code Online (Sandbox Code Playgroud)
PS 我真正喜欢的是“下载服务器”,其他主机或其他本地用户无法访问。诸如“通过 unix sockets 的 RPC”(通过文件权限进行访问控制)之类的东西是可以接受的。
我需要同时下载文件 - wget不支持,所以我想尝试aria2.但我没有在aria2中看到一个选项来保持目录结构.
我正在使用aria2下载动态生成的文件列表。我希望它跳过下载目录中已经存在的文件,但是不这样做,它只是重新下载它们并.1在文件名中添加一个。我尝试使用--check-integrity=true,但这并没有改变行为。有没有办法让它跳过已经存在的文件?
偶尔,我会在完成下载后留下aria2c连接种子,然后跳上不喜欢我播种的网络.
我想在完成下载后立即关闭连接,防止我播种.我怎样才能做到这一点?
我想为 zsh 创建一个别名,以便通过 aria2 下载软件包并通过 pacman 安装它们,我不想通过将 xfercommand 添加到 pacman.conf 来使用 aria2c,因为有两件事:
首先,我的互联网连接速度很慢,我不想让 pacman 锁定几个小时,
第二个xfercommand不支持多链接下载。
首先,我使用此命令通过 pacman 下载或升级和更新:
sudo pacman -Sp [Package] > ~/Documents/.install&& sudo aria2c -c -x16 -x16 -m16 -k1M -j10 -i ~/Documents/.install -d /var/cache/pacman/pkg
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在 zsh 中使其成为别名?
我在这里有一个小问题。我正在使用著名的Aria2C文件下载器,并且列出了需要下载的链接。我知道我可以使用:
aria2c -o myOutputFile.exe http://www.fooBar.com/fooBarVirus.exe
Run Code Online (Sandbox Code Playgroud)
下载一个文件并命名为myOutputFile.exe。问题是我必须下载一些文件并将其命名为0.pdf,1.pdf,2.pdf,3.pdf ...,因为稍后将组装所有这些pdf。
我会尽力解释。如果我给aria2c提供以下链接:
http://www.fooBar.com/myPDF.pdf
http://www.fooBar.com/kindness.pdf
http://www.fooBar.com/crazyPdf.pdf
...
http://www.fooBar.com/myLastPdf.pdf
Run Code Online (Sandbox Code Playgroud)
我必须下载这些文件,并将其命名为按链接插入顺序排序的整数序列。我的意思是文件名与链接顺序有关,但是我不需要按顺序下载它们。
假设我给Aria2C以前的链接。以下输出将是我的问题的有效输出:
Time: 0
Link: http://www.fooBar.com/crazyPdf.pdf
Filename: 2.pdf
Time: 1
Link: http://www.fooBar.com/myPDF.pdf
Filename: 0.pdf
Time: 2
Link: http://www.fooBar.com/kindness.pdf
Filename: 1.pdf
...
Time: N
Link: http://www.fooBar.com/myLastPdf.pdf
Filename: N.pdf
Run Code Online (Sandbox Code Playgroud)
我知道这是一个令人困惑的问题,因此,如果您有任何疑问,请发表评论,我会尽快尝试回答。谢谢!
我想要一个 bash 函数来改变这个……
download HELLO&P=1&Q=2
Run Code Online (Sandbox Code Playgroud)
进入这个……
aria2c -d ~/Downloads "HELLO&P=1&Q=2"
Run Code Online (Sandbox Code Playgroud)
HELLO&P=1&Q=2是一个磁力链接。如果它周围没有双引号,则 aria2c 不起作用。但我似乎无法把它们放在一起。问题似乎是 MAGNET 链接&key=value的末尾有一系列对(在我的示例中&P=1&Q=2),并且这些对似乎被剥离并与链接的其余部分分开(即HELLO)。
这是我的.bash_profile功能。
download() {
aria2c -d ~/Downloads "$1"
}
Run Code Online (Sandbox Code Playgroud)
这是一个示例输出。
~ $ download HELLO&P=1&Q=2
[1] 7389
[2] 7390
aria2c -d /Users/lukejanicke/Downloads HELLO
[1]- Done download HELLO
[2]+ Done P=1
~ $
Run Code Online (Sandbox Code Playgroud)
甚至不知道去了哪里Q=2。通过真正的 MAGNET 链接,所有部件都以这种枚举方式显示。
我需要某种方式将整个 MAGNET 链接捕获为单个参数,然后aria2c在链接周围使用引号执行命令。