11年的花开物语的音乐资源真难找,绝大部分bt资源都死掉了,我还是悲剧的内网用户,BT下载真悲剧。基本只能靠长效种子的服务器来下载,那些活着的服务器经常都不给我一点资源,就算是1kb也行啊。
下载多个剧场版种子,已经接近一个星期0速度了,观察到不同bt任务情况

比较两个文件大小,两个文件大小完全一致,这两个很大概率是同一个文件。
用HxD打开,观察,坑爹。。。那个下载到95.6%的tak文件居然没有文件头,用播放器打开,提示不识别文件,超悲剧。而那个只下载了43.5%的tak文件,有文件头,用播放器打开也听得到音乐。


拖到文件尾,发现两个文件的尾部都下载好了,而且两个文件尾一模一样,没错了,这两个是同一个文件。


确认这两个是相同文件之后,修复的办法就是用那个只下载43.5%的文件来给那个95.6%的文件来补缺。bitcomet对文件未完成部分看起来只是单纯填充0。tak是无损压缩格式,既然是压缩文件,那正常文件内容不会有一大片0的区域,那存在一大片0的区域就一定是没下载的地方。
熟悉python,写个python脚本 来帮我找哪里有一大堆0,把那个下载到95.6%的tak文件复制出来然后重命名为1.tak,而下载到43.6%的文件复制后重命名为2.tak,以便于区分。一定要复制一份新的来操作,避免损坏原文件。
然后写了个python脚本 来查找这两个文件中哪里里连续存在大于等于16个0字节的区域

import osf1 = open(r"C:\Downloads\bing\1.tak", 'rb')
f2 = open(r"C:\Downloads\bing\2.tak", 'rb')log1 = open('1.log', 'w')
log2 = open('2.log', 'w')def print_empty_seg(f, logf, block_size=16):empty_has_start = Falseempty_start = 0empty_end = 0while True:data = f.read(block_size)data = list(data)r = sum(data)if r == 0 and not empty_has_start:empty_has_start = Trueempty_start = f.tell() - len(data)s = str(empty_start) + ' 'logf.write(s)print(s, end='')elif r > 0 and empty_has_start:empty_has_start = Falseempty_end = f.tell() - len(data)s = str(empty_end) + '\n'logf.write(s)print(s, end='')if len(data) < block_size:breakif empty_has_start:s = str(f.tell()) + '\n'logf.write(s)print(s, end='')logf.flush()print_empty_seg(f1, log1)
print_empty_seg(f2, log2)f1.close()
f2.close()
log1.close()
log2.close()

运行后输出两个log文件
log文件中,每行第一个数字是未下载区段的开始偏移,第二个数字是结束偏移。
1.log 文件内容

2.log 输出内容

观察到。。。这两个文件都同时缺了 59713472-59713488 和 89140576-89140579 两端,心里一凉。。。用HxD打开看看
用HxD打开这个下载了95.6%的文件,跳转到59713472


发现这一行全为0,但是上面和下面都有数据,又打开那个下载到43.5%的文件,也跳转到59713472这里观察。

发现这个下载到43.5%的文件,跟之前的95.6%的文件数据一样,猜测,这里应该就是16个0字节,原本就有着16个0字节。
接着看89140576偏移处。


观察到也是一样的,也猜测原来文件也是这样的。。。
这样的话, 59713472-59713488 和 89140576-89140579 就应该不是未下载段了。不过就算是,也完全没办法。。。

--------分界点1
这样的话,那个下载95.6%的文件只有 0-14096 区段是未下载区段了,刚好,那个下载了43.5%的文件正好有对应的数据。
正好,再写个python脚本把 2.tak 的 0-14096 的数据写到 1.tak 中


f1 = open(r"C:\Downloads\bing\1.tak", 'rb+')
f2 = open(r"C:\Downloads\bing\2.tak", 'rb')d = f2.read(14096)
f1.write(d)f1.close()
f2.close()

