两行代码解决百度云视频变成 8秒净网公告
很多人在百度云上都有这样的经历,辛苦下载的视频上传到百度云后,一段时间后会变成8秒的“净网”广告。
伤心!如果出现上面的界面,恭喜你,基本上没救了,趁早删了视频节省下空间吧。
想了一下,百度大概有种几种手段来判断视频问题。
1、安排人员去做视频排查,查一个标记一个。
2、抽查一些视频,利用视频数据帧截取一些视频图片,再进行排查
3、比较视频的MD5码
1是不可能的,最有可能就是2跟3一起。先利用视频里面的一些载图来标定是不是不合法的视频,这个判断有可能会误杀一些视频,但是同时也可能会漏掉一些视频。
有些视频刚上传上去就会被判断出来,并且有些文件基本上是秒传的,所以说明百度云里面是根据MD5来判断的。每个文件对应一个MD5,一个文件百度云上保存一份,后面其它人上传的时候,不管文件是什么名称,只要判断MD5是一样的,复制一个链接给他就行了, 不用再上传文件,这样节省了服务器带宽,也节省了用户的时间。目前所有的云存储都是这样实现的。
也说明了修改文件的名称是没有用的,修改文件的名称是没有用的,修改文件的名称是没有用的。
为啥,因为MD5不包含文件名称属性。
知道这个原理后,解决百度云 净网行动应该很简单了。
fo = open("test.mp4","w")
testFile.write("ah")
打开文件,然后在文件后面追加几个字符,这几个字符你随便写。不影响整体文件播放。
亲测有效。是不是两行。
当然我是比较懒的,不可能一个视频一个视频的处理,所以我把文件夹下面的视频文件都修改了,可以参考下面的代码。
# -*- coding: utf-8 -*-
importhashlib
importshutil
importos
fromosimportwalk
fromosimportlistdir
defget_filepaths(directory):
file_paths = []# List which will store all of the full filepaths.
forroot, directories, filesinos.walk(directory):
forfilenameinfiles:
filepath = os.path.join(root, filename)
extension = os.path.splitext(filename)[1][1:]
ifextensionin("jpg","png","torrent"):
os.remove(filepath)
else:
file_paths.append(filepath)# Add it to the list.
returnfile_paths
dir ="D://xunleidown//private"// your dir
new_file_name = []
files = get_filepaths(dir)
forfileinfiles:
filename, file_extension = os.path.splitext(file)
new_file_name = filename +"bak"+ file_extension
withopen(file,"a")astestFile:
testFile.write("ah")
print"done"
好害怕有人问我,“用java怎么实现呢?”,统一回答,“自行翻译”
最后,小编还有一个笨方法,就是把视频压缩之后上传,最好是带密码的那种,但这样就无法在线观看了,也是比较麻烦,大家还有什么好方法,欢迎留言交流!
八戒推荐
来自:https://www.jianshu.com/p/0c2fd1becc4f
如有侵权请及时联系,谢谢!!
戳这里,搜索更多编程视频教程