python宣传视频 抖音_python下载抖音无水印视频

只要一刷抖音视频,基本上就是停不下来,看到一些喜欢的视频,就想下载下来,但是通过正常手段下载的视频都会带有抖音的水印,今天就一起来使用非正常手段来看看怎么获取无水印抖音视频。

1、获取视频链接地址

这一步其实就不用多说了,玩抖音的应该都知道怎么获取链接。点击转发分享,在下面的弹层中找到复制链接,然后就获得了该视频的链接。

顺带说一下,这里得到的链接是一种短链接,是经过抖音特殊处理过的链接,通常我们手机短信里收到的营销推广链接也大多数是短链接,短链接原理有兴趣的可自行去了解下。

2、解析视频源地址

这一步属于最核心的操作。我们拿到上一步获得的链接后,在浏览器中打开看看,同时把开发者模式打开,可以看到有一个被重定向的请求,如下图。

——有水印视频——

重新请求该链接,发现能打开视频,但是有水印。再认真看下这个链接,这个链接其实主要就是由一个文件目录和视频 id 构成。

https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0300f340000bipb94i3n0e292ugb3cg&line=0

这个文件目录中有个 playwm ,水印的单词是 watermark,wm 可能就是 watermark 的缩写,所以这个 playwm 很有可能就是指水印视频的目录了。

那么 play 是不是就是无水印视频目录了呢,赶紧先试试看。把链接中的 playwm 替换成 play,果然看到了无水印视频,好激动,有木有。。。

——无水印视频——

其实还有一个办法,把第一步得到的链接在浏览器中打开后,右键查看源代码,搜索 playAddr 就可以看到该视频的带水印链接。

——代码中的playAddr——

注意在打开无水印视频链接的时候,需要把浏览器切换成手机模式,在 pc 模式下,会提示视频不见了。

3、下载视频

有了无水印视频链接,下载就很简单了,直接右键另存为就可以保存到本地了。

获取抖音无水印视频就是这么简单,上面的操作你都可以通过电脑浏览器手工完成。如果你想用程序来实现上面这个下载无水印视频的功能,又该怎么做呢,你可以自己动手去实现一下。

当然我自己已经使用 python 实现了该功能,有兴趣的可以在后台回复关键字【抖音】,可获取完整源码。

码字不易,如果文章对你有一些启发,点个赞哈,感谢支持。

抖音水印视频下载可以通过调用API接口实现。可以使用Python或Java编写相关代码。 Python实现: ``` import requests import json url = 'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?itemId=' item_id = '视频ID' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } response = requests.get(url=url+item_id, headers=headers) data = json.loads(response.text) video_url = data['item_list'][0]['video']['play_addr']['url_list'][0] video = requests.get(video_url, headers=headers) with open('video.mp4', 'wb') as f: f.write(video.content) ``` Java实现: ``` import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; public class DownloadVideo { public static void main(String[] args) throws IOException { String url = "https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?itemId="; String item_id = "视频ID"; String user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"; String video_url = ""; URL real_url = new URL(url+item_id); HttpURLConnection connection = (HttpURLConnection) real_url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("User-Agent", user_agent); connection.setRequestProperty("Accept", "*/*"); connection.setRequestProperty("Content-Type", "application/json"); connection.setRequestProperty("Connection", "keep-alive"); connection.connect(); InputStream in = connection.getInputStream(); byte[] buf = new byte[1024]; int len = 0; StringBuffer stringBuffer = new StringBuffer(); while((len=in.read(buf))!=-1){ stringBuffer.append(new String(buf,0,len)); } in.close(); JSONObject jsonObject = JSON.parseObject(stringBuffer.toString()); video_url = jsonObject.getJSONObject("item_list").getJSONObject("video").getJSONArray("play_addr").getJSONObject(0).getString("url_list").get(0); real_url = new URL(video_url); connection = (HttpURLConnection) real_url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("User-Agent", user_agent); connection.setRequestProperty("Accept", "*/*"); connection.setRequestProperty("Content-Type", "application/octet-stream"); connection.setRequestProperty("Connection", "keep-alive"); connection.connect(); in = connection.getInputStream(); FileOutputStream out = new FileOutputStream("video.mp4"); while((len=in.read(buf))!=-1){ out.write(buf,0,len); } in.close(); out.close(); } } ``` 注意:以上代码仅供学习参考,请勿用于非法用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值