前言
在下载yandex disk云盘中其他人分享的一些内容时,正常情况下点击下载按钮即可。但是很多时候需要在没有图形界面的Linux机器上下载或者批量下载一批链接,这个时候需要使用脚本方式下载。
方法
根据yandex disk的文件链接规则,编写相应的Python脚本(见参考资料[3]),执行脚本自动下载。
Python脚本yandex_dl.py:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# chmod +x yandex_dl.py
# python yandex_dl.py yandexdisk_download_url path/to/directory
import os, sys, json
import urllib.parse as ul
sys.argv.append('.') if len(sys.argv) == 2 else None
base_url = 'https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key='
url = ul.quote_plus(sys.argv[1])
folder = sys.argv[2]
res = os.popen('wget -qO - {}{}'.format(base_url, url)).read()
json_res = json.loads(res)
filename = ul.parse_qs(ul.urlparse(json_res['href']).query)['filename'][0]
os.system("wget '{}' -P '{}' -O '{}'".format(json_res['href'], folder, filename))
使用
例如需要下载链接“https://disk.yandex.com/d/5VdqLARizmnj3Q”中的内容,则需要执行:
python yandex_dl.py https://disk.yandex.com/d/5VdqLARizmnj3Q .
则会将文件保存至当前路径。也可以将上述命令中的 . 替换为其他路径。
参考资料
[1] Yandex.Disk
[2] Yandex.Disk Doc - Downloading a file from Yandex.Disk
[3] GitHub - Yegorov/ya.py - Download file from Yandex.Disk through share link
[4] GitHub - Yegorov/yadisk
[5] yandex disk云盘文件下载Python脚本yandex_dl.py