SuperAPI AI 工具集

web-media-getter

编程与开发

查看项目

更新于 10-15 20:27

技能介绍

用途:web-media-getter 通过一个脚本 webmedia.py 并行查询多个免费图片/视频/GIF 来源,返回归一化结果列表,可选下载前 K 条并生成署名 sidecar 文件。脚本为零依赖标准库实现。

主要能力与来源:无需密钥的来源包括 openverse(CC 网络图片)、wikimedia(事实/历史/地标照片)、internetarchive(历史/档案图片与影片)、loc(美国历史照片)、nasa(太空图像与视频)。需要免费密钥的来源包括 pexels、pixabay(现代图库照片与短视频)、klipy(GIF,推荐,免费无限,Tenor 替代)、giphy(GIF,库最大,生产密钥需审批)。GIF 来源仅在 --type gif 时触发。密钥 PEXELS_API_KEY、PIXABAY_API_KEY、KLIPY_API_KEY、GIPHY_API_KEY 放在 central/.env,可选,5 个无密钥来源无需密钥即可使用。tenor 适配器已移除(Google 于 2026-06-30 停止该 API)。klipy 适配器未经验证,假定与 Tenor 请求/响应兼容,配置密钥时需对照 docs.klipy.com 验证。

使用方式:命令行示例包括 webmedia.py "1950s street scene" --type image --count 8 --json;webmedia.py "rocket launch" --type video --source nasa,internetarchive;webmedia.py "car factory 1930s" --source all --download --out /tmp/cars。参数:--source all(默认)| nokey(仅无密钥)| 逗号列表;--type image|video;--count N;--json;--download --out DIR。--download 会抓取每条结果的直接媒体 URL,并写入 attribution.json(source、author、license、url、page_url)。记录结构:{source, title, url, thumb, dl, page_url, author, license, w, h, type},dl 为可直接下载的媒体 URL,仅有页面时为 None。

视频注意事项:档案来源(Internet Archive、Europeana、LoC)托管整部影片/纪录片而非单个镜头。现代单条短片用 pexels/pixabay(直接 MP4);历史单镜头需先取回 IA 影片再提取镜头,可用 Twelve Labs Marengo 搜索(免费 600 分钟)传入 IA 公开 MP4 URL 获取带时间戳片段并用 ffmpeg 剪辑,或用 PySceneDetect 本地切分镜头再用 CLIP 排序关键帧。

音频:webmedia.py 仅处理图片/视频。音效与音频判断由 central/scripts/ 下的兄弟脚本处理:freesound-fetch.py "<query>" [count] [max_sec] [out_dir] 搜索 freesound.org 并下载短 hq-mp3 预览,每文件输出一行 JSON 含 license/user,密钥 FREESOUND_API_KEY;audio-judge.py <file> "<target>" 将片段发给 OpenAI gpt-audio 返回 JSON {heard, score, matches, suggestion},可自动从 .env 读取 OPENAI_API_KEY,会为不足 2 秒的片段补长。注意该判断器能可靠描述音频并过滤明显不匹配,但不适合判断主观音质,仅用于筛选而非最终审美决策。

适用场景:需要真实或历史素材的检索与下载任务。限制:部分来源需密钥;klipy 适配器未验证;档案视频需额外步骤提取单镜头;音频判断器主观性不可靠。