执行后,1.tak处理完了
用播放器打开,听了一遍,没啥问题。然后搜索一下tak文件的特性,看到

每一音频帧都可以校验,突然想起以前好像用过tak的相关工具将tak转换为wav格式,好像还附带查错功能。
去到tak的官网 http://thbeck.de/Tak/Tak.html
找到了一个工具

下载后解压后打开,找到这 Tak.exe


打开后使用这功能

添加刚刚修复好的文件 1.tak

然后点击 Test

呃。。。仍然是损坏文件了。。。
目录下多了个文件,打开

发现这里坏了。。。

试试把 2.tak 也检查一下看看
不出所料也是坏的

但是看看日志

虽然坏了很多地方,但是,可以发现,跟1.tak坏的地方并不一样,错开了。说明还可以继续修复。
那些数字是说第几个帧开始,连续损坏多少个帧,Tak不开源,不知道确切的文件偏移地址。
就用土方法,这1.tak文件大小是85.0M
用百分比公式来大概猜测文件偏移。并且观察到,1.tak和2.tak的损坏区间之间隔着很大的距离,所以下面的偏移不精确也没关系
结束偏移= (71656+5512)/34489140 * (8510241024)=199422.298882489
随便取个整,200000
修改一下脚本再执行


f1 = open(r"C:\Downloads\bing\1.tak", 'rb+')
f2 = open(r"C:\Downloads\bing\2.tak", 'rb')d = f2.read(200000)
f1.write(d)f1.close()
f2.close()

再用Test执行一次看看

文件修好了!!!

分界线2


上面操作犯了个愚蠢的错误,本来可以更快处理好的
就是没有 去 1.tak 和 2.tak 的 14096 偏移观察一下
1.tak 的 14096 偏移处

2.tak 的 14096 偏移

观察之后可以发现,准确点应该是 2.tak 的 0-14096+4 区段的内容到 1.tak
之前过于高兴忘记了观察。加上 偏移 4 之后,再使用 tak.exe 进行检查,校验通过了


f1 = open(r"C:\Downloads\bing\1.tak", 'rb+')
f2 = open(r"C:\Downloads\bing\2.tak", 'rb')d = f2.read(14096+4)
f1.write(d)f1.close()
f2.close()

bk 来自搜索到的320Kbps版本cd
tak log cue 来自以下两个磁力
magnet:?xt=urn:btih:FLIOE5OOJPBTUPRHXOTAEXMHCMEKXE6C
magnet:?xt=urn:btih:RKKPXG3UZ5RFOLIEKMTDKIQZJ6HOQ4KC

顺便加上修好的文件的链接。。。这张cd很难找了。。。
顺便打了一个包。
「花咲くいろは HOME SWEET HOME」主題歌「影踏み」/nano.RIPE(tak+cue+jpg+log)

