自动清理B站稍后再看列表

news/2025/11/23 10:27:53/文章来源:https://www.cnblogs.com/xiaoma2018/p/19259555

自动清理B站稍后再看列表

转载自己的知乎文章:https://zhuanlan.zhihu.com/p/30454297255

2025年11月23日

不知道有没有人和我一样,看B站喜欢把一大堆视频加入稍后再看,有些视频甚至看都不看就稍后再看了,导致稍后再看列表轻轻松松塞满。以前B站的稍后再看只能放一百个视频,两天就能塞满,现在扩容到一千个,依然用不了多久。

为了解决这个问题,自己用Python简单写了个脚本(好吧,是通义千问帮我写的),按照600个视频为限,如果超过就删除20个最早加入稍后再看的视频,然后再到Windows任务计划中设置定时执行。我自己设置了半个小时执行一次,再配合自己电脑一般一开就是一天,保证稍后再看列表一直可用。

当然,这里需要破除一个心魔,稍后再看里的视频删掉了可惜嘛?至少现在我觉得还好了。一方面600个视频的容量足够大,那些被清理掉的视频都是加入有段时间了,这么久没看,也没留下印象,就让它过去吧。另一方面,自己越来越把B站当成播客电台了,每次从稍后再看点开列表,有啥听啥,和听广播一样的感觉。

这里附上Python代码:

import http.client
import json
import urllib
from time import sleep# 使用标准库获取稍后再看列表的方法
def get_toview_list(sessdata):conn = http.client.HTTPSConnection("api.bilibili.com")headers = {'Cookie': f'SESSDATA={sessdata}',}conn.request("GET", "/x/v2/history/toview", headers=headers)response = conn.getresponse()if response.status == 200:data = json.loads(response.read())if data['code'] == 0:return data['data']['list']else:print("Failed to fetch toview list:", data['message'])return []else:print(f"Error fetching toview list: {response.status} {response.reason}")return []# 使用标准库从稍后再看中移除视频的方法
def remove_from_toview(aid, sessdata, csrf):conn = http.client.HTTPSConnection("api.bilibili.com")payload = urllib.parse.urlencode({'aid': aid,'csrf': csrf,})headers = {'Content-Type': 'application/x-www-form-urlencoded','Cookie': f'SESSDATA={sessdata}',}conn.request("POST", "/x/v2/history/toview/del", body=payload, headers=headers)  # 注意这里使用POST方法response = conn.getresponse()result = json.loads(response.read())if result['code'] == 0:print(f"Successfully removed video with aid: {aid}")else:print(f"Failed to remove video with aid: {aid}, reason: {result['message']}")MAX_Toview_Videos = 600
DELETE_CNT_EACH_TIME = 10def manage_toview_videos(sessdata, csrf):toview_list = get_toview_list(sessdata)current_count = len(toview_list)print(f"Current count of 'toview' videos: {current_count}")if current_count > MAX_Toview_Videos:videos_to_remove = current_count - MAX_Toview_Videosvideos_to_remove = min(videos_to_remove, DELETE_CNT_EACH_TIME)print(f"Need to remove {videos_to_remove} videos.")for i in range(videos_to_remove):# 由于列表是从前往后排序的,所以我们倒序遍历以从最后开始移除aid_to_remove = toview_list[-(i + 1)]['aid']remove_from_toview(aid_to_remove, sessdata, csrf)# 暂停1秒sleep(1)if __name__ == '__main__':SESSDATA = "xxxxxxxxxxxxxxxxx"  # 替换为您的SESSDATACSRF = "xxxxxxxxxxxx"  # 替换为您的CSRF token,cookie中bili_jct的值。manage_toview_videos(SESSDATA, CSRF)

代码中MAX_Toview_Videos表示自己设置的视频容量上限,超过的话每次执行会删除DELETE_CNT_EACH_TIME数量的视频,这两个值可以自己修改。

另外,代码中有两个值需要自己从网页浏览器的Cookies信息中复制出来,方法就是用一个已经登录B站的浏览器,打开开发者模式,在Cookies中查到SESSDATA和CSRF两个值(CSRF这个值应该查bili_jct,查CSRF可能查不到)。

然后在任意一个位置把上述代码保存到一个文件中,比如 autoremove_watchlater.py 。然后在Windows中设置任务计划程序,具体方法百度一下。注意设置“操作”的时候,“程序或脚本”填写自己安装的Python路径,填写pythonw.exe的路径,在执行的时候不会像python.exe一样弹出命令行窗口。“添加参数”部分填自己的代码文件路径。点击执行测试一下,会发现自己的稍后再看列表少了最早添加的视频,大功告成!


补充:现在把代码部署到个人家用服务器的Linux(openSUSE Leap 16)上了。可以用crontab或者systemd实现开机自动启动和定时执行,但是我选择直接代码里循环执行,中途睡眠一小时(sleep(3600*1)),自己开机启动,简单。

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

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

相关文章

Gemini下载

Gemini安卓版下载 ,gemini apk下载「Gemini最新版下载」 使用gemini需要安装Google,Google需要google服务和服务框架,gemini更新需要google play ,所以全部都要安装

