# media-kit **Repository Path**: lieefu/media-kit ## Basic Information - **Project Name**: media-kit - **Description**: 下载网络视频,并支持视频和图片去水印、视频语音文案提取 - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-13 - **Last Updated**: 2026-10-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 视频和图片工具箱 · 程序代码 「视频下载 + 视频/图片去水印」的本地工具。浏览器打开、本机运行、不连云端。 ## 启动 ```bash cd /media/lieefu/aiwork/workbuddy/视频和图片工具箱 sh start-web.sh # → http://127.0.0.1:8770/ ``` 命令行版(可选): ```bash .venv/bin/python -m app.cli "<链接>" --list .venv/bin/python -m app.cli "<链接>" -q 1080 -t 8 .venv/bin/python -m app.cli "<链接>" --cookie yuanbao="<元宝 Cookie,视频号用>" ``` ## 能做什么 | | 说明 | |---|---| | **下载** | **只下视频,不含图片**:X / YouTube / B站 / 抖音 / 小红书 / 微信视频号,以及 yt-dlp 覆盖的微博 / Instagram / 快手 / TikTok 等(**除 X / 抖音 / 视频号**外都交给 yt-dlp)。**录入框里可以直接粘一整段分享文案**(抖音/快手那种「5.89 复制打开抖音…https://v.douyin.com/xxx/ 03/02 …」),会自动把里面的网址抠出来再用(`downloaders/__init__.py::extract_urls`;解析与下载两处都抠,下载绝不会把整段文案传下去)。一段里有多条链接时**先解析第一条**,并提示「还有 N 个链接没解析」(当前一次解析一个)。**录入框还会先离线预判支持范围**:不在范围内的链接(纯文本、不认识的网站、`ftp://` 等)**直接提示、不去解析**——预判不联网、不跑 yt-dlp(`downloaders/__init__.py::probe_support`)。⛔ **推文里的图片一律忽略**(只挑视频);一条推文如果只有图片、没有视频,会明确提示「这个推文里没有能找到的视频」,不会下任何东西(2026-10-14 用户定) | | **去水印** | 两种算法可选:**智能修补(默认)**(OpenCV `inpaint`,把框外像素向内渐变扩散,小角标/小字水印几乎无痕)与 **`delogo`**(ffmpeg 框内插值,旧算法,留着可回退)。视频与图片都行;框内处理、原版永远保留、另存 `…_去水印.ext`(**成品始终只保留一份**:无论从原片再做还是从成品再做,都覆盖这同一份,不再堆 `_2`/`_3`) | | **本地导入** | 把任意本地视频/图片拖进页面,直接去水印。**整页还支持 `Ctrl`+`V` 粘贴**:系统截屏后不用先存盘,在本页按一下就直接落进「我的视频和图片」(见下方「粘贴(Ctrl+V)」一节) | | **批量** | 「我的视频和图片」多选 → 点「批量去水印」→ 在弹出的**记忆框库**里选一组框(可多选合并,右侧用选中的文件当样本预览框的位置),确认后套到全部选中文件;不需要的框可直接删。样本文件可在弹层里切换(默认第一个)。同一块工具条上还有**「删除所选」**(取消勾选时置灰):一次删掉全部勾选项,与卡片上的单个「删除」走**同一条**后端删除(先弹一次确认、**真删不可恢复**、指向它的任务记录一并清走,删完清空选择并刷新三个列表) | | **预设区域** | 同一来源的水印位置固定,框一次即可复用(含跨分辨率换算);「记忆名」可留空,留空时按「平台+分辨率+框坐标」自动生成指纹键 | | **界面里直接画框** | 批量弹层右侧**直接按住左键在画面上拖动**就能画一组新框(无需先点任何按钮;可撤销/清空),点**「存为记忆框」**立刻存进左侧列表并自动选中。⛔ 手画的框是样本的原生像素坐标、**不做跨分辨率缩放**,只对与样本同分辨率的文件准;尺寸不一致时界面会黄条警告 | | **弹层翻页** | 去水印弹层(显示画面的那个)与「看图 / 看视频」弹层都支持**上一个 / 下一个**(⚠️ 文案不用「上一张 / 下一张」——列表里既有图片又有视频,用「张」是把视频当纸片了):头部按钮组 + 画面两侧悬浮箭头,也可用 `←` / `→` 方向键。翻页范围=该文件**所在的列表**(「我的视频和图片」或「已下载视频」),顺序与屏幕一致;只有一个文件时整组控件自动隐藏 | | **看图 / 看视频** | 列表里点**「显示」(图片)/「播放」(视频)在弹层里打开**(不再是 `window.open` 新标签页)。**两个列表的缩略图本身就是入口**:点「已下载视频」的封面图、或点「我的视频和图片」的缩略图,都直接打开播放/看图弹层(鼠标悬停有淡蓝描边、视频卡上还有个 ▶ 角标;没缩略图/抽帧失败时那块黑底照样可点;缩略图上的勾选框和角标不抢点击)。**打开即自动播放**(点缩略图 / 点「播放」/ 按翻页箭头都是用户手势,浏览器允许带声音自动播;万一被自动播放策略拦下,视频停在那里,手动点播放键照样能播)。同样是头部按钮组 + 两侧悬浮箭头 + `←`/`→` 翻页,范围=所在列表;图片走 ``、视频走内置 `