某音漂亮小姐姐视频合集一键下载,想看就看!

news2025/1/12 21:09:30

大家好,我是派森酱! 

最近工作压力大,每天晚上回来基本洗洗就要睡了。但是总觉得一天就这么过去,有点遗憾,所以每天睡前躺床上刷刷抖音,看看美丽小姐姐,心情就会舒畅许多! 

有些小姐姐的视频真是百看不厌,就想保存到手机,在需要安慰的时候(空虚寂寞冷)拿出来欣赏一下,给自己打打气!

所以就动手把她们的视频扒下来,慢慢欣赏!下面就给大家介绍一下扒拉的过程。

本文介绍3个方面

  • 怎么下载windows版某音的高清视频壁纸(回顾旧文+视频介绍)

  • 下载某音单个视频(视频介绍)

  • 下载某音用户视频合集(详细介绍)

使用mitmproxy,不论是网页版某音还是windows版某音,视频、动态壁纸、评论都可以下载。

mitmproxy的代理配置和证书安装在python技术公众号已介绍过 抓取某音短视频数据

写这篇文章,是因为我想下载这个合集的105个视频

1413713cb9492a842234c7588b64751f.png

下载这些有什么用处呢?

好处之一是获得丰富的素材,让你眼花缭乱,我一口气下载了windows版某音400多个高清视频壁纸

2d74bf72f9cc95f4df18e2c0fd33761a.png

都是高清横版的桌面动态视频壁纸,简直不要太香。

之前用“绕过cookie”的方式下载过懂车帝上收藏的视频,比较来说,我们今天介绍的方法更简单,都不用运行python去模拟请求了。看mitmweb怎么帮你精确匹配:

99c5fecc7b2f6cf5f04d67ea02df8a79.gif

定义好搜索条件"wallpaper",刷新某音动态壁纸,左边会出现新的链接,视频MP4地址都在这些链接里!

具体可以参考文章 用Python爬取某音动态壁纸,桌面更香了

为表述清楚,第一次尝试制作了视频版进行说明:

使用视频素材

我用剪映做的这个"三分屏片头效果":

需要3个舞蹈视频,都是通过mitmproxy从某音动态壁纸获取链接,然后python处理批量下载的。

很多青春活力的舞蹈,下载下来用上去简直不要太合适

4ef0f69b85bfd91f60036999f9c1fac6.png

下载单个视频

单个视频的下载用mitmdump -q -s 脚本名的方式,脚本很简单,这样写就可以了

def response(flow):
    if 'web.douyinvod.com' in flow.request.url:
        print('nice111',flow.request.url)

你刷的某音视频匹配web.douyinvod.com

微信的视频号,某音视频下的评论,同样可以用这种方式获取或下载,因为链接是有特征的:

  • 某音视频链接一般匹配web.douyinvod.com

  • 微信视频号匹配video.qq.com

  • 某音视频下的评论匹配v1/web/comment/list

具体看我录制的视频介绍:

这种方式可以把你正在看的某音漂亮视频实时下载下来

下载某音用户视频合集

说了这么多,进入今天的主题,下载视频合集

570687ed4f6185457add2107d69cf7b8.png

注意看,这个合集更新至105集。

记住这个数字,我们要把它全部下载下来。以免作者删除作品就看不到了。

先设置代理并启动mitmweb,

然后在网页上点开合集,进入到播放页面

a8b7eeb05ba6f913b11e117a937d43ea.png

滚动鼠标滚轮会依次播放这个合集的视频,我们耐心一点,滚动到最后一个作品(第105个)。

快速滚动就好了,目的是让mitmweb记录到这些视频数据。虽然稍微繁琐,但100多个视频十几秒滚动完,然后就好办了。

接下来的步骤跟用Python爬取某音动态壁纸,桌面更香了!几乎一样,只要换个搜索条件。

mix有“合集”的意思,我们搜索“mix/”看到7个url

7f6b7e53e097290cd074e5db54136c22.png

假如选中一个,点击“Download”按钮,会下载一个“content.data”的文件

6d34be724ef03e6e47ecc9e636878971.png

7个url就是7个content.data文件,用脚本去做去重处理

import json

url_list = []
url_dict = {}
with open('content.data', 'r',encoding='utf-8') as f:
    x = json.load(f)
    for i in x['aweme_list']:
        #去掉特殊的
        if 'anchor_info' in i:
            continue
        else:
            for i in i['video']['bit_rate']:
                #url_list有3个url,但视频内容相同,取最后一个
                url = i['play_addr']['url_list'][2]
                #video_id相同的是同一个视频,取出video_id,用字典去重
                a = url.split('video_id=')[1].split('&line=')[0]
                print(a)
                url_dict[a] = url