高斯约旦消元模版

模版,留个代码 #include <bits/stdc++.h> #define int long long using namespace std; constexpr int maxn = 110; constexpr int maxm = 210; constexpr double eps = 1e-7;double mat[maxn][maxm];signed ma…

每日一练-ping返回数据解析-TTL

linux--TTL--64 windows---TTL--128 Unix--TTL--255 每减一个数表示中间路过一个路由器。最多不超过30 QQ:254595754 手机号:15074704856

完整教程:设计模式-备忘录模式(Memento)

完整教程:设计模式-备忘录模式(Memento)2025-11-23 10:09 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: blo…

SQL之表的增删 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

PixPin_cn_zh-cn_2.2.4.0 解锁会员功能

PixPin_cn_zh-cn_2.2.4.0 解锁会员功能 PixAuth.dll 发现关键功能dll,有非常显眼的导出函数:isProUser,序号52其实内部调用序号53 地址 类型 序号 符号 符号(…

左移是不是可以想成指针的移动

字符串要简单就是要跳出字符串吧 我不知道为什么他们写的那么快反正我是过了好几天才优化了这个解法 1.fgets函数读取一整行 scanf会自动到换行符停止的 2.最后的strlen会记录换行符 3.移动n 开头的陷阱一定要取模 4.w…

详细介绍:【优选算法】DC-Mergesort-Harmonies:分治-归并的算法之谐

详细介绍:【优选算法】D&C-Mergesort-Harmonies:分治-归并的算法之谐pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-famil…

2025年11月西安宣传片,西安活动跟拍,西安活动跟拍公司推荐:全流程拍摄服务与性价比优选指南

2025年11月西安宣传片与活动跟拍,选陕西光与影影视文化传播有限公司在2025年11月的西安,城市的魅力在光影中绽放,各类活动精彩纷呈。无论是展现城市风采的宣传片,还是记录活动精彩瞬间的跟拍服务,都需要一家专业且…

2025年11月北京财税机构评价榜单:服务性能与用户口碑评测

在选择财税服务时,许多企业主和财务负责人面临共同挑战。您可能是初创公司创始人,需要快速完成工商注册与税务登记;或是成长型企业管理者,希望优化财税结构并控制成本;也可能是大型企业财务总监,寻求专业外包以提…

详细介绍:破解多数据库并存难题!电科金仓异构多活架构铸就安全底座

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年11月立体库厂家推荐榜:基于资质与案例的五大品牌对比分析

在制造业与物流业持续升级的背景下,企业对仓储空间优化与自动化水平提升的需求日益显著。选择一家可靠的立体库厂家,成为许多企业管理者、物流部门负责人及项目规划人员面临的关键决策。这类用户通常需要解决仓库用地…

2025年11月立体库厂家推荐榜单与客观评价指南

随着制造业与物流业的快速发展,企业对仓储空间利用率和作业效率的要求日益提升,立体库作为智能仓储的核心设备,其选型成为众多企业管理者关注的焦点。选择立体库厂家的用户通常包括工厂运营负责人、物流中心规划师及…

2025年11月西安宣传片,西安活动跟拍,西安活动跟拍公司推荐:影视制作口碑品牌与实力红榜发布

2025年11月西安宣传片与活动跟拍,陕西光与影传媒实力尽显在2025年11月的西安,城市的魅力在光影中不断绽放,宣传片与活动跟拍成为记录这座城市活力与风采的重要方式。而在众多相关服务公司中,陕西光与影影视文化传播…

2025年11月西安宣传片,西安活动跟拍,西安活动跟拍公司推荐:实拍技术实力与定制化服务解析

2025 年 11 月西安宣传片与活动跟拍,陕西光与影传媒实力担当在 2025 年 11 月的西安,城市的每一个角落都散发着独特的魅力,无论是历史古迹的厚重底蕴,还是现代活动的蓬勃活力,都需要专业的镜头去捕捉和呈现。而陕…

【stm32】【Freertos】config详解(2) - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

V形磁场超时空转换器

V形磁场超时空转换器 时间和空间在客观世界中不是保持不变的。时间会随着空间曲率的增加而变慢。物体移动速度越快,时间就会越慢。当物体速度达到光速时,时间就会停止。但,两者改变的方向和宇宙膨胀的方向一致。也就…

【普中STM32F1xx开发攻略--标准库版】-- 第 9 章 STM32 固件库介绍 - 实践

【普中STM32F1xx开发攻略--标准库版】-- 第 9 章 STM32 固件库介绍 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family…

详解Mysql的 sql_mode(SQL 模式)

详解Mysql的 sql_mode(SQL 模式) 详解 MySQL 的 sql_mode(SQL 模式) 一、sql_mode 核心概念 sql_mode 是 MySQL 中语法校验、数据校验、行为兼容的核心配置,它定义了 MySQL 对 SQL 语法的解析规则、数据有效性的…

字符串函数的运用

<!DOCTYPE html> <html lang="zh - CN"><head><meta charset="UTF - 8"><meta name="viewport" content="width=device-width, initial - scale=1.0&q…