SkillAgentSearch skills...

IScript

各种脚本 -- 关于 虾米 xiami.com, 百度网盘 pan.baidu.com, 115网盘 115.com, 网易音乐 music.163.com, 百度音乐 music.baidu.com, 360网盘/云盘 yunpan.cn, 视频解析 flvxz.com, bt torrent ↔ magnet, ed2k 搜索, tumblr 图片下载, unzip

Install / Use

/learn @PeterDing/IScript
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

iScript

pan.baidu.com.py 已经重构,不再维护

BaiduPCS-Py 是 pan.baidu.com.py 的重构版,运行在 Python >= 3.6

Join the chat at https://gitter.im/PeterDing/iScript

[L] [W] [LW] 分别表示,在linux, windows, linux和windows 下通过测试。

windows用户可在babun (https://github.com/babun/babun) 下运行。

[L] - leetcode_problems.py - 下载Leetcode的算法题
[L] - xiami.py - 下载或播放高品质虾米音乐(xiami.com)
[L] - pan.baidu.com.py - 百度网盘的下载、离线下载、上传、播放、转存、文件操作
[L] - bt.py - magnet torrent 互转、及 过滤敏.感.词
[L] - 115.py - 115网盘的下载和播放
[L] - yunpan.360.cn.py - 360网盘的下载
[L] - music.baidu.com.py - 下载或播放高品质百度音乐(music.baidu.com)
[L] - music.163.com.py - 下载或播放高品质网易音乐(music.163.com)
[L] - flv_cmd.py - 基于在线服务的视频解析 client - 支持下载、播放
[L] - tumblr.py - 下载某个tumblr.com的所有图片、视频、音频
[L] - unzip.py - 解决linux下unzip乱码的问题
[L] - ed2k_search.py - 基于 donkey4u.com 的emule搜索
[L] - 91porn.py - 下载或播放91porn
[L] - ThunderLixianExporter.user.js - A fork of https://github.com/binux/ThunderLixianExporter - 增加了mpv和mplayer的导出。


<a name="leetcode_problems.py"></a>

leetcode_problems.py - 下载Leetcode的算法题

依赖

python2-requests (https://github.com/kennethreitz/requests)

python2-lxml

参数:

  --index           sort by index
  --level           sort by level
  --tag             sort by tag
  --title           sort by title
  --rm_blank        移除题中的空行
  --line LINE       两题之间的空行
  -r, --redownload  重新下载数据

下载的数据保持在 ./leecode_problems.pk 转成的txt在 './leecode problems.txt'


<a name="xiami.py"></a>

xiami.py - 下载或播放高品质虾米音乐(xiami.com)

1. 依赖

wget

python2-requests (https://github.com/kennethreitz/requests)

python2-mutagen (https://code.google.com/p/mutagen/)

mpv (http://mpv.io)

2. 使用说明

xiami.py 是一个虾米音乐的命令行(CLI)客户端。提供登录、下载、播放、收藏的功能。

提供对落网 luoo.net的分析

初次使用需要登录 xm login (原xiami账号)

~~支持淘宝账户 xm logintaobao~~

~~对于淘宝账户,登录后只保存有关虾米的cookies,删除了有关淘宝的cookies~~

淘宝登录加密算法无法破解,需要手动获取cookies (方法见下 手动添加cookie登录)

vip账户支持高品质音乐的下载和播放。

原虾米vip用户如果不能获得高品质音乐,请用关联的淘宝帐号登录。

下载的MP3默认添加id3 tags,保存在当前目录下。

cookies保存在 ~/.Xiami.cookies。

关于播放操作:

在运行脚本的终端,输入1次Enter,关闭当前播放并播放下一个文件,连续输入2次Enter,关闭当前播放并退出。

命令:

# 虾米账号登录
g
login
login username
login username password

signout                      # 退出登录

d 或 download url1 url2      # 下载
p 或 play  url1 url2         # 播放
s 或 save  url1 url2         # 收藏

参数:

-p, --play                 按顺序播放
-pp                        按歌曲被播放的次数,从高到低播放
-l, --low                  低品质mp3
-d, --undescription        不加入disk的描述
-f num, --from_ num        从第num个开始
-t TAGS, --tags TAGS       收藏用的tags,用英文逗号分开, eg: -t piano,cello,guitar
-n, --undownload           不下载,用于修改已存在的MP3的id3 tags

3. 用法

xm 是xiami.py的马甲 (alias xm='python2 /path/to/xiami.py')

# 登录
xm g
xm login
xm login username
xm login username password

# 手动添加cookie登录
1. 用浏览器登录后,按F12,然后访问 https://www.xiami.com/album/123456
2. 选择‘网络’或network,找到 123456,在其中找到 Cookie: xxx
3. 然后在终端运行 xm g "xxx"

# 退出登录
xm signout

# 下载专辑
xm d http://www.xiami.com/album/168709?spm=a1z1s.6928801.1561534521.114.ShN6mD

# 下载单曲
xm d http://www.xiami.com/song/2082998?spm=a1z1s.6659513.0.0.DT2j7T

# 下载精选集
xm d http://www.xiami.com/song/showcollect/id/30374035?spm=a1z1s.3061701.6856305.16.fvh75t

# 下载该艺术家所有专辑, Top 20 歌曲, radio
xm d http://www.xiami.com/artist/23460?spm=a1z1s.6928801.1561534521.115.ShW08b

# 下载用户的收藏, 虾米推荐, radio, 推荐
xm d http://www.xiami.com/u/141825?spm=a1z1s.3521917.0.0.zI0APP

# 下载排行榜
xm d http://www.xiami.com/chart/index/c/2?spm=a1z1s.2943549.6827465.6.VrEAoY

# 下载 风格 genre, radio
xm d http://www.xiami.com/genre/detail/gid/2?spm=a1z1s.3057857.6850221.1.g9ySan
xm d http://www.xiami.com/genre/detail/sid/2970?spm=a1z1s.3057857.6850221.4.pkepgt

# 下载 widget (虾米播播)
xm d http://www.xiami.com/widget/player-multi?uid=4350663&sid=1774531852,378713,3294421,1771778464,378728,378717,378727,1773346501,&width=990&height=346&mainColor=e29833&backColor=60362a&widget_from=4350663

# 下载落网期刊
# 分析落网期刊的音乐后,在虾米上搜索并下载
xm d http://www.luoo.net/music/706

播放:

# url 是上面的
xm p url

收藏:

xm s http://www.xiami.com/album/168709?spm=a1z1s.6928801.1561534521.114.ShN6mD
xm s -t 'tag1,tag 2,tag 3' http://www.xiami.com/song/2082998?spm=a1z1s.6659513.0.0.DT2j7T
xm s http://www.xiami.com/song/showcollect/id/30374035?spm=a1z1s.3061701.6856305.16.fvh75t
xm s http://www.xiami.com/artist/23460?spm=a1z1s.6928801.1561534521.115.ShW08b

4. 参考:

http://kanoha.org/2011/08/30/xiami-absolute-address/

http://www.blackglory.me/xiami-vip-audition-with-no-quality-difference-between-downloading/

https://gist.github.com/lepture/1014329

淘宝登录代码: https://github.com/ly0/xiami-tools


<a name="pan.baidu.com.py"></a>

pan.baidu.com.py - 百度网盘的下载、离线下载、上传、播放、转存、文件操作

pan.baidu.com.py 已经重构,不再维护

BaiduPCS-Py 是 pan.baidu.com.py 的重构版,运行在 Python >= 3.6

1. 依赖

wget

aria2  (~ 1.18)

aget-rs (https://github.com/PeterDing/aget-rs/releases)

pip2 install rsa pyasn1 requests requests-toolbelt

mpv (http://mpv.io)

# 可选依赖
shadowsocks  # 用于加密上传。
             # 用 python2 的 pip 安装
pip2 install shadowsocks

# 除了用pip安装包,还可以手动:
https://github.com/PeterDing/iScript/wiki/%E6%89%8B%E5%8A%A8%E8%A7%A3%E5%86%B3pan.baidu.com.py%E4%BE%9D%E8%B5%96%E5%8C%85

other

尝试解决百度网盘下载速度问题

2. 使用说明

pan.baidu.com.py 是一个百度网盘的命令行客户端。

初次使用需要登录 bp login

支持多帐号登录

现在只支持用cookie登录

支持cookie登录

支持加密上传, 需要 shadowsocks

cd, ls 功能完全支持

所有路径可以是 相对路径 或 绝对路径

他人分享的网盘连接,只支持单个的下载。

下载工具默认为wget, 可用参数-a num选用aria2

支持用 aget 加速下载, 用法见下

下载的文件,保存在当前目录下。

下载默认为非递归,递归下载加 -R

搜索时,默认在 cwd

搜索支持高亮

上传模式默认是 c (续传)。

开启证实(verification) 用参数 -V

理论上,上传的单个文件最大支持 2T

cookies保存在 ~/.bp.cookies

上传数据保存在 ~/.bp.pickle

关于播放操作:

在运行脚本的终端,输入1次Enter,关闭当前播放并播放下一个文件,连续输入2次Enter,关闭当前播放并退出。

<a name="cmd"></a>

命令:

!!注意: 命令参数中,所有网盘的路径和本地路径可以是 相对路径 或 绝对路径

# 登录
g
login
login username
login username password
login username cookie

# 删除帐号
userdelete 或 ud

# 切换帐号
userchange 或 uc

# 帐号信息
user

# 显示当前工作目录
cwd

# 切换当前工作目录
cd path    # 支持 ./../...

# 播放
p  或 play url1 url2 path1 path2

# 上传
u  或 upload localpath remotepath

# 加密上传
u localpath remotepath [-P password] -t ec -R

# 转存
s  或 save url remotepath [-s secret]

# 下载
d  或 download url1 url2 path1 path2           非递归下载 到当前本地目录
d  或 download url1 url2 path1 path2 -R        递归下载 到当前本地目录
# !! 注意:
# d /path/to/download -R       递归下载 *download文件夹* 到当前本地目录
# d /path/to/download/ -R      递归下载 *download文件夹中的文件* 到当前本地目录

# 下载并解密
d /path/to/download -R -t dc [-P password] [-m aes-256-cfb]

# 解密已下载的文件
dc path1 path2 -R [-P password] [-m aes-256-cfb]

# 文件操作
md 或 mkdir path1 path2                           创建文件夹
rn 或 rename path new_path                        重命名
rm 或 remove path1 path2                          删除
mv 或 move path1 path2 /path/to/directory         移动
cp 或 copy path /path/to/directory_or_file        复制
cp 或 copy path1 path2 /path/to/directory         复制

# 使用正则表达式进行文件操作
rnr 或 rnre foo bar dir1 dir2 -I re1 re2             重命名文件夹中的文件名
rmr 或 rmre dir1 dir2 -E re1 re2                     删除文件夹下匹配到的文件
mvr 或 mvre dir1 dir2 /path/to/dir -H head1 head2    移动文件夹下匹配到的文件
cpr 或 cpre dir1 dir2 /path/to/dir -T tail1 tail2    复制文件夹下匹配到的文件
# 递归加 -R
# rmr, mvr, cpr 中 -t, -I, -E, -H, -T 至少要有一个,放在命令行末尾
# -I, -E, -H, -T 后可跟多个匹配式
# 可以用 -t 指定操作的文件类型
    -t f # 文件
    -t d # 文件夹
# rnr 中 foo bar 都是 regex
# -y, --yes   # 不显示警示,直接进行。  !!注意,除非你知道你做什么,否则请不要使用。
rmr / -I '.*' -y    # !! 删除网盘中的所有文件

# 回复用bt.py做base64加密的文件
rnr /path/to/decode1 /path/to/decode2 -t f,bd64

# 搜索
# directory 必须是绝对路径, 默认是 cwd
f   或 find keyword1 keyword2 [directory]             非递归搜索
ff  keyword1 keyword2 [directory]                     非递归搜索 反序
ft  keyword1 keyword2 [directory]                     非递归搜索 by time
ftt keyword1 keyword2 [directory]                     非递归搜索 by time 反序
fs  keyword1 keyword2 [directory]                     非递归搜索 by size
fss keyword1 keyword2 [directory]                     非递归搜索 by size 反序
fn  keyword1 keyword2 [directory]                     非递归搜索 by name
fnn keyword1 keyword2 [directory]                     非递归搜索 by name 反序
# 递归搜索加 -R
f 'ice and fire' /doc -R
# 搜索所有的账户加 -t all
f keyword1 keyword2 [directory] -t all -R
f keyword1 keyword2 [directory] -t f,all -R
# directory 默认为 /
# 关于-H, -T, -I, -E
# -I, -E, -H, -T 后可跟多个匹配式, 需要放在命令行末尾
f keyword1 keyword2 [directory] -H head -T tail -I "re(gul.*) ex(p|g)ress$"
f keyword1 keyword2 [directory] -H head -T tail -E "re(gul.*) ex(p|g)ress$"
# 搜索 加 通道(只支持 donwload, play, rnre, rm, mv)
f keyword1 keyword2 [directory] \| d -R              递归搜索后递归下载
ftt keyword1 keyword2 [directory] \| p -R            递归搜索(by time 反序)后递归播放
f keyword1 keyword2 [directory] \| rnr foo bar -R    递归搜索后rename by regex
f keyword1 keyword2 [directory] \| rm -R -T tail     递归搜索后删除
f keyword1 keyword2 [directory] \| mv /path/to -R    递归搜索后移动

# 列出文件
l path1 path2                               ls by name
ll path1 path2                              ls by name 反序
ln path1 path2                              ls by name
lnn path1 path2                             ls by name 反序
lt path1 path2                              ls by time
ltt path1 path2                             ls by time 反序
ls path1 path2                              ls by size
lss path1 path2                             ls by size 反序
l /doc/books /videos
# 以下是只列出文件或文件夹
l path1 path2 -t f

Related Skills

View on GitHub
GitHub Stars5.1k
CategoryDevelopment
Updated10h ago
Forks1.2k

Languages

Python

Security Score

100/100

Audited on Mar 29, 2026

No findings