# 以图搜番 **Repository Path**: tuxiaobei/find_video_by_pic ## Basic Information - **Project Name**: 以图搜番 - **Description**: 自动从 B 站下载视频并入库,提供检测番剧更新,下载,入库,压缩并保存一条路服务 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2020-11-27 - **Last Updated**: 2025-04-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 以图搜番 #### 介绍 自动从 B 站下载视频并入库,提供检测番剧更新,下载,入库,压缩并保存一条路服务 支持图片与视频库中视频进行检索匹配,并返回相关视频,定位关键帧。 使用了免费的百度智能云图片搜索服务 #### 安装教程 1. 系统环境要求:Windows/Linux 系统,python 版本 >= 3.7 2. 安装依赖 ``` pip install baidu-aip oss2 bilibili_api moviepy imagehash pillow apt-get install ffmpeg ``` #### 使用说明 1. 创建[百度智能云-图像搜索](https://cloud.baidu.com/product/imagesearch)相似图图库(需要实名认证) 2. 将获取到的应用的API Key,Secret Key填入到 `main.py` 的第 21 行,可参考[获取Access Token](http://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu) 3. 获取 bilibili cookie 中的 `SESSDATA` , 填入 `down_bilibili.py` 的第 41 行(有效期一个月) 4. 修改 `setting.json` ```json { "queue": { //待上传番剧列表,每次启动都会遍历此列表进行更新 "season_id": [ //番剧季度id,如:https://www.bilibili.com/bangumi/play/ss33378 [ "33378,2", //tag,用于搜索条件限制,详情见图像搜索API文档 33378 //番剧季度id ] ], "epid": [ //epid:番剧单集ID,如:https://www.bilibili.com/bangumi/play/ep325877 [ "33378,2", //tag 325877 //epid:番剧单集ID ] ] }, "rate": 5, //视频每秒采样帧数 "crf": 36, //视频压缩参数 "resolution": 480 //视频压缩分辨率(宽) } ``` 5.定时运行 `main.py` ,会自动记录上次进度,每天免费上传 10000 张图片,超过限制会自动停止,处理完成的视频将会以 `视频的cid.mp4` 的命名方式存储在 `video` 文件夹 6.检索操作: 参考:[相似图片搜索—检索](https://cloud.baidu.com/doc/IMAGESEARCH/s/3k3bczqz8#%E7%9B%B8%E4%BC%BC%E5%9B%BE%E7%89%87%E6%90%9C%E7%B4%A2%E6%A3%80%E7%B4%A2) ----- 请求示例 HTTP 方法:POST 请求URL: https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/search URL参数: `access_toke` :通过 `API Key` 和 `Secret Key` 获取的 `access_token` ,参考“Access Token获取” `Header` 如下: `Content-Type` `application/x-www-form-urlencoded` `Body`中放置请求参数,参数详情如下: 请求参数 ![](http://study.xndxfz.com/wp-content/uploads/2020/11/屏幕截图-2020-11-27-120909.png) 返回示例: ```json { "result_num": 1, //检索结果数 "result": [ //结果数组 { "score": 0.97976700290421, //图片相关性,取值范围0-1,越接近1代表越相似 "brief": "{"bvid": "BV1PQ4y1N7V8", "cid": 183362119, "epid": 321808, "time": 0.2}", //图片额外信息,包含所属视频的 bvid,cid和epid,字符串格式,使用之前需要解码成 JSON 数据 "cont_sign": "475124309,1080176642" //图片签名,可以用来删除图片或定位问题 } ], "has_more": "false", "log_id": 1968648150 //唯一的log id,用于问题定位 } ``` 提示:你可以使用 bilibili_api 提供的相关函数获取例如视频标题等更多信息 #### 参考项目 1. [Bilibili(b站)视频下载](https://github.com/Henryhaohao/Bilibili_video_download) 2. [bilibili_api](https://passkou.com/bilibili_api/)