详细记一次合并修复 BT下载未完成文件 经历相关推荐

  1. BT下载伤硬盘的解决办法

    BT下载伤硬盘的解决办法 2010年10月30日 BT下载伤硬盘的解决办法 硬盘读写频繁是否真的伤害硬盘兼FLASHGET是否真的伤害硬盘V5版.事先说明一下,我这里只是提到FLASHGET,没有提到 ...

  2. 迅雷同时下载的人数越多,BT下载越快的奥秘——另辟蹊径的P2P应用

    同时下载的人数越多,BT下载越快的奥秘--另辟蹊径的P2P应用 BT大家或许不熟,但迅雷下载大家一定知道.通过BT下载同一文件的人数越多,BT下载的速度就越快,这跟我们通常所理解的有些不一样.要说明原 ...

  3. idm如何下载种子文件和磁力链接 idm如何下载torrent

    采用分段式下载技术并支持断点续传的idm下载加速器,几乎可以胜任所有的下载任务.由于该软件强大的下载能力和仅为10MB的小巧体积,idm被来自全球的用户亲切地称为天花板级的下载软件.那么有关idm如何 ...

  4. BitCome比特彗星v1.82豪华版(bt下载)

    简介: BitComet(比特彗星)是一款高效专业的老牌国产BT下载软件,BT资源下载利器! BitComet独有长效种子功能,大幅度增加下载速度,增加种子存活率: 这款BT下载客户端支持BT/HTT ...

  5. BT下载会损害硬盘吗?--硬盘的工作原理,硬盘寿命

    关键字:硬盘,电脑维修,电脑故障,BT,Emule,P2P,S2P,FlashXP,FlashGet,ftp,NetAnts电骡,电驴,资源下载,软件下载,损坏硬盘,硬盘的工作原理,硬盘寿命,磁盘整理 ...

  6. 这3个BT下载工具,可替代迅雷,总有一个适合你

    对于经常用BT电影大片,追番剧的宅男腐女们,BT流媒体是一个不错的选择,它可以让你即时了解的文件的质量.此外,它还使你能够快速找到你的视频并马上观看. 比如uTorrent和Vuze+等BitTorr ...

  7. BitComet for Mac(高效好用的BT下载客户端)

    BitComet for Ma一款支持多任务下载的BT下载工具.Bitcomet mac版具有高效的网络内核,即使同时下载多个文件也只占用很少的CPU内存,bitcomet macos还可以对一个bt ...

  8. tixati中文版下载 | Tixati(bt下载器)官方中文版V2.88 | 敏感资源无法下载怎么解决?

    tixati中文版是一款优秀免费同时又专业易用的BitTorrent客户端软件和强悍的bt下载器工具,绝无任何商业推广行为,百分百纯净,采用C语言开发,支持DHT.PEX和Magnet Link以及超 ...

  9. bt服务器搭建 linux_用树莓派搭建BT下载服务器

    用树莓派搭建BT下载服务器,外出或睡觉的时候就不用开着电脑下载了,而且更省电.很简单,只要安装 transmission 就可以了,更棒的是它还可以通过 Web 界面控制! 1.首先安装 transm ...

最新文章

  1. k8s pod restartcount 改0_Prometheus+k8s之告警通知
  2. SpringMVC的请求-文件上传-单文件上传的代码实现2
  3. Neo4j导入:java.lang.IllegalStateException:不支持在单个导入中混合指定和未指定的组所有物...
  4. 区块链上智能合约的讲解
  5. mount 挂载光盘
  6. Mysql中有哪些数据类型(建议收藏)
  7. 第三章 选择结构
  8. c语言中清屏的作用是什么,清屏函数的使用
  9. 美通企业日报 | 阿里、腾讯占领公有云市场半壁江山;2018年雅思考生350万人次创新高...
  10. 图片批量上传至服务器/华为云obs 前台采用webuploader.js div+css布局 图片.zip华为云obs浏览器下载
  11. 计算机cad运行缓慢怎样处理,旧电脑如何提高CAD运行速度
  12. 数学建模竞赛赛前准备及资源分享
  13. 初识Unity 3D——认识材质球、贴图
  14. 呸!都TM开始打广告了,垃圾!
  15. 谷歌浏览器里部分字体变模糊的问题。
  16. 安阳工学院计算机专业宿舍,安阳工学院宿舍条件,宿舍环境图片(10篇)
  17. UILabel根据字数计算高度,宽度,行数
  18. [译] 3.泛型和子类型
  19. python获取股票的市盈率_怎样查找股票的历史市盈率数据?
  20. perl中的grep函数介绍

热门文章

  1. 误删除文件怎样恢复更简单
  2. 一、Docker 概念、生态、相关版本
  3. 通信机房空调优化节能方案
  4. VS2012fopen报错处理
  5. java显示日历 插件_JAVA里 怎么用日期控件 在Grid里显示这个月的1-31号
  6. 简历造假_深造假的技术对策
  7. 软件测试培训费用多少?
  8. 爬虫基础(1)什么是网络爬虫
  9. Python从入门到精通,100天就够了!(1)——Python初体验
  10. 【考研每日一题41】买房子(C++)