【Skill 创作】get-gif:一个帮你快速搜索和下载 GIF 动图的 Skill

1、Skill简介

这是一个能够快速搜索和下载 GIF 动图的 Skill,基于 Tenor API,支持命令行搜索、JSON 输出和 Markdown 格式展示。默认每次只返回一个最相关的 GIF,适合需要在聊天、文档或社交媒体中快速插入 GIF 表情的用户使用。

2、使用场景

为什么想做它?

在日常聊天和内容创作中,GIF 动图是表达情绪、活跃气氛的利器。但每次想找个合适的 GIF,都要:

  • 打开浏览器搜索 GIF 网站

  • 在大量结果中翻找

  • 复制链接或下载

  • 粘贴到需要的地方

这个过程太繁琐了,尤其是当你只是想快速找一个"点赞"、"鼓掌"或"可爱"的表情时。

之前遇到了什么麻烦?

  • 手动搜索 GIF 耗时,经常要在多个网站间切换

  • 搜索结果太多,选择困难

  • 无法快速获取可直接使用的 URL

  • 在命令行或代码环境中不方便操作

做出来之后能省掉哪些动作?

  • 一句指令直接获取 GIF,无需打开浏览器

  • 默认返回一个最相关的结果,避免选择困难

  • 支持多种输出格式(Markdown、JSON、纯 URL)

  • 可批量获取多个 GIF(通过 --max 参数)

  • 标题智能优化,即使 API 无标题也能生成有意义的名称

3、创作过程

灵感来源

在使用 SOLO 平台时,我发现经常需要在对话中插入 GIF 来表达情绪或活跃气氛。但每次都得手动去 GIF 网站搜索,效率很低。我就想,能不能做一个 Skill,让我直接在命令行里搜索 GIF?

使用 SOLO 的创作步骤

  1. 需求分析:确定核心需求——搜索 GIF,默认返回一个结果,支持多种输出格式

  2. API 选择:选择了 Tenor API(Google 旗下),免费且无需注册

  3. 功能设计:

  • 命令行参数解析(query、–max、–json、–format)

  • Markdown 格式输出(带标题、预览图、原图链接)

  • JSON 格式输出(便于程序化处理)

  1. 标题优化:实现智能标题生成逻辑,优先使用 API 标题,其次使用标签,最后使用搜索关键词

  2. 输出调整:默认只返回 1 个 GIF,避免信息过载

  3. 测试验证:多次测试不同关键词,确保输出稳定

关键代码


def get_gif_title(result: Dict, query: str = "") -> str:

"""获取 GIF 标题,如果标题为空则从标签或搜索关键词生成"""

title = result.get("title", "")

if title and title.strip():

return title.strip()

tags = result.get("tags", [])

if tags:

return " ".join(t.capitalize() for t in tags[:3])

if query:

return f"{query.title()} GIF"

return "GIF 动图"

技术架构

  • API 调用:使用 Python requests 库调用 Tenor REST API

  • 数据解析:提取 id、title、url、preview_url、tags 等字段

  • 格式输出:支持 Markdown 表格、JSON、纯文本等多种格式

  • 智能标题:优先使用 API 标题 → 标签 → 搜索关键词

开发过程

4、使用步骤

第一步:直接安装


npx skills add https://github.com/Codeniu/skills --skill get-gif

第二步:调用 Skill

方式一:命令行调用


cd \you-workspace\get-gif

python core.py love

方式二:通过 SOLO 平台

直接在对话中输入:Use Skill: get-gif love

第三步:查看结果

Skill 会返回格式化后的 GIF 结果:


## Love GIF

![GIF](https://media.tenor.com/xxx.gif)

[查看原图](https://tenor.com/xxx)

常用命令

  1. python core.py love | 搜索一个 love 相关的 GIF
  2. python core.py happy --max 3 | 搜索 3 个 happy 相关的 GIF
  3. python core.py cat --json | 以 JSON 格式输出结果
  4. python core.py dog --format url | 只输出 GIF 的 URL

5、效果展示

使用前

手动搜索 GIF 的流程:

  1. 打开浏览器

  2. 访问 GIF 网站(如 tenor.com、giphy.com)

  3. 输入关键词搜索

  4. 浏览大量结果

  5. 选择一个 GIF

  6. 复制链接或下载

  7. 粘贴到需要的地方

  8. 总耗时:约 1-2 分钟

使用后

一句指令搞定:

  1. 输入:python core.py love

  2. 立即获得一个精选 GIF

  3. 总耗时:约 2-3 秒

效率对比

  • 时间节省:从 1-2 分钟缩短到 3 秒,提升 20-40 倍

  • 操作步骤:从 7 步减少到 1 步

  • 选择成本:无需在大量结果中纠结

效果截图

使用后:一句指令获取精选 GIF


gif-gifkk

一句指令搞定

6、Skill 链接

7、总结与思考

收获与感悟

创建这个 Skill 的过程让我深刻体会到:

  1. 灵活扩展:支持多种输出格式,满足不同场景需求

  2. API 的力量:善用免费 API,可以快速实现强大的功能

最满意的地方

最满意的是智能标题生成和默认单结果的设计。智能标题确保即使 API 数据不完整,用户也能看到有意义的结果描述;默认单结果则避免了信息过载,让用户专注于最相关的一个 GIF。

后续优化方向

  1. GIF 下载功能:支持将 GIF 直接下载到本地

  2. 多源支持:集成 Giphy、Reddit 等更多 GIF 源

  3. TUI 预览:在终端中预览 GIF(需要特定终端支持)

  4. 收藏功能:支持收藏喜欢的 GIF,方便后续使用

  5. 静图提取:从 GIF 中提取指定帧作为静态图片

希望得到的建议

  1. 你还希望支持哪些 GIF 源?

  2. 输出格式有什么可以改进的地方?

  3. 你有什么其他功能期待?


如果你经常需要在聊天、文档或代码中插入 GIF,欢迎体验这个 Skill!它简单、快捷、零门槛,一句话就能找到合适的 GIF。期待你的反馈和建议,让我们一起让 GIF 搜索变得更高效! :clapper_board:

4 个赞

这个好啊,在我手动搬运表情之外,有提供了一个选项,等我分享到社区,

6 个赞