#去重后的视频添加到列表中
for k,v in url_dict.items():
    url_list.append(v)

print(len(url_list))
print(url_list)

打印一下输出,每个content.data有15个视频地址

c71f2a4e0a6463e965284fac9dda3e74.png

7个content.data,7乘以15就是105个视频,整个合集的视频下载地址都在这了!

然后用脚本下载

import os
import requests
from tqdm import tqdm

VIDEO_PATH = r'videos'
def download(url,fname):
    # 用流stream的方式获取url的数据
    resp = requests.get(url, stream=True,verify=False)
    total = int(resp.headers.get('content-length', 0))
    with open(fname, 'wb') as file, tqdm(
        desc=fname,
        total=total,
        unit='iB',
        unit_scale=True,
        unit_divisor=1024,
    ) as bar:
        for data in resp.iter_content(chunk_size=1024):
            size = file.write(data)
            bar.update(size)


if __name__ == "__main__":
    url_list = ['https://www.douyin.com/aweme/v1/play/?video_id=v0d00fg10000cagm35rc77u3k4nb0430&line=0&file_id=fec3f8eeb45e48a18f30dfd96922f659&sign=4450c5609c69d0a5c1100e6801cf25dd&is_play_url=1&source=PackSourceEnum_AWEME_DETAIL', 'https://www.douyin.com/aweme/v1/play/?video_id=v0200fg10000c9glhfrc77u0fbj4iqs0&line=0&file_id=e330ce20f5f245e9b1923f8cd26b6ef9&sign=0ee1a91a52645237a4d1382c22a0b540&is_play_url=1&source=PackSourceEnum_AWEME_DETAIL', ...]
    for url in url_list:
        video_name = url[47:67]
        video_full_path = os.path.join(VIDEO_PATH,"%s.mp4" % video_name)
        download(url, video_full_path)

下载好的视频,如下图所示

7980559e25df001492a070a45503a6bf.png

好了,今天就介绍到这里,咱们下期见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/145804.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

架构师成长日记 - 01 4+1视图模型

文章目录 什么是软件架构什么是架构师?架构师的主要能力4+1视图模型逻辑视图(Logical View)开发视图(Development View)物理视图(Physical View)过程视图(Process View)场景视图(scenarios)软件建模语言什么是软件架构 软件架构是有关软件整体结构与组件的抽象描述,用于指导大…

StarkWare的Recursive STARKs

1. 引言 StarkWare的Recursive STARKs 为首个在以太坊主网上线的,针对通用计算的recursive stark proof方案: 递归证明目前已在以太坊主网上线: 扩容StarkEx app扩容StarkNet用于StarkWare的SaaS scaling engine用于permissionless rollup …

javaScript浅谈----asyncawait

什么是 async ? async/await 是 ES7 的标准,Promise 是 ES6 标准,async/await 这套 API 也是用来帮助我们写异步代码的,它是构建在 Promise 之上的。 async的特点: async 一般不单独使用,而是和 await 一…

3. 无重复字符的最长子串(滑动窗口)

文章目录题目描述暴力破解滑动窗口优化知识积累待解决题目描述 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输…

python 操作符介绍

python操作符分类:算数操作符;比较操作符;逻辑操作符;成员操作符;身份操作符; 1 算数操作符: 常用的算数操作符:; python如何执行除法: 许多编程语言中整数除法执行的…

另一半人马座,孟庭苇

