Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

抖音无水印视频一键下载 #22

Open
imfenghuang opened this issue Jan 6, 2019 · 3 comments
Open

抖音无水印视频一键下载 #22

imfenghuang opened this issue Jan 6, 2019 · 3 comments

Comments

@imfenghuang
Copy link
Owner

imfenghuang commented Jan 6, 2019

先上代码:https://github.com/imfenghuang/DouYinDownloader

起因

这个代码的需求是基友问我有没有方法可以下载到抖音无水印的视频,他之前用的下载方式要收费了。
遇到这种情况,第一步当然是,我先找找资料看再说,:)

于是上 github 搜了一阵子,发现已经有一些抖音视频下载的 repo 了。下载了一些其中的方案进行尝试,发现并不能满足要求。有些是 repo 不在维护,有些则是用的接口已经变化了。只能自己写代码了。(PS:其实还有偷懒的方法的,后面说)

在抖音 APP 内操作分享可以得到一个链接(分享短链),如 http://v.douyin.com/LmKj5u/,直接打开这个链接会重定向到一个正式页面 https://www.iesdouyin.com/share/video/6642982187945692430/?region=CN&mid=6642982238554196744&u_code=j3eg281d&titleType=title&timestamp=1546699260&utm_campaign=client_share&app=aweme&utm_medium=ios&tt_from=copy&utm_source=copy&iid=56485046541,点击页面上的播放按钮,视频自动加载播放。但是这个播放的视频是带有水印。

同时,抖音对视频还做了重定向,如下:

// 视频地址
https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0300f8d0000bgo9pvdpimm1au37qs2g&line=0

// 视频重定向地址
http://v9-dy-z.ixigua.com/2be280f0130a0100349ba5dfd4a03440/5c31e3fe/video/m/2208afc04ce90be49dd9094ae2e58a2609111612e98400006cf6f93d9ba7/?rc=anY6eDRwc3k8ajMzZ2kzM0ApQHRoaGR1KTY0MzM0MzQzMzM0NDMzNDVvQGgzdSlAZjN1KXB6YnMxaDFwekApNTRkL24wXmpmYW1sXy0tNS0wc3MtbyNqdDppLT82Li8xNC0uLjU1My42LTojbyM6YS1xIzpgYmJeZl5fdGJiXmA1Ljo%3D

直接播放的视频是带水印的,那么无水印的视频又在那儿呢。其实,只要把视频链接里的 playwm 替换成 play 就行了。

// 无水印视频地址
https://aweme.snssdk.com/aweme/v1/play/?video_id=v0300f8d0000bgo9pvdpimm1au37qs2g&line=0

// js调整
$("#theVideo")[0].src = $("#theVideo")[0].src.replace("playwm","play")

注意:如果直接在新窗口打开无水印视频地址,可能会被重定向到一个视频不见了的默认视频去。这儿被坑了好一会儿。主要原因是抖音服务器会判断一下 user-agent,用 chrome 模拟 iPhone 打开就行啦。

综上,下载视频的大致逻辑就比较清楚了:
1.输入分享短链 -> 2.获取真实页面 -> 3.解析页面 -> 4.获取水印视频链接 -> 5.获取无水印视频链接 -> 6.下载视频

废话不多说,上代码

结果

python 一键下载抖音无水印视频:https://github.com/imfenghuang/DouYinDownloader

其它

上面的方式适合在电脑端操作,如果想要在手机端操作怎么呢?可以撸一个捷径,这个后面补充。

在 iPhone Safari 打开 https://aweme.snssdk.com/aweme/v1/play/?video_id=v0300f8d0000bgo9pvdpimm1au37qs2g&line=0 无水印视频链接,可以直接播放,此时想下载就方便啦

当然,如果你在电脑端浏览器操作的话,还可以这样操作:
获取无水印视频真实地址
下载视频

@cnscorpions
Copy link

好的,学习下

@imfenghuang
Copy link
Owner Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants