吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2382|回复: 27
收起左侧

[原创工具] [Python+Lua] 在 mpv 里刷抖音推荐

  [复制链接]
星峰 发表于 2026-6-20 14:23
本帖最后由 星峰 于 2026-6-20 14:32 编辑

[Python+Lua] 在 mpv 里刷抖音推荐

前言

用 mpv 看视频是一种享受——轻量、无广告、快捷键自由、超低资源占用。

这个工具把抖音推荐 Feed 完整搬进了 mpv

  • Python 后端直接调用抖音 Web API 获取推荐内容
  • 通过 mpv IPC 协议控制播放,自动选最高画质(支持 H.265)
  • 支持普通视频 + 直播间
  • Lua 脚本极简,只做按键→HTTP 请求转发,零业务逻辑
  • mpv 未运行时自动启动,无需手动操作

整个方案不需要浏览器、不需要油猴脚本,两个文件搞定。

效果

  • 启动服务后自动拉取推荐并播放第一个视频
  • Alt+RIGHT / Alt+j 切下一个,Alt+LEFT / Alt+k 回上一个
  • 视频播完自动切下一个
  • OSD 显示视频标题、作者、画质、队列位置
  • 队列剩 1 个时后台预取下一页,切换无感

架构

┌─────────────────────────────────────────┐
│              mpv 播放器                   │
│  ┌─────────────────────────────────┐    │
│  │  douyin_control.lua (~75行)      │    │
│  │  按键 → curl → HTTP 请求        │    │
│  └────────────┬────────────────────┘    │
│               │ HTTP (fire-and-forget)  │
└───────────────┼─────────────────────────┘
                │
                ▼
┌─────────────────────────────────────────┐
│         douyin_server.py                │
│  ┌──────────┐  ┌───────────────────┐    │
│  │ HTTP 服务 │  │ 抖音 API 客户端    │    │
│  │ :8080    │  │ Feed / 直播间      │    │
│  └────┬─────┘  └────────┬──────────┘    │
│       │                 │               │
│  ┌────┴─────────────────┴──────────┐    │
│  │  mpv IPC 客户端                   │    │
│  │  Unix Socket / Windows Named Pipe│    │
│  │  自动启动 mpv + 轮询就绪          │    │
│  └──────────────────────────────────┘    │
└─────────────────────────────────────────┘

Lua 只是一个"键盘遥控器",所有逻辑在 Python 里:获取 Feed、解析画质、选择最高分辨率、获取直播流、管理预取队列、控制 mpv 播放。

依赖

  • Python 3.10+
  • mpv(需支持 --input-ipc-server--script
  • curl(系统自带,Lua 通过 curl 发 HTTP 请求)
  • aiohttppip install aiohttp

使用方法

打开浏览器,登录 douyin.com,使用 Cookie 导出扩展(如 EditThisCookie、Cookie-Editor)导出抖音 Cookie,保存为 douyin_cookies.json,与 douyin_server.py 放在同一目录。

支持三种格式:

// 格式1: JSON 对象
{ "msToken": "xxx", "ttwid": "xxx", ... }

// 格式2: JSON 数组(EditThisCookie 等扩展导出格式)
[{"name": "msToken", "value": "xxx"}, {"name": "ttwid", "value": "xxx"}]

// 格式3: Netscape 格式(某些导出工具)
# Netscape HTTP Cookie File
.douyin.com        TRUE        /        TRUE        1234567890        msToken        xxx

2. 启动服务

pip install aiohttp
python douyin_server.py

看到以下输出说明启动成功:

  ================================
    抖音推荐服务 (Python + mpv IPC)
  ================================
  HTTP:  http://127.0.0.1:8080
  MPV IPC: /tmp/mpv-douyin
  Cookie: /path/to/douyin_cookies.json

  已加载 42 个 Cookie
  [Feed] +8 个视频 (队列:8 更多:True)
  > 播放: @某作者 - 视频标题...

mpv 会自动启动(服务启动时),无需手动运行。关闭后可手动运行start_mpv.bat

3. 快捷键

按键 功能
Alt+RIGHT / Alt+j 下一个视频
Alt+LEFT / Alt+k 上一个视频
i 显示当前视频信息
Alt+s 服务器状态(队列数、Cookie 状态等)

也可自定义绑定
例如我使用的mpv-lazy在input_uosc.conf里添加:

按键 功能
UP script-binding douyin_prev
DOWN script-binding douyin_next
WHEEL_UP script-binding douyin_prev
WHEEL_DOWN script-binding douyin_next

视频播完会自动切换下一个

4. 手动启动 mpv(可选)

一般不需要,服务会自动启动。如需手动:

mpv.exe --input-ipc-server=\\.\pipe\mpv-douyin --script=douyin_control.lua --idle=yes --force-window=yes

配置项

douyin_server.py 顶部可调整:

PORT = 8080                # HTTP 服务端口
FEED_COUNT = 10            # 每页获取视频数
INCLUDE_LIVE = True        # False 则跳过直播间卡片

功能特性

智能预取

队列剩余 ≤ 1 个视频时,后台自动预取下一页,切换视频时无需等待加载。

HTTP 接口

服务监听 127.0.0.1:8080,提供以下接口(Lua 通过 curl 调用,也可手动调试):

接口 方法 说明
/next GET 下一个视频
/prev GET 上一个视频
/info GET 当前视频信息(OSD 显示)
/status GET 服务器状态
/prefetch GET 手动预取下一页
/cookie POST 更新 Cookie(JSON body)
# 手动测试
curl http://127.0.0.1:8080/next
curl http://127.0.0.1:8080/status

目录结构

微信截图_20260620135343.jpg
微信截图_20260620143157.jpg

已知问题(已满足个人需求所以未处理)

  • 只获取了视频,不包含直播
  • 视频分辨率只有720p
  • 没有评论等信息

下载

打包了exe,也可自行用源码打包,exe执行成功不会有任何提示,直接打开mpv

免责声明

本工具仅供学习交流使用,请勿用于任何商业用途。使用本工具所产生的一切后果由使用者自行承担。

免费评分

参与人数 7吾爱币 +12 热心值 +6 收起 理由
zhangwei6929 + 1 + 1 谢谢@Thanks!
8362455 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wanfon + 1 + 1 热心回复!
weidechan + 1 用心讨论,共获提升!
sinkfin + 1 + 1 谢谢@Thanks!
ChiZhu + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 星峰 发表于 2026-6-26 22:58
Dqing 发表于 2026-6-26 19:01
请问,切换视频的快捷键是?能用鼠标控制吗?

3. 快捷键
按键         功能
Alt+RIGHT / Alt+j         下一个视频
Alt+LEFT / Alt+k         上一个视频
i         显示当前视频信息
Alt+s         服务器状态(队列数、Cookie 状态等)

也可自定义绑定
例如我使用的mpv-lazy在input_uosc.conf里添加:
按键         功能
UP         script-binding douyin_prev
DOWN         script-binding douyin_next
WHEEL_UP         script-binding douyin_prev
WHEEL_DOWN         script-binding douyin_next

文章中有说明啊
失忆的风筝 发表于 2026-6-30 14:37
心雨飞飞 发表于 2026-6-30 14:24
没解决,还不知道是啥原因引起的。

关掉的时候没有把端口断掉  要cmd里面去查找被占用的端口进程ID      然后用命令taskkill /F /PID     这个看能优化一下吗
绵绵青山 发表于 2026-6-20 15:12
winwoo 发表于 2026-6-20 15:36
里面这么多的文件是那个
sinkfin 发表于 2026-6-20 16:02
有点意思
sjxsyy2004 发表于 2026-6-20 21:37
着东东看着不错
mlwnl 发表于 2026-6-20 22:18
mpv,还以为是suv、mpv那个mpv
greendays 发表于 2026-6-21 09:20
大厂的风控都很变态,得用小号试试先...
river9118 发表于 2026-6-21 10:24
这个新颖,可以试试
godliusf 发表于 2026-6-21 11:32
这个可以玩玩
robertclarke 发表于 2026-6-22 08:33
上班摸鱼的好帮手
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-7-10 18:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表