我写过生于12月25日的半人马座桂纶镁《半人马座,桂纶镁》。射手座是11月23日-12月21日。而摩羯座的开始恰恰是:12月22日。而孟庭苇,恰恰就生于12月22日。她更是半人马座啊。1989年,20岁的孟庭苇出演铃木机车广告出道(没…

分享一套响应式自适应公司网站官网源码,带文字搭建教程

分享一套响应式自适应公司网站官网源码,带文字搭建教程。需要源码学习可私信我。 技术架构 PHP7.2 nginx mysql5.7 JS CSS HTML cnetos7以上 宝塔面板 系统介绍 1、四网合一企业网站管理系统支持在线升级(支持跨版本)、插件在线安装、系…

跳表SkipList介绍与实现

目录 一.跳表介绍 二.实现思路 (一).结点结构 (二).检索 (三).插入 (四).删除 三.实现代码 一.跳表介绍 跳表是一种随机化数据结构,主要用于快速检索数据。实质上…

JavaScript 函数

文章目录JavaScript 函数JavaScript 函数语法调用带参数的函数带有返回值的函数局部 JavaScript 变量全局 JavaScript 变量JavaScript 变量的生存期向未声明的 JavaScript 变量分配值笔记列表JavaScript 函数 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。 实…

Go语言之容器总结

目录 1.值类型 1.1. 数组Array 数组遍历 数组初始化 值拷贝 内置函数len、cap 2. 引用数据类型 2.1. 切片slice 切片初始化 切片的内存布局 通过slice修改struct array值 用append内置函数操作切片(切片追加) slice自动扩容 slice中cap重新…

基于yolov5算法的安全帽头盔检测源码+模型,Pytorch开发,智能工地安全领域中头盔目标检测的应用

基于yolov5算法的安全帽头盔检测|Pytorch开发源码模型 本期给大家打开的是YOLOv5在智能工地安全领域中头盔目标检测的应用。 完整代码下载地址:基于yolov5算法的安全帽头盔检测源码模型 可视化界面演示: 💥💥💥新增…

opencv c++ Mat CUDA的编译与使用

Mat 构造函数 cv::Mat img ; //默认 定义了一个Mat img cv::imread("image.jpg");//除了直接读取,还有通过大小构造等cv::Mat img cv::imread("image.png", IMREAD_GRAYSCALE); cv::Mat img_novel img;转换 Mat::convertTo(Mat& m, in…

【自学Java】Java方法

Java方法 Java方法教程 在 Java 语言 中,方法就是一段可重复调用的代码段。在平时开发直接交流中,也有一些同学喜欢把方法叫做函数,这两个其实是一个概念。 Java语言方法详解 语法 public void fun(Object param1,...){//do something }…

多线程与高并发(四)

【Exchanger】&#xff1a; package Ten_Class.t04.no139;import java.util.concurrent.Exchanger;public class T12_TestExchanger {static Exchanger<String> exchanger new Exchanger<>();public static void main(String[] args) {new Thread(() -> {Stri…

实验二十四 策略路由配置

实验二十四 策略路由配置实验要求&#xff1a; 某企业通过路由器AR1连接互联网&#xff0c;由于业务儒要&#xff0c;与两家运营商ISPA和ISPB相连。 企业网内的数据流从业务类型上可以分为两类&#xff0c; 一类来自于网络172.16.0.0/16&#xff0c;另 一类 来自于网络172.17.0…

百趣代谢组学分享:黑木耳多糖对小鼠肠道微生物及代谢表型的影响

文章标题&#xff1a;Effects of Auricularia auricula Polysaccharides on Gut Microbiota and Metabolic Phenotype in Mice 发表期刊&#xff1a;Foods 影响因子&#xff1a;5.561 作者单位&#xff1a;西北大学 百趣提供服务&#xff1a;发现代谢组学Standard-亲水版、1…

dataCompare大数据对比之异源数据对比

在从0到1介绍一下开源大数据比对平台dataCompare 已经详细介绍了dataCompare 的功能&#xff0c;目前dataCompare 已经实现同源数据的对比 一、dataCompare 现有核心功能如下&#xff1a; (1)数量级对比 (2)一致性对比 (3)差异case 自动发现 (4)定时调度自动对比数据 二、…

【个人解答版】笔试题-2023禾赛-FPGA

题目背景 笔试时间&#xff1a;2022.06.22应聘岗位&#xff1a;FPGA开发工程师 题目评价 难易程度&#xff1a;★★☆☆☆知识覆盖&#xff1a;★☆☆☆☆超纲范围&#xff1a;☆☆☆☆☆值得一刷&#xff1a;★☆☆☆☆ 文章目录1. 使用最少的电路实现二分频&#xff0c;给出…

《机器学习实战》chap1 机器学习概览

《机器学习实战》chap1 机器学习概览 Chap1 The Machine Learning Landscape 这本书第三版也已经出版了:https://github.com/ageron/handson-ml3 Hands-on Machine Learning with Scikit-Learn,Keras & TensorFlow 引入 很早的应用&#xff1a;光学字符识别(OCR&#xff0…

远程办公之怎样在外网登录在线答题网站

很多学校或企业因为教学、测试需要&#xff0c;为学生或员工提供了在线答题平台网站&#xff0c;但弊端是这种在线答题平台只能在校内或在企业内网访问使用&#xff0c;在外网是无法登录访问的。在无公网Ip服务器上部署的web&#xff0c;默认情况下只能内网访问&#xff0c;公网…