-
-
[原创]python下载抖音无水印视频
-
发表于: 2023-2-6 22:34 6099
-
今天用python测试之前使用的抖音无水印视频下载接口"a0eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2A6k6i4y4V1L8%4g2&6K9h3&6Q4x3X3g2U0L8$3#2Q4x3V1k6%4k6h3u0Q4x3V1k6S2M7r3W2Q4x3V1k6$3x3W2)9J5c8X3q4%4k6h3#2W2i4K6u0r3K9i4c8W2L8h3W2F1k6X3!0Q4x3V1k6Q4x3@1k6A6N6r3g2E0i4K6g2X3K9h3c8K6i4K6y4p5"突然发现无法使用了,百度谷歌github等引擎搜索也没看到新的,便开始自己测试抓包分析获取新的接口,运气好找到了。
1.直接手机打开抖音复制了个视频链接 728K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6$3i4K6u0W2k6r3!0#2P5h3W2F1i4K6u0W2j5$3!0E0i4K6u0r3b7V1q4r3g2o6g2J5b7W2)9J5c8W2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4g2)9&6b7#2!0m8z5q4!0q4y4#2)9&6y4q4!0n7y4g2!0q4z5q4)9^5y4q4)9&6x3g2!0q4z5q4!0n7x3q4!0n7y4#2!0q4y4W2!0m8c8q4)9^5b7#2!0q4y4W2!0n7y4g2)9^5c8W2!0q4z5q4!0m8y4#2)9^5z5q4!0q4y4g2)9&6z5g2!0m8z5q4!0q4y4q4!0n7z5q4)9^5b7g2!0q4y4g2)9^5y4g2)9^5z5q4!0q4y4g2!0n7b7#2)9^5x3q4!0q4y4g2)9&6x3q4!0m8c8W2!0q4y4q4!0n7b7g2)9^5y4W2!0q4y4g2!0n7b7#2)9^5x3q4!0q4y4g2)9^5c8W2)9&6x3g2!0q4z5q4)9^5x3q4)9^5y4g2!0q4y4g2!0n7y4#2!0m8y4g2!0q4y4g2)9^5y4g2!0n7y4#2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4#2)9^5y4q4!0n7y4W2!0q4y4g2)9&6x3q4)9^5c8g2!0q4y4W2)9^5z5g2)9&6x3#2!0q4y4g2!0n7b7#2)9^5x3q4!0q4z5q4!0n7c8W2)9&6z5g2!0q4y4q4!0n7z5q4!0m8b7g2!0q4z5g2)9&6x3#2!0n7c8g2!0q4y4W2)9^5c8g2!0m8y4g2!0q4z5q4!0n7c8W2)9&6b7W2!0q4z5q4!0m8x3g2)9^5b7#2!0q4y4g2)9^5z5q4)9^5y4W2!0q4y4W2)9&6c8g2)9&6x3l9`.`.
如上图在network中过滤链接地址,发现会重定向到了新的地址
"597K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2A6k6i4y4V1L8%4g2&6K9h3&6Q4x3X3g2U0L8$3#2Q4x3V1k6K6K9r3q4J5k6g2)9J5c8Y4k6A6k6r3g2G2i4K6u0r3y4K6p5&6y4o6x3&6x3e0t1@1y4o6b7H3x3e0R3#2y4e0R3H3x3#2)9J5c8W2)9K6c8Y4u0W2k6$3W2G2L8W2)9K6c8p5y4z5i4K6t1$3j5h3#2H3i4K6y4n7L8h3W2V1i4K6y4p5y4K6p5&6y4o6x3&6x3U0b7@1x3o6V1&6x3o6j5&6z5o6t1@1x3#2)9J5y4X3q4E0M7q4)9K6b7Y4f1`.code=2h54c2af&did=MS4wLjABAAAAxSz8AqJVH299l0pzjDWPayaXykpVuDwc9iLyTyUY2SF1C4w7Ohy7uyGAJn3iWkd&iid=MS4wLjABAAAATeiGROCtxfBGYO9SxTrQcz0llqEogdhp7wJoP4dprx9VILKJB-dGggxBHQq1JF26&with_sec_did=1&titleType=title&from_ssr=1×tamp=1675654443&utm_campaign=client_share&app=aweme&utm_medium=ios&tt_from=copy&utm_source=copy"
这个链接测试打开也就是这个地址"9fcK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2V1L8%4g2&6K9h3&6Q4x3X3g2U0L8$3#2Q4x3V1k6$3K9h3c8W2L8#2)9J5c8U0M7I4z5e0b7K6z5e0p5J5y4o6b7@1x3o6p5^5y4e0f1^5x3o6x3`."
2.重新打开开发者工具对"881K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2V1L8%4g2&6K9h3&6Q4x3X3g2U0L8$3#2Q4x3V1k6$3K9h3c8W2L8#2)9J5c8U0M7I4z5e0b7K6z5e0p5J5y4o6b7@1x3o6p5^5y4e0f1^5x3o6x3`."这个地址再次进行分析
在上图用开发者工具左上角选择元素点击视频,返回对应的视频元素地址有三个,选择了最后一个"f33K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2V1L8%4g2&6K9h3&6Q4x3X3g2U0L8$3#2Q4x3V1k6S2N6$3g2E0k6g2)9J5c8Y4j5I4i4K6u0r3M7r3I4S2P5g2)9J5c8W2)9K6c8Y4k6A6k6r3g2G2i4K6g2X3K9h3c8Q4x3@1c8$3x3o6t1H3x3r3k6Y4x3e0l9H3x3o6m8U0k6X3u0H3K9e0R3K6j5K6M7%4N6e0m8J5x3h3N6T1x3h3@1H3x3q4)9J5y4X3q4E0M7q4)9K6b7X3I4A6L8X3g2Q4x3@1b7H3i4K6t1$3j5h3#2H3i4K6y4n7k6X3W2D9k6g2)9#2k6X3W2V1i4K6y4p5j5$3t1&6z5r3j5^5j5U0R3$3z5o6j5%4y4r3t1^5j5X3p5K6x3h3p5J5j5K6f1K6j5e0u0X3j5e0t1^5k6X3u0Q4x3U0k6S2L8i4m8Q4x3@1u0K6K9h3N6F1i4K6y4p5k6e0l9I4x3K6W2T1y4$3j5@1y4K6f1$3x3K6b7@1k6r3k6X3x3e0g2S2y4o6p5%4y4r3q4X3k6r3b7#2k6U0y4Q4x3U0k6S2L8i4m8Q4x3@1u0A6M7#2)9#2k6Y4m8D9j5i4W2Q4y4h3k6#2M7X3I4Q4x3@1b7I4i4K6t1$3j5h3#2H3i4K6y4n7M7$3!0#2M7X3y4W2i4K6y4p5f1r3q4U0K9#2y4G2N6i4u0U0k6f1g2F1N6h3#2Q4y4h3k6m8g2@1g2y4c8g2)9#2k6V1c8q4g2p5q4u0e0q4)9J5y4X3q4E0M7q4)9K6b7X3q4A6k6q4)9K6c8o6j5K6z5o6x3`."打开,得到了无水印视频地址,经测试发现只有一个video_id参数就行,所以简单点地址就是"9d6K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2V1L8%4g2&6K9h3&6Q4x3X3g2U0L8$3#2Q4x3V1k6S2N6$3g2E0k6g2)9J5c8Y4j5I4i4K6u0r3M7r3I4S2P5g2)9J5c8W2)9K6c8Y4k6A6k6r3g2G2i4K6g2X3K9h3c8Q4x3@1c8$3x3o6t1H3x3r3k6Y4x3e0l9H3x3o6m8U0k6X3u0H3K9e0R3K6j5K6M7%4N6e0m8J5x3h3N6T1x3h3@1H3x3l9`.`."
所以接口应该就是"384K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2V1L8%4g2&6K9h3&6Q4x3X3g2U0L8$3#2Q4x3V1k6S2N6$3g2E0k6g2)9J5c8Y4j5I4i4K6u0r3M7r3I4S2P5g2)9J5c8W2)9K6c8Y4k6A6k6r3g2G2i4K6g2X3K9h3c8Q4x3@1b7`." 经过测试多个视频都可以。
3.既然知道了接口,如何知道video_id是多少了,后面再次分析之前的数据包,发现在打开"833K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2V1L8%4g2&6K9h3&6Q4x3X3g2U0L8$3#2Q4x3V1k6$3K9h3c8W2L8#2)9J5c8U0M7I4z5e0b7K6z5e0p5J5y4o6b7@1x3o6p5^5y4e0f1^5x3o6x3`."这个地址的时候,返回码中刚好有video_id,通过了过滤v0200fg10000cfbpi83c77u0r1gb1m00得到,如图
所以就直接在接口”69aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2V1L8%4g2&6K9h3&6Q4x3X3g2U0L8$3#2Q4x3V1k6S2N6$3g2E0k6g2)9J5c8Y4j5I4i4K6u0r3M7r3I4S2P5g2)9J5c8W2)9K6c8Y4k6A6k6r3g2G2i4K6g2X3K9h3c8Q4x3@1c8Q4c8e0u0Q4z5o6m8Q4z5f1y4Q4c8e0c8Q4b7U0S2Q4z5p5q4Q4c8e0g2Q4z5p5q4Q4b7e0m8Q4c8e0c8Q4b7U0S2Q4z5p5q4$3K9h3c8W2L8#2)9#2k6X3W2V1i4@1f1#2i4@1t1H3i4@1t1I4i4@1f1#2i4K6S2r3i4@1q4r3i4@1f1@1i4@1u0n7i4@1p5#2i4@1f1#2i4@1u0q4i4K6V1%4i4@1f1#2i4K6R3^5i4@1t1H3i4@1f1@1i4@1u0m8i4K6R3$3i4@1f1$3i4K6V1%4i4@1p5H3i4@1f1$3i4@1t1H3i4@1t1@1i4@1f1#2i4K6S2p5i4@1t1H3i4@1f1#2i4K6W2o6i4@1t1H3i4@1f1#2i4K6W2p5i4K6R3H3i4@1f1K6i4K6R3H3i4K6R3J5
相关代码如下,写的有点随意,将就着看
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import requests import re try : url = input ( '输入链接地址: ' ) obj = re. compile (r "http.*/" ,re.S) url = obj.finditer(url) for i in url: pid = i.group() print (i.group()) header = { "user-agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" } print ( '1' ,pid) resp = requests.get(url = pid,headers = header, allow_redirects = False ) print (resp.text) pid = re.finditer(r "video/(?P<IID>.*?)/" ,resp.text) print ( '2' ,pid) for i in pid: ID = i.group( 'IID' ) print (i.group( 'IID' )) resp1 = '74cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2V1L8%4g2&6K9h3&6Q4x3X3g2U0L8$3#2Q4x3V1k6D9K9h3N6Z5N6q4)9J5c8W2)9J5y4H3`.`. + ID print (resp1) resp2 = requests.get(url = resp1,headers = header) c = re.search(r "video_id%3D(?P<IID1>.*?)%26" , resp2.text) print (c.group( 'IID1' )) zq = c.group( 'IID1' ) urll = f "0f2K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2V1L8%4g2&6K9h3&6Q4x3X3g2U0L8$3#2Q4x3V1k6S2N6$3g2E0k6g2)9J5c8Y4j5I4i4K6u0r3M7r3I4S2P5g2)9J5c8W2)9K6c8Y4k6A6k6r3g2G2i4K6g2X3K9h3c8Q4x3@1c8Q4y4@1u0*7M7g2)9%4c8l9`.`." with open (f '{zq}' + '.mp4' , 'wb' ) as f : m4 = requests.get(url = urll,headers = header).content f.write(m4) except : print ( '解析异常' ) |
赞赏
- [原创]python下载抖音无水印视频 6100