Code Monkey home page Code Monkey logo

peterding / iscript Goto Github PK

View Code? Open in Web Editor NEW
5.0K 315.0 1.2K 1.12 MB

各种脚本 -- 关于 虾米 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

License: MIT License

JavaScript 12.90% Python 87.10%
python2 baiduyun xiami magnet-torrent tumblr unzip music iscript

iscript's Introduction

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的导出。


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'


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


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,关闭当前播放并退出。

命令:

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

# 登录
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                         ls files
l path1 path2 -t d                         ls directorys
# 关于-H, -T, -I, -E
# -I, -E, -H, -T 后可跟多个匹配式, 需要放在命令行末尾
l path1 path2 -H head -T tail -I "^re(gul.*) ex(p|g)ress$"
l path1 path2 -H head -T tail -E "^re(gul.*) ex(p|g)ress$"
# 显示绝对路径
l path1 path2 -v
# 显示文件size, md5
l path1 path2 -vv
# 空文件夹
l path1 path2 -t e,d
# 非空文件夹
l path1 path2 -t ne,d

# 分享文件
S 或 share path1 path2 为每个提供的文件路劲创建分享链接
S 或 share [-P pawd 或 --passwd pawd] path1 path2 为每个提供的路径创建加密的分享链接

# 查看文件占用空间
du path1 path2               文件夹下所有*文件(不包含下层文件夹)*总大小
du path1 path2 -R            文件夹下所有*文件(包含下层文件夹)*总大小
                             如果下层文件多,会花一些时间
# 相当于 l path1 path2 -t du [-R]
# eg:
du /doc /videos -R

# 离线下载
a 或 add http https ftp ed2k remotepath
a 或 add magnet remotepath [-t {m,i,d,p}]
a 或 add remote_torrent [-t {m,i,d,p}]   # 使用网盘中torrent

# 离线任务操作
j  或 job                               # 列出离线下载任务
jd 或 jobdump                           # 清除全部 *非正在下载中的任务*
jc 或 jobclear taskid1 taskid2          # 清除 *正在下载中的任务*
jca 或 jobclearall                      # 清除 *全部任务*

参数:

-a num, --aria2c num                aria2c 分段下载数量: eg: -a 10
-g num, --aget_s num                aget 分段下载数量: eg: -g 100
-k num, --aget_k size               aget 分段大小: eg: -k 200K
                                                       -k 1M
                                                       -k 2M
--appid num                         设置 app-id. 如果无法下载或下载慢, 尝试设置为 778750
-o path, --outdir path              指定下周目录: eg: -o /path/to/directory
-p, --play                          play with mpv
-P password, --passwd password      分享密码,加密密码
-y, --yes                           yes # 用于 rmre, mvre, cpre, rnre !!慎用
-q, --quiet                         无输出模式, 用于 download, play
-V, --VERIFY                        verification
-v, --view                          view detail
                                    eg:
                                    l -v        # 显示绝对路径
                                    a magnet /path -v     # 离线下载并显示下载的文件
                                    d -p url1 url2 -v  # 显示播放文件的完整路径
                                    l path1 path2 -vv  # 显示文件的size, md5
-s SECRET, --secret SECRET          提取密码
-f number, --from_ number           从第几个开始(用于download, play),eg: p /video -f 42
-t ext, --type_ ext                 类型参数, 用 “,” 分隔
                                    eg:
                                    -t fs       # 换用下载服务器,用于下载、播放
                                                # 如果wiki中的速度解决方法不管用,可以试试加该参数
                                    d -t dc     # 下载并解密,覆盖加密文件(默认)
                                    d -t dc,no  # 下载并解密,不覆盖加密文件
                                    dc -t no    # 解密,不覆盖加密文件
                                    d -t ie     # ignore error, 忽略除Ctrl-C以外的下载错误
                                    d -t 8s     # 检测文件是否是“百度8秒”,如果是则不下载
                                    p -t m3     # 播放流媒体(m3u8)
                                    s -t c      # 连续转存 (如果转存出错,再次运行命令
                                                # 可以从出错的地方开始,用于转存大量文件时)
                                    l -t f      # 文件
                                    l -t d      # 文件夹
                                    l -t du     # 查看文件占用空间
                                    l -t e,d    # 空文件夹
                                    f -t all    # 搜索所有账户
                                    a -t m,d,p,a
                                    u -t ec     # encrypt, 加密上传, 默认加前缀
                                    u -t ec,np  # encrypt, 加密上传, 不加前缀
                                    u -t r      # 只进行 rapidupload
                                    u -t e      # 如果云端已经存在则不上传(不比对md5)
                                    u -t r,e
                                    -t s        # shuffle,乱序
-l amount, --limit amount           下载速度限制,eg: -l 100k
-m {o,c}, --mode {o,c}              模式:  o # 重新上传.   c # 连续上传.
                                    加密方法: https://github.com/shadowsocks/shadowsocks/wiki/Encryption
-R, --recursive                     递归, 用于download, play, upload, ls, find, rmre, rnre, rmre, cpre
-H HEADS, --head HEADS              匹配开头的字符,eg: -H Head1 Head2
-T TAILS, --tail TAILS              匹配结尾的字符,eg: -T Tail1 Tail2
-I INCLUDES, --include INCLUDES     不排除匹配到表达的文件名, 可以是正则表达式,eg: -I ".*.mp3" ".*.avi"
-E EXCLUDES, --exclude EXCLUDES     排除匹配到表达的文件名, 可以是正则表达式,eg: -E ".*.html" ".*.jpg"
-c {on, off}, --ls_color {on, off}  ls 颜色,默认是on

# -t, -H, -T, -I, -E 都能用于 download, play, ls, find, rnre, rmre, cpre, mvre

3. 用法

bp 是pan.baidu.com.py的马甲 (alias bp='python2 /path/to/pan.baidu.com.py')

登录:

bp g
bp login
bp login username
bp login username password

# 多帐号登录
# 一直用 bp login 即可

cookie 登录:

  1. 打开 chrome 隐身模式窗口
  2. 在隐身模式窗口登录 pan.baidu.com
  3. 在登录后的页面打开 chrome 开发者工具(怎么打开自行google),选择 Network ,然后刷新页面。在刷新后的 NetworkName 列表中选中 list?dir=… 开头的一项,然后在右侧找到 Cookie: ,复制 Cookie: 后面的所有内容。
  4. pan.baidu.com.py 登录,password / cookie: 处粘贴上面复制的内容。(粘贴后是看不见的)。
  5. 不要退出 pan.baidu.com,只是关闭隐身模式窗口就可以。

如果使用 cookie 登录,username 可以是任意的东西。

删除帐号:

bp ud

切换帐号:

bp uc

帐号信息:

bp user

显示当前工作目录

bp cwd

切换当前工作目录

bp cd         # 切换到 /
bp cd path    # 支持 ./../...
bp cd ..
bp cd ../../Music
bp cd ...

下载:

## 下载、播放速度慢?
如果无法下载或下载慢, 尝试设置参数 --appid 778750
bp d /path/file --appid 778750

# 下载当前工作目录 (递归)
bp d . -R

# 下载自己网盘中的*单个或多个文件*
bp d http://pan.baidu.com/disk/home#dir/path=/path/to/filename1 http://pan.baidu.com/disk/home#dir/path=/path/to/filename2
# or
bp d /path/to/filename1 /path/to/filename2

# 递归下载自己网盘中的*单个或多个文件夹*
bp d -R http://pan.baidu.com/disk/home#dir/path=/path/to/directory1 http://pan.baidu.com/disk/home#dir/path=/path/to/directory2
# or
bp d -R /path/to/directory1 /path/to/directory2
# 递归下载后缀为 .mp3 的文件
bp d -R /path/to/directory1 /path/to/directory2 -T .mp3

# 非递归下载
bp d relative_path/to/directory1 /path/to/directory2

# 下载别人分享的*单个文件*
bp d http://pan.baidu.com/s/1o6psfnxx
bp d 'http://pan.baidu.com/share/link?shareid=1622654699&uk=1026372002&fid=2112674284'

# 下载别人加密分享的*单个文件*,密码参数-s
bp d http://pan.baidu.com/s/1i3FVlw5 -s vuej

# 用aria2 下载
bp d http://pan.baidu.com/s/1i3FVlw5 -s vuej -a 5
bp d /movie/her.mkv -a 4
bp d url -s [secret] -a 10

# 用 aget 下载
bp d http://pan.baidu.com/s/1i3FVlw5 -s vuej -g 100
bp d /movie/her.mkv -g 100 -k 200K
bp d url -s [secret] -g 100 -k 100K
如果下载速度很慢,可以试试加大 -g, 减小 -k, -k 一般在 100K ~ 300K 之间合适

# 下载并解码
## 默认加密方法为 aes-256-cfb
bp d /path/to/encrypted_file -t dc [-P password]     # 覆盖加密文件 (默认)
bp d /path/to/encrypted_file -t dc,no [-P password]  # 不覆盖加密文件
## 设置加密方法
bp d /path/to/encrypted_file -t dc [-P password] -m 'rc4-md5'
bp d /path/to/directory -t dc [-P password] -m 'rc4-md5'

解码已下载的加密文件:

bp dc /local/to/encrypted_file [-P password] -m 'aes-256-cfb'
bp dc /local/to/encrypted_file [-P password]
bp dc /local/to/directory [-P password]

播放:

bp p /movie/her.mkv
bp p http://pan.baidu.com/s/xxxxxxxxx -s [secret]

bp cd /movie
bp p movie -R     # 递归播放 /movie 中所有媒体文件

# 播放流媒体(m3u8)
上面的命令后加 -t m3
清晰度与在浏览器上播放的一样.
如果源文件是高清的(720P,1280P),那么流媒体会自动转为480P.

离线下载:

bp a http://mirrors.kernel.org/archlinux/iso/latest/archlinux-2014.06.01-dual.iso /path/to/save
bp a https://github.com/PeterDing/iScript/archive/master.zip /path/to/save
bp a ftp://ftp.netscape.com/testfile /path/to/save

bp a 'magnet:?xt=urn:btih:64b7700828fd44b37c0c045091939a2c0258ddc2' /path/to/save -v -t a
bp a 'ed2k://|file|[美]徐中約《**近代史》第六版原版PDF.rar|547821118|D09FC5F70DEA63E585A74FBDFBD7598F|/' /path/to/save

bp a     /path/to/a.torrent -v -t m,i   # 使用网盘中torrent,下载到/path/to
# 注意   ------------------
                   ↓
          网盘中的torrent

magnet离线下载 -- 文件选择:

-t m    # 视频文件 (默认), 如: mkv, avi ..etc
-t i    # 图像文件, 如: jpg, png ..etc
-t d    # 文档文件, 如: pdf, doc, docx, epub, mobi ..etc
-t p    # 压缩文件, 如: rar, zip ..etc
-t a    # 所有文件
m, i, d, p, a 可以任意组合(用,分隔), 如: -t m,i,d   -t d,p   -t i,p
remotepath 默认为 /

bp a 'magnet:?xt=urn:btih:64b7700828fd44b37c0c045091939a2c0258ddc2' /path/to/save -v -t p,d
bp a /download/a.torrent -v -t m,i,d    # 使用网盘中torrent,下载到/download

离线任务操作:

bp j
bp j 3482938 8302833
bp jd
bp jc taskid1 taskid2
bp jc 1208382 58239221
bp jca

上传: (默认为非递归,递归加 -R)

# 支持文件类型选择
bp u ~/Documents/*           # 默认上传所以文件
bp u ~/Documents/* -t f      # 不上传文件夹
bp u ~/Documents/* -t d      # 不上传文件
bp u ~/Documents/* -t f,d    # 不上传文件和文件夹

bp u ~/Documents/reading/三体\ by\ 刘慈欣.mobi /doc -m o
# 上传模式:
# -m o --> 重传
# -m c --> 续传 (默认)
# 递归加-R

bp u ~/Videos/*.mkv /videos -t r
# 只进行rapidupload

bp u ~/Documents ~/Videos ~/Documents /backup -t e -R
# 如果云端已经存在则不上传(不比对md5)
# 用 -t e 时, -m o 无效

bp u ~/Documents ~/Videos ~/Documents /backup -t r,e  # 以上两种模式

加密上传: (默认为非递归,递归加 -R)

bp u ~/{p1,p2,p3} -t ec [-P password]  # 默认加密方法 'aes-256-cfb'
bp u ~/{p1,p2,p3} -t ec [-P password] -m 'rc4-md5'

# 注意:
# 上传后的文件名会默认加上前缀 encrypted_
# 不加前缀用 -t ec,np

转存:

bp s url remotepath [-s secret]
# url是他人分享的连接, 如: http://pan.baidu.com/share/link?shareid=xxxxxxx&uk=xxxxxxx, http://pan.baidu.com/s/xxxxxxxx
bp s 'http://pan.baidu.com/share/link?shareid=xxxxxxx&uk=xxxxxxx' /path/to/save
bp s http://pan.baidu.com/s/xxxxxxxx /path/to/save
bp s http://pan.baidu.com/s/xxxxxxxx /path/to/save -s xxxx
bp s http://pan.baidu.com/s/xxxxxxxx#dir/path=/path/to/anything /path/to/save -s xxxx

bp s http://pan.baidu.com/inbox/i/xxxxxxxx /path/to/save

# -t c 连续转存 (如果转存出错,再次运行命令可以从出错的地方开始,用于转存大量文件时)
bp s 'http://pan.baidu.com/share/link?shareid=2705944270&uk=708312363' /path/to/save -t c
# 注意:再次运行时,命令要一样。

搜索:

# 默认搜索当前服务器工作目录 cwd
bp f keyword1 keyword2
bp f "this is one keyword" "this is another keyword" /path/to/search

bp f ooxx -R
bp f 三体 /doc/fiction -R
bp f 晓波 /doc -R

bp ff  keyword1 keyword2 /path/to/music       非递归搜索 反序
bp ft  keyword1 keyword2 /path/to/doc         非递归搜索 by time
bp ftt keyword1 keyword2 /path/to/other       非递归搜索 by time 反序
bp fs  keyword1 keyword2                      非递归搜索 by size
bp fss keyword1 keyword2                      非递归搜索 by size 反序
bp fn  keyword1 keyword2                      非递归搜索 by name
bp fnn keyword1 keyword2                      非递归搜索 by name 反序

# 递归搜索加 -R
# 关于-H, -T, -I, -E
bp f mp3 /path/to/search -H "[" "01" -T ".tmp" -I ".*-.*" -R

# 搜索所有的账户
bp f iDoNotKnow [directory] -t all -R
bp f archlinux ubuntu [directory] -t f,all -T .iso -R

# 搜索 加 通道(只支持 donwload, play, rnre, rm, mv)
bp f bioloy \| d -R                          递归搜索后递归下载
bp ftt ooxx \| p -R -t f                     递归搜索(by time 反序)后递归播放
bp f sound \| rnr mp3 mp4 -R                 递归搜索后rename by regex
bp f ccav \| rm -R -T avi                    递归搜索后删除
bp f 新闻联播(大结局) \| mv /Favor -R      递归搜索后移动

恢复用bt.py做base64加密的文件:

rnr /ooxx -t f,bd64
!! 注意: /ooxx 中的所有文件都必须是被base64加密的,且加密段要有.base64后缀
# 可以参考 by.py 的用法

ls、重命名、移动、删除、复制、使用正则表达式进行文件操作:

命令

4. 参考:

https://gist.github.com/HououinRedflag/6191023

https://github.com/banbanchs/pan-baidu-download/blob/master/bddown_core.py

https://github.com/houtianze/bypy

3个方法解决百度网盘限速: https://www.runningcheese.com/baiduyun


bt.py - magnet torrent 互转、及 过滤敏.感.词

1. 依赖

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

2. 使用说明

magnet 和 torrent 的相互转换

过滤敏.感.词功能用于净网时期的 baidu, xunlei

在**大陆使用代理可能有更好的效果:
使用代理有两种方法:

  1. shadowsocks + proxychains
  2. -p protocol://ip:port

8.30日后,无法使用。 见 http://tieba.baidu.com/p/3265467666

百度云疑似解封,百度网盘内八秒视频部分恢复

!! 注意:过滤后生成的torrent在百度网盘只能用一次,如果需要再次使用,则需用 -n 改顶层目录名

磁力连接转种子,用的是

http://bt.box.n0808.com
http://btcache.me
http://www.sobt.org  # 302 --> http://www.win8down.com/url.php?hash=
http://www.31bt.com
http://178.73.198.210
http://www.btspread.com  # link to http://btcache.me
http://torcache.net
http://zoink.it
http://torrage.com   # 用torrage.com需要设置代理, eg: -p 127.0.0.1:8087
http://torrentproject.se
http://istoretor.com
http://torrentbox.sx
http://www.torrenthound.com
http://www.silvertorrent.org
http://magnet.vuze.com

如果有更好的种子库,请提交issue

对于baidu, 加入离线任务后,需等待一段时间才会下载完成。

命令:

# magnet 2 torrent
m 或 mt magnet_link1 magnet_link2 [-d /path/to/save]
m -i /there/are/files -d new

# torrent 2 magnet, 输出magnet
t 或 tm path1 path2

# 过滤敏.感.词
# 有2种模式
# -t n (默认)     用数字替换文件名
# -t be64         用base64加密文件名,torrent用百度下载后,可用 pan.baidu.com.py rnr /path -t f,bd64 改回原名字
c 或 ct magnet_link1 magnet_link2 /path/to/torrent1 /path/to/torrent2 [-d /path/to/save]
c -i /there/are/files and_other_dir -d new    # 从文件或文件夹中寻找 magnet,再过滤
# 过滤敏.感.词 - 将magnet或torrent转成不敏感的 torrent
# /path/to/save 默认为 .

# 用base64加密的文件名:
c magnet_link1 magnet_link2 /path/to/torrent1 /path/to/torrent2 [-d /path/to/save] -t be64

# 使用正则表达式过滤敏.感.词
cr 或 ctre foo bar magnet_link1 /path/to/torrent1 [-d /path/to/save]
# foo bar 都是 regex

参数:

-p PROXY, --proxy PROXY                 proxy for torrage.com, eg: -p "sooks5://127.0.0.1:8883"
-t TYPE_, --type_ TYPE_                 类型参数:
                                        -t n (默认)     用数字替换文件名
                                        -t be64         用base64加密文件名,torrent用百度下载后,可用 pan.baidu.com.py rnr /path -t f,bd64 改回原名字
-d DIRECTORY, --directory DIRECTORY     指定torrents的保存路径, eg: -d /path/to/save
-n NAME, --name NAME                    顶级文件夹名称, eg: -m thistopdirectory
-i localpath1 localpath2, --import_from localpath1 localpath2      从本地文本文件导入magnet (用正则表达式匹配)

3. 用法

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

bt mt magnet_link1 magnet_link2 [-d /path/to/save]
bt tm path1 path2
bt ct magnet_link1 path1 [-d /path/to/save]

bt m magnet_link1 magnet_link2 [-d /path/to/save]
bt t path1 path2
bt c magnet_link1 path1 [-d /path/to/save]

# 用torrage.com
bt m magnet_link1 path1 -p 127.0.0.1:8087
bt c magnet_link1 path1 -p 127.0.0.1:8087

# 从文件或文件夹中寻找 magnet,再过滤
bt c -i ~/Downloads -d new

# 使用正则表达式过滤敏.感.词
bt cr '.*(old).*' '\1'  magnet_link
bt cr 'old.iso' 'new.iso' /path/to/torrent

# 用base64加密的文件名:
bt c magnet_link -t be64

4. 参考:

http://blog.chinaunix.net/uid-28450123-id-4051635.html

http://en.wikipedia.org/wiki/Torrent_file


115.py - 115网盘的下载和播放

1. 依赖

wget

aria2  (~ 1.18)

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

mpv (http://mpv.io)

mplayer # 我的linux上mpv播放wmv出错,换用mplayer

2. 使用说明

初次使用需要登录 pan115 login

脚本是用于下载自己的115网盘文件,不支持他人分享文件。

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

现在vip和非vip用户下载只能有1个通道,用aria2下载已经无意义。

对所有文件,默认执行下载(用wget),如要播放媒体文件,加参数-p。

非vip用户下载太慢,已经不支持播放。 vip播放正常

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

cookies保存在 ~/.115.cookies

关于播放操作:

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

参数:

-a, --aria2c                   download with aria2c
-p, --play                     play with mpv
-f number, --from_ number      从第几个开始下载,eg: -f 42
-t ext, --type_ ext            要下载的文件的后缀,eg: -t mp3
-l amount, --limit amount      下载速度限制,eg: -l 100k
-d "url"                       增加离线下载 "http/ftp/magnet/ed2k"

3. 用法

pan115 是115.py的马甲 (alias pan115='python2 /path/to/115.py')

# 登录
pan115 g
pan115 login
pan115 login username
pan115 login username password

# 退出登录
pan115 signout

# 递归下载自己网盘中的*文件夹*
pan115 http://115.com/?cid=xxxxxxxxxxxx&offset=0&mode=wangpan

# 下载自己网盘中的*单个文件* -- 只能是115上可单独打开的文件,如pdf,视频
pan115 http://wenku.115.com/preview/?pickcode=xxxxxxxxxxxx

# 下载用aria2, url 是上面的
pan115 -a url

# 增加离线下载
pan115 -d "magnet:?xt=urn:btih:757fc565c56462b28b4f9c86b21ac753500eb2a7&dn=archlinux-2014.04.01-dual.iso"

播放

# url 是上面的
pan115 -p url

4. 参考:

http://passport.115.com/static/wap/js/common.js?v=1.6.39


yunpan.360.cn.py - 360网盘的下载

!!!脚本已不再维护!!!

1. 依赖

wget

aria2  (~ 1.18)

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

2. 使用说明

初次使用需要登录 yp login

!!!!!! 万恶的360不支持断点续传 !!!!!!

由于上面的原因,不能播放媒体文件。

只支持自己的*文件夹*的递归下载。

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

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

cookies保存在 ~/.360.cookies

参数:

-a, --aria2c                   download with aria2c
-f number, --from_ number      从第几个开始下载,eg: -f 42
-t ext, --type_ ext            要下载的文件的后缀,eg: -t mp3
-l amount, --limit amount      下载速度限制,eg: -l 100k

3. 用法

yp 是yunpan.360.cn.py的马甲 (alias yp='python2 /path/to/yunpan.360.cn.py')

# 登录
yp g
yp login
yp login username
yp login username password

# 退出登录
yp signout

# 递归下载自己网盘中的*文件夹*
yp http://c17.yunpan.360.cn/my/?sid=#/path/to/directory
yp http://c17.yunpan.360.cn/my/?sid=#%2Fpath%3D%2Fpath%2Fto%2Fdirectory
# or
yp sid=/path/to/directory
yp sid%3D%2Fpath%2Fto%2Fdirectory

# 下载用aria2, url 是上面的
yp -a url

4. 参考:

https://github.com/Shu-Ji/gorthon/blob/master/_3rdapp/CloudDisk360/main.py


music.baidu.com.py - 下载或播放高品质百度音乐(music.baidu.com)

1. 依赖

wget

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

mpv (http://mpv.io)

2. 使用说明

默认执行下载,如要播放,加参数-p。

参数:

-f, --flac  download flac
-i, --high  download 320, default
-l, --low   download 128
-p, --play  play with mpv

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

关于播放操作:

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

3. 用法

bm 是music.baidu.com.py的马甲 (alias bm='python2 /path/to/music.baidu.com.py')

# 下载专辑
bm http://music.baidu.com/album/115032005

# 下载单曲
bm http://music.baidu.com/song/117948039

播放:

# url 是上面的
bm -p url

4. 参考:

http://v2ex.com/t/77685 # 第9楼


music.163.com.py - 下载或播放高品质网易音乐(music.163.com)

1. 依赖

wget

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

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

mpv (http://mpv.io)

2. 使用说明

默认下载和播放高品质音乐,如果服务器没有高品质音乐则转到低品质音乐。

默认执行下载,如要播放,加参数-p。

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

关于播放操作:

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

3. 用法

nm 是music.163.com.py的马甲 (alias nm='python2 /path/to/music.163.com.py')

# 下载专辑
nm http://music.163.com/#/album?id=18915

# 下载单曲
nm http://music.163.com/#/song?id=186114

# 下载歌单
nm http://music.163.com/#/playlist?id=12214308

# 下载该艺术家所有专辑或 Top 50 歌曲
nm http://music.163.com/#/artist?id=6452

# 下载DJ节目
nm http://music.163.com/#/dj?id=675051

# 下载排行榜
nm http://music.163.com/#/discover/toplist?id=11641012

播放:

# url 是上面的
nm -p url

4. 参考:

https://github.com/yanunon/NeteaseCloudMusic/wiki/%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90API%E5%88%86%E6%9E%90

http://s3.music.126.net/s/2/core.js


flv_cmd.py - 基于在线服务的视频解析 client - 支持下载、播放

!!!脚本已不再维护!!!

请使用 youtube-dl or you-get

1. 依赖

wget

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

mpv (http://mpv.io)

2. 使用说明

flvxz.com 视频解析 不能用。

flvgo.com 视频解析

不提供视频合并操作

支持的网站:

http://flvgo.com/sites

关于播放操作:

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

3. 用法

fl是flv_cmd.py的马甲 (alias fl='python2 /path/to/flv_cmd.py')

下载:

fl http://v.youku.com/v_show/id_XNTI2Mzg4NjAw.html
fl http://www.tudou.com/albumplay/Lqfme5hSolM/tJ_Gl3POz7Y.html

播放:

# url 是上面的
fl url -p

4. 相关脚本:

https://github.com/soimort/you-get

https://github.com/iambus/youku-lixian

https://github.com/rg3/youtube-dl


tumblr.py - 下载某个tumblr.com的所有图片、视频、音频

1. 依赖

wget

mpv (http://mpv.io)

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

2. 使用说明

默认开10个进程,如需改变用参数-p [num]。

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

默认下载图片(原图)。

支持连续下载,下载进度储存在下载文件夹内的 json.json。

正确退出程序使用 Ctrl-C
下载 更新的图片或其他 用 tumblr --update URL, 或 删除 json.json

参数:

-p PROCESSES, --processes PROCESSES      指定多进程数,默认为10个,最多为20个 eg: -p 20
-c, --check           尝试修复未下载成功的图片
-t TAG, --tag TAG     下载特定tag的图片, eg: -t beautiful

-P, --play            play with mpv
-A, --audio           download audios
-V, --video           download videos
-q, --quiet           quiet

--update              下载新发布的东西
--redownload          重新遍历所有的东西,如果有漏掉的东西则下载
--proxy protocol://address:port     设置代理

-f OFFSET, --offset OFFSET      从第offset个开始,只对 -V 有用。

3. 用法

tm是tumblr.py的马甲 (alias tm='python2 /path/to/tumblr.py')

# 下载图片
tm http://sosuperawesome.tumblr.com
tm http://sosuperawesome.tumblr.com -t beautiful

# 下载图片(使用代理)
tm http://sosuperawesome.tumblr.com -x socks5://127.0.0.1:1024
tm http://sosuperawesome.tumblr.com -t beautiful -x socks5://127.0.0.1:1024

# 下载单张图片
tm http://sosuperawesome.tumblr.com/post/121467716523/murosvur-on-etsy

# 下载视频
tm url -V
tm url -V -f 42
tm url -V -t tag

# 下载单个视频
tm url/post/1234567890 -V

# 播放视频
tm url -VP
tm url -VP -f 42

# 下载音频
tm url -A
tm url -A -f 42
tm url -A -t tag

# 下载单个音频
tm url/post/1234567890 -A

# 播放音频
tm url -AP
tm url -AP -f 42

# 播放音频(quiet)
tm url -APq


unzip.py - 解决linux下unzip乱码的问题

用法

python2 unzip.py azipfile1.zip azipfile2.zip
python2 unzip.py azipfile.zip -s secret
# -s 密码

代码来自以下连接,我改了一点。

http://wangqige.com/the-solution-of-unzip-files-which-zip-under-windows/解决在Linux环境下解压zip的乱码问题


ed2k_search.py - 基于 donkey4u.com 的emule搜索

1. 依赖

python2

2. 用法

ed 是ed2k_search.py的马甲 (alias ed='python2 /path/to/ed2k_search.py')

ed this is a keyword
or
ed "this is a keyword"

91porn.py - 下载或播放91porn

警告: 18岁以下者,请自觉远离。

1. 依赖

wget

aria2  (~ 1.18)

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

mpv (http://mpv.io)

2. 使用说明

youtube-dl 已支持91porn

没有解决每个ip 10个/day 限制

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

默认执行下载,如要播放媒体文件,加参数-p。

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

关于播放操作:

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

3. 用法

pn 是91porn.py的马甲 (alias pn='python2 /path/to/91porn.py')

下载:

pn url # 91porn.com(或其镜像) 视频的url

播放:

pn -p url

显示下载链接,但不下载:

pn -u url

4. 参考

http://v2ex.com/t/110196 # 第16楼


ThunderLixianExporter.user.js - A fork of https://github.com/binux/ThunderLixianExporter

一个github.com/binux的迅雷离线导出脚本的fork。

增加了mpv和mplayer的导出。

用法见: https://github.com/binux/ThunderLixianExporter

iscript's People

Contributors

ceyes avatar fghshunzi avatar gitter-badger avatar peterding avatar tenfar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iscript's Issues

能不能支持百度网盘的 Hash 比对?

最近备份些文件,都是秒传的。
有些过了 4GB,想去转存却没人共享出来。
支持 Hash 对比就不用浪费那么多流量和时间去备份了。
其实是不想开 VIP(死

115网盘脚本登录报错

输入账号密码后登录时会提示:
-- login
-- check_login fail

login failes
更换两个账号都有此提示,是否115网盘的登录验证有改动。

[pan.baidu.com.py]登陆报! Error 120021

很棒的脚本,用了半年多了,不过从昨天开始,一直登陆失败,报Error 120021这个错误,请问是百度最近有所变动?还是我环境的问题?

Ubuntu14.04百度网盘无法登陆ConnectionError: ('Connection aborted.', ResponseNotReady())

commit 99519d4
log:

/usr/local/lib/python2.7/dist-packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
Traceback (most recent call last):
File "pan.baidu.com.py", line 3151, in
main(argv)
File "pan.baidu.com.py", line 2738, in main
x.login(username, password)
File "pan.baidu.com.py", line 290, in login
r = ss.post(url, data=data)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 425, in post
return self.request('POST', url, data=data, *_kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 383, in request
resp = self.send(prep, *_send_kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 486, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 378, in send
raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='passport.baidu.com', port=443): Max retries exceeded with url: /v2/api/?login (Caused by ProtocolError('Connection aborted.', ResponseNotReady()))

按照#18 按照了所有依赖.似乎不是依赖问题?

pip2 install --upgrade requests
pip2 install --upgrade requests-toolbelt
pip2 install rsa
pip2 install pyasn1

Ubuntu14.04 64bit python2.7
我记得安装urllib3后有些.py运行不了.我自己到 /usr/...改了几个文件的import .. 应该不关事吧...

虾米重复要求登陆

我在国外的VPS里运行xiami.py
但是我登陆之后一运行python xiami.py d *****就又要求我登陆 please login
另外 我是虾米会员了 在国外可以使用

所以请问一下这是怎么回事?谢谢!

贴上信息:
运行环境:Ubuntu 14.04 x86_64
root@localhost:/muu# python xiami.py login ** **
-- login
++ login succeeds.
root@localhost:
/muu# python xiami.py d http://www.xiami.com/collect/114900095?spm=a1z1s.6843761.1478643745.3.Hm7SKv
please login
root@localhost:/muu# python xiami.py login ** **
-- login
++ login succeeds.
root@localhost:
/muu# python xiami.py d http://www.xiami.com/album/2100181986?spm=a1z1s.6843761.1478643713.8.LJI4m0
please login
root@localhost:~/muu#

SSLError

尝试登陆(bp login username password)的时候出现一下错误(我确信自己输入的验证码无误):

Traceback (most recent call last):
File "/Users/troy/Developer/iScript/pan.baidu.com.py", line 2676, in
main(argv)
File "/Users/troy/Developer/iScript/pan.baidu.com.py", line 2316, in main
x.save_cookies(username, on=1)
File "/Users/troy/Developer/iScript/pan.baidu.com.py", line 256, in save_cookies
quota = self._get_quota()
File "/Users/troy/Developer/iScript/pan.baidu.com.py", line 386, in _get_quota
r = ss.get(url)
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 468, in get
return self.request('GET', url, *_kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 456, in request
resp = self.send(prep, *_send_kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 559, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/adapters.py", line 382, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: [Errno 1] _ssl.c:510: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

中断下载后重新下载出现解析错误

LaN-DiskStation> Traceback (most recent call last):
File "/volume1/homes/iScript/115.py", line 482, in
main(argv)
File "/volume1/homes/iScript/115.py", line 474, in main
x.get_infos(cid)
File "/volume1/homes/iScript/115.py", line 189, in get_infos
j = ss.get(url, params=params).json()
File "/usr/local/lib/python2.7/site-packages/requests/models.py", line 799, in json
return json.loads(self.text, **kwargs)
File "/usr/local/lib/python2.7/site-packages/simplejson/init.py", line 451, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python2.7/site-packages/simplejson/decoder.py", line 405, in decode
raise JSONDecodeError("Extra data", s, end, len(s))
simplejson.decoder.JSONDecodeError: Extra data: line 1 column 2090 - line 2 column 1 (char 2090 - 2095)

尝试过重装Python ,更换ip地址都是这个错误。

baidupan经常出现以下错误

Traceback (most recent call last):
  File "/root/iScript/pan.baidu.com.py", line 3477, in <module>
    main(argv)
  File "/root/iScript/pan.baidu.com.py", line 3473, in main
    handle_command(comd, xxx)
  File "/root/iScript/pan.baidu.com.py", line 3084, in handle_command
    px.upload(xxx[:-1], xxx[-1])
  File "/root/iScript/pan.baidu.com.py", line 1377, in upload
    self._upload_dir(lpath, rpath)
  File "/root/iScript/pan.baidu.com.py", line 1339, in _upload_dir
    self._upload_file(localpath, remotepath)
  File "/root/iScript/pan.baidu.com.py", line 1245, in _upload_file
    result = self._upload_slice(piece=piece, slice=slice)
  File "/root/iScript/pan.baidu.com.py", line 1130, in _upload_slice
    r = ss.post(url, params=p, data=data, verify=VERIFY, headers=theaders)
  File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 508, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 465, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 573, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 415, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', error(104, 'Connection reset by peer'))

ImportError: No module named packages.urllib3.poolmanager

root@dedi-fr-25527:~/iScript# ./pan.baidu.com.py 
Traceback (most recent call last):
  File "./pan.baidu.com.py", line 8, in <module>
    from requests_toolbelt import MultipartEncoder
  File "/usr/local/lib/python2.7/dist-packages/requests_toolbelt/__init__.py", line 19, in <module>
    from .adapters import SSLAdapter, SourceAddressAdapter
  File "/usr/local/lib/python2.7/dist-packages/requests_toolbelt/adapters/__init__.py", line 12, in <module>
    from .ssl import SSLAdapter
  File "/usr/local/lib/python2.7/dist-packages/requests_toolbelt/adapters/ssl.py", line 13, in <module>
    from requests.packages.urllib3.poolmanager import PoolManager
ImportError: No module named packages.urllib3.poolmanager

之前centos下用着一直没问题,这次换Ubuntu (14.04) 下用就报错了

baidu網盤應答的range與請求不符導致aria2c退出

僅在下載目錄時出現該問題
錯誤信息:
[HttpResponse.cc:92] errorCode=8 Invalid range header. Request: 13661526016-20492289023/27310598675, Response: 13661526016-13678303231/27310598675

重試多次發現應答的piece大小正好爲15MB,增加aria2c參數--enable-http-pipelining --piece-length=10M可解決該問題。

pan.baidu.com在upload的时候,有时候会碰到错误,然后就再也无法上传了

错误信息:

Traceback (most recent call last):
File "/root/iScript/pan.baidu.com.py", line 3477, in
main(argv)
File "/root/iScript/pan.baidu.com.py", line 3473, in main
handle_command(comd, xxx)
File "/root/iScript/pan.baidu.com.py", line 3084, in handle_command
px.upload(xxx[:-1], xxx[-1])
File "/root/iScript/pan.baidu.com.py", line 1358, in upload
upload_datas = pk.load(f)
ValueError: insecure string pickle

显示上传速度

作者有考虑过显示上传速度么?(百度盘脚本)
不显示上传速度感觉有点不太方便0.0

pan.baidu.com.py Exit Status 2048

lwl:~$ bp  d  /software/7.iso  documents/

  ++ download: # 1 / 1 # 7.iso
--2015-04-14 07:45:22--  http://d.pcs.baidu.com/file/faa364a36cddcbbfd65c0224f35fcfd0?fid=806310848-250528-276887247410861&time=1428968723&rt=pr&sign=FDTAER-DCb740ccc5511e5e8fedcff06b081203-F5FmBRbwVgqu39ayDDqAvkWUeQ0%3d&expires=8h&prisign=unknow&chkbd=0&chkv=0&r=252048247
正在解析主机 d.pcs.baidu.com (d.pcs.baidu.com)... 119.75.219.124
正在连接 d.pcs.baidu.com (d.pcs.baidu.com)|119.75.219.124|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Found
位置:http://bcscdn.baidu.com/bcs-cdn/wenxintishi-2653276160.avi?response-content-disposition=attachment;%20filename=%e6%b8%a9%e9%a6%a8%e6%8f%90%e7%a4%ba.avi [跟随至新的 URL]
--2015-04-14 07:45:22--  http://bcscdn.baidu.com/bcs-cdn/wenxintishi-2653276160.avi?response-content-disposition=attachment;%20filename=%e6%b8%a9%e9%a6%a8%e6%8f%90%e7%a4%ba.avi
正在解析主机 bcscdn.baidu.com (bcscdn.baidu.com)... 124.193.227.39
正在连接 bcscdn.baidu.com (bcscdn.baidu.com)|124.193.227.39|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 404 Not Found
2015-04-14 07:45:22 错误 404:Not Found。



 ---###   EXIT STATUS ==> 2048   ###---


  ===>  wget -c -O "/Users/lwl/7.iso.tmp" --user-agent "netdisk;4.4.0.6;PC;PC-Windows;6.2.9200;WindowsBaiduYunGuanJia" --header "Referer:http://pan.baidu.com/disk/home" "http://d.pcs.baidu.com/file/faa364a36cddcbbfd65c0224f35fcfd0?fid=806310848-250528-276887247410861&time=1428968723&rt=pr&sign=FDTAER-DCb740ccc5511e5e8fedcff06b081203-F5FmBRbwVgqu39ayDDqAvkWUeQ0%3d&expires=8h&prisign=unknow&chkbd=0&chkv=0&r=252048247"

当尝试下载 2.5GB 的win7关盘镜像时提示这个错误, 是程序的Bug还是百度的缘故.
测试了一下小文件可以正常下载,虽然每次都提示

$ bp  d  "/software/chrome脚本.c"  .
  !!! url 地址不正确. .

大神115.py无法登陆

另:91py下载为何经常出现“you are blocked”,如何处理?似乎你的脚本有更新

百度盘工具utime失败的问题

hi,
非常感谢您提供的工具,我在树莓派和一块硬盘上下载一些移动APP开发的教学视频,对我的帮助很大。

不过我在使用中有个问题,刚开始以为是断点续传的事情。

——————————————————————————————————————
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2015080583 (1.9G) [application/zip]
正在保存至: “/home/pi/disk/50g/download/Java4Android.zip.tmp”

19% [======> ] 396,294,189 --.-K/s 用时 60m 1s s

2015-01-06 01:00:18 (107 KB/s) - 在 396294189/2015080583 字节处发生读取错误 ( 连接超时)。重试中。

--2015-01-06 01:00:19-- (尝试次数: 2) http://nj.baidupcs.com/file/5ce62364db524cab6650b887509ef013……&vbdid=-&fin=Java4Android.zip
正在连接 nj.baidupcs.com (nj.baidupcs.com)|58.217.200.14|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 206 Partial Content
长度:2015080583 (1.9G),剩余 1618786394 (1.5G) [application/zip]
正在保存至: “/home/pi/disk/50g/download/Java4Android.zip.tmp”

90% [++++++========================> ] 1,815,871,488 391K/s 用时 2h 46m

2015-01-06 03:47:05 (139 KB/s) - 在 1815871488 字节处连接关闭。重试中。

--2015-01-06 03:47:07-- (尝试次数: 3) http://nj.baidupcs.com/file/5ce62364db524cab66……Android.zip
正在连接 nj.baidupcs.com (nj.baidupcs.com)|58.217.200.14|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 206 Partial Content
长度:2015080583 (1.9G),剩余 199209095 (190M) [application/zip]
正在保存至: “/home/pi/disk/50g/download/Java4Android.zip.tmp”

100%[+++++++++++++++++++++++++++++++===>] 2,015,080,583 470K/s 用时 7m 12s

utime(/home/pi/disk/50g/download/Java4Android.zip.tmp): 不允许的操作
2015-01-06 03:54:21 (450 KB/s) - 已保存 “/home/pi/disk/50g/download/Java4Android.zip.tmp” [2015080583/2015080583])

——————————————————————————————————————
我默认使用wget下载,下载了一部分,应该是断开了,重新连接之后,再次写入就出现了错误,导致前面下载的1.7G左右的内容前功尽弃。

我看了手册,里面可以使用aria2引擎,里面有分片的参数。

问题:
1、是不是只要用aria引擎就默认可以断点续传了?
2、aria2的命令中带参数c可以断点,这个脚本怎么使用?


——————————————————

我想问题是最后的“utime(/home/pi/disk/50g/download/Java4Android.zip.tmp): 不允许的操作”,我下载其他的文件OK,这个是?

pan.baidu 上传出现某些异常的时候,已上传list会丢失

有时候因为连接问题,上传会出错,出现异常。这也属于正常现象。

不过这个时候记录的已上传的文件列表是不完整的。
再次运行的时候某些已经被上传的文件会重新被传一次。

Traceback (most recent call last):
  File "pan.baidu.com.py", line 3016, in <module>
    main(argv)
  File "pan.baidu.com.py", line 2695, in main
    px.upload(xxx[:-1], xxx[-1])
  File "pan.baidu.com.py", line 1167, in upload
    self._upload_dir(lpath, rpath)
  File "pan.baidu.com.py", line 1141, in _upload_dir
    self._upload_file(localpath, remotepath)
  File "pan.baidu.com.py", line 1099, in _upload_file
    result = self._rapidupload_file(lpath, rpath)
  File "pan.baidu.com.py", line 878, in _rapidupload_file
    r = ss.post(url, params=p, data=data, verify=VERIFY)
  File "/Library/Python/2.7/site-packages/requests-2.5.3-py2.7.egg/requests/sessions.py", line 504, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/Library/Python/2.7/site-packages/requests-2.5.3-py2.7.egg/requests/sessions.py", line 461, in request
    resp = self.send(prep, **send_kwargs)
  File "/Library/Python/2.7/site-packages/requests-2.5.3-py2.7.egg/requests/sessions.py", line 573, in send
    r = adapter.send(request, **kwargs)
  File "/Library/Python/2.7/site-packages/requests-2.5.3-py2.7.egg/requests/adapters.py", line 415, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', BadStatusLine("''",))

檢查上傳的路徑是否是文件?(百度網盤)

如果要上傳的路徑,已經有同樣名稱的文件存在,程序執行過程看起來正常,但實際上並沒有上傳,容易產生誤解,上傳前是否先檢查有這樣情形?

舉例來說:

./pan.baidu.com.py u /data/test.iso /temp/iso

本來是想將 /data/test.iso 上傳到百度的 /temp/iso 裡面,但如果百度上的 /temp/iso 是一個文件,則執行後看起來是成功上傳了,但實際上並沒有。

百度网盘如何计算 HASH?

估计是 HASH 机制的问题,BT 离线的文件 HASH 没有刷新成文件 MD5。 嗯,语死早。
————————————————————
过程:①完成→③无法全部秒传→④全部秒传→②秒离。
同一个 BT 种子,先提交百度网盘离线;再提交迅雷离线,完成后拖到本地,µTorrent 校验 100%,上传至百度网盘。
①和②的 MD5 一致,部分大写部分小写;③和④和本地的 MD5 一致,全部小写;③可以秒传的文件,在①中 MD5 有大写有小写,其中小写一致,大写不一致。

注:①第一次离线;②第二次离线;③第一次上传;④第二次上传;百度网盘内文件 MD5 均由 https://github.com/PeterDing/iScript#pan.baidu.com.py 获取。

pan.baidu.com.py useragent

听说aria2下百度的时候用云管家的UA有提速效果。。。我在海外vps上实测了下改UA前有200-300k/s,改了之后稳定2m/s(最高也就这样了。。。),不知道是否考虑添加UA?
附带云管家的UA

netdisk;4.4.0.6;PC;PC-Windows;6.2.9200;WindowsBaiduYunGuanJia

能不能增加使用rpc的方式调用aria2下载

当使用rpc时,aria2可以动态的调整一些参数,例如同时下载的任务数,速度限制等,
脚本只需要组合下载链接然后扔给aria2,不需要等待它完成,递归下载时特别有用。

rpc的代码大致是这样的

        import xmlrpclib
        rpc_url = "http://127.0.0.1:6800/rpc"
        s = xmlrpclib.ServerProxy(rpc_url)
        uri = "http://pcs.baidu.com/........"

        # the options pass to aria2
        opts = dict (
            out="/path/to/save", # filename to save, relative to dir
            dir="/media/disk1/download", # download directory
            #checksum="md5=abd322131f......", # md5 checksum
            header=["User-Agent: netdisk;5.2.6;PC;PC-Windows;6.2.9200;WindowsBaiduYunGuanJia"] # header, set UA or other
        )
        s.aria2.addUri([uri], opts) # rpc call

虾米登录时出现SSL失败

错误信息如下:
File "xiami.py", line 183, in login
res = ss.post(url, data=data)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 511, in post
return self.request('POST', url, data=data, json=json, *_kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 468, in request
resp = self.send(prep, *_send_kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 433, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

将第183行代码修改为res = ss.post(url, data=data, verify=False)即登录成功

逗号那里 SyntaxError: invalid syntax

pan115 login

 File "/root/scripts/115.py", line 36
 ".wma", ".wav", ".mp3", ".aac", ".ra", ".ram", ".mp2", ".ogg", ".aif",
       ^
SyntaxError: invalid syntax

我有一个vps正常,有一个vps老是出现上面的错误,115和百度的脚本都是这样。

起初我以为是python版本不对,改成了和正常使用的vps一样的python2.7之后还是这样。

求助,实在搞不懂问题在哪儿。
谢谢啦。

关于RapidUploaded

can't be RapidUploaded, now trying normal uploading
打扰了,请问开启快速上传需要装什么包?
我安装了
wget
aria2
rsa
pyasn1
requests
requests-toolbelt
shadowsocks
谢谢!@PeterDing

pan.baidu.com.py

基于这个版本的pan,baidu.com.py 我按照api.py 修改了一份代码,想要实现创建分享。
出了点问题,我想咨询下是因为baidu的api不支持创建分享还是我代码写的错误了。

下面的这个是原来带的l命令,我打出来的log,只获取fs_id

python pan.baidu.com.py  l /test/system.tar
{u'info': [{u'category': 6, u'isdir': 0, u'server_filename': u'system.tar', u'local_mtime': 1416304107, u'server_ctime': 1416305199, u'errno': 0, u'size': 590755840, u'path_md5': 0, u'extent_tinyint1': 0, u'extent_int3': 0, u'extent_tinyint3': 0, u'extent_tinyint2': 0, u'server_mtime': 1425715094, u'file_key': u'B-p2InbI797U1bTwkWI1252d5I2j8j8XI1MvbtY', u'fs_id': 715453165389317, u'extent_tinyint4': 0, u'path': u'/test/system.tar', u'local_ctime': 1416304107, u'md5': u'378c48682ff557f16b7b3649530e78f6'}], u'errno': 0, u'request_id': 371997953892155270}
fid_list :715453165389317  

下面是我新加的share 命令打印出来的log:

python pan.baidu.com.py  share /test/system.tar
{u'info': [{u'category': 6, u'isdir': 0, u'server_filename': u'system.tar', u'local_mtime': 1416304107, u'server_ctime': 1416305199, u'errno': 0, u'size': 590755840, u'path_md5': 0, u'extent_tinyint1': 0, u'extent_int3': 0, u'extent_tinyint3': 0, u'extent_tinyint2': 0, u'server_mtime': 1425715094, u'file_key': u'B-p2InbI797U1bTwkWI1252d5I2j8j8XI1MvbtY', u'fs_id': 715453165389317, u'extent_tinyint4': 0, u'path': u'/test/system.tar', u'local_ctime': 1416304107, u'md5': u'378c48682ff557f16b7b3649530e78f6'}], u'errno': 0, u'request_id': 372000931288887382}
715453165389317
param= channel=chunlei&clienttype=0&web=1&bdstoken=4c26d4d9c8170bf031cd1d651aab412c&channel=chunlei&clienttype=0&web=1&app_id=250528
data= {'fid_list': [715453165389317], 'schannel': 4, 'pwd': 'ltbl', 'channel_list': []}
  !! Error at _share {u'errno': 2, u'link': u'', u'shareid': -1, u'request_id': 372000962297666385}

返还错误 errorno 是2 是什么意思呢?
我用浏览器调试了下,set?后面跟的确实就是如param一样的。
希望能帮我解答下。

最近出现的错误...

baidu d http://pan.baidu.com/s/1c0uNupi -s fr78 -a10

Traceback (most recent call last):
  File "/root/iScript/pan.baidu.com.py", line 3477, in <module>
    main(argv)
  File "/root/iScript/pan.baidu.com.py", line 3473, in main
    handle_command(comd, xxx)
  File "/root/iScript/pan.baidu.com.py", line 3153, in handle_command
    xw.do(paths3)
  File "/root/iScript/pan.baidu.com.py", line 2879, in do
    self.get_params(path)
  File "/root/iScript/pan.baidu.com.py", line 2802, in get_params
    info = self.get_web_fileinfo(html, path)
  File "/root/iScript/pan.baidu.com.py", line 2789, in get_web_fileinfo
    info['uk']       = re.search(r'yunData\.MYUK = "(\d+)"', cm).group(1)
AttributeError: 'NoneType' object has no attribute 'group'

pan.baidu.com.py 一直有问题,无法启动

在新安装的ubuntu 14.04里面,先安装了你提到的依赖,

wget

aria2  (~ 1.18)

python2-rsa

python2-pyasn1

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

requests-toolbelt (https://github.com/sigmavirus24/requests-toolbelt)

mpv (http://mpv.io)

mplayer # 我的linux上mpv播放wmv出错,换用mplayer

wget自带不需要装,aria2mpvmplayer是用apt-get install装的,rsapyasn1requests是用pip安装的,toolbelt是clone到本地后setup.py安装的。安装完这些依赖之后,运行pan.baidu.com.py,出现错误如下:

error

这时我发现pip也出现问题了,我尝试安装了一下其他python库测试了一下,出现下面的问题,

pip error

这究竟是哪里出了问题?? 搞的装了几个python扩展,把pip也给搞挂了。

上面的过程在两个新装的ubuntu14.04机子上测试了两次,都是一样的效果,请问这是什么原因?

求助

Traceback (most recent call last):
File "pan.baidu.com.py", line 2173, in
main(argv)
File "pan.baidu.com.py", line 1711, in main
signal.signal(signal.SIGBUS, sighandler)
AttributeError: 'module' object has no attribute 'SIGBUS'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.