资讯动态

SenseNova-Skills 英文社交平台搜索技能实战:用 sn-search-social-en 统一检索 Reddit / Twitter(X) / YouTube

发布时间:2026/10/13 6:05:34 来源:尧图企业网站定制
AI 技能人工智能深度研究数据分析媒体生成【免费下载链接】SenseNova-SkillsModular SenseNova skills for building AI-powered office assistants and productivity workflows项目地址https://gitcode.com/gh_mirrors/se/SenseNova-Skills点击查看免费下载本指南基于 SenseNova-Skills 开源仓库中的sn-search-social-en技能完整讲解如何通过三个独立 Python 脚本检索 Reddit 帖子、Twitter/X 推文与 YouTube 视频涵盖凭证配置、依赖安装、全部命令行参数、统一 JSON 输出协议并结合仓库源码剖析各平台搜索的底层实现。读完本文你将能把这些脚本直接接入 AI 办公助手或深度研究流水线作为英文社交舆情与社区讨论的事实来源。技能定位与适用场景sn-search-social-en是 SenseNova-Skills 仓库中面向英文社交平台的搜索技能中文社交平台对应技能见 sn-search-social-cn。仓库 README_CN.md 将其定位为Reddit / Twitter (X) / YouTube 三个英文社交平台搜索适用于以下典型场景收集产品早期用户在 Reddit 子版块中的真实讨论与反馈追踪 Twitter/X 上的行业大 V、KOL 与热点话题推文检索 YouTube 上与主题强相关的视频教程、发布与会议录像在 sn-deep-research 深度研究流程中作为 research agent 按 source category 路由的社交来源之一文档明确列出其覆盖范围为Reddit、Twitter/XTikHub、YouTube。整个技能由三组脚本加一个共享工具库构成全部位于 scripts 目录下脚本平台用途API 密钥reddit_search.pyReddit帖子和讨论搜索无需twitter_search.pyTwitter/X推文搜索需TIKHUB_TOKENyoutube_search.pyYouTube视频搜索需YOUTUBE_API_KEY凭证配置统一写入仓库根目录 .envAPI key、token 与 cookie 统一建议写在仓库根目录.env可参照仓库根目录的 .env.example并由 runtime 或用户在执行前加载为同名环境变量。脚本本身只从环境变量或显式 CLI 参数读取凭证不要把真实密钥写入 skill payload、报告、日志或提交。.env.example中与英文社交平台相关的两个变量为# International social platforms TIKHUB_TOKEN YOUTUBE_API_KEY加载方式可以是source .env、export $(cat .env)或交由 runtime 注入。值得注意的是凭证读取的优先级在源码中有明确定义search_utils.py的get_key函数实现了CLI 参数优先于环境变量的取值逻辑search_utils.pydef get_key(env_var: str, cli_arg: str | None None) - str | None: 读取 API keyCLI 参数 环境变量。 if cli_arg: return cli_arg return os.environ.get(env_var)也就是说直接python3 scripts/twitter_search.py AI agents --token xxx会优先使用命令行传入的 token未传时才回退读取TIKHUB_TOKEN环境变量。这为临时换号、多账号测试提供了便捷通道。依赖安装首次运行或脚本提示缺库时使用本技能的依赖清单安装到当前 Python 环境python3 -m pip install -r skills/sn-search-social-en/requirements.txt依赖非常轻量仅一个包见 requirements.txthttpx0.27所有脚本通过sys.path导入同目录下的 search_utils.py。该模块在import httpx失败时会抛出一条指向依赖清单的明确提示而非晦涩的 ImportError见 search_utils.py。不要在脚本内部自动安装依赖若安装失败、网络不可用或包不可用应停止使用对应脚本并改用网页搜索同时说明缺少依赖。reddit_search.pyReddit 帖子和讨论搜索Reddit 搜索无需任何 API 密钥因为脚本直接调用 Reddit 公开 JSON API见 reddit_search.py。命令行接口python3 skills/sn-search-social-en/scripts/reddit_search.py query [选项]参数说明默认值query搜索关键词必填—--limit,-n返回结果数量10--subreddit,-r限定子版块如python,machinelearning—--sort排序方式relevance,hot,top,new,commentsrelevance--time,-t时间范围hour,day,week,month,year,allallpython3 skills/sn-search-social-en/scripts/reddit_search.py machine learning projects --limit 5 python3 skills/sn-search-social-en/scripts/reddit_search.py async python --subreddit python --sort top --time month --limit 5实现原理结合源码全局搜索请求https://www.reddit.com/search.json当传入--subreddit时请求地址切换为https://www.reddit.com/r/{subreddit}/search.json并追加restrict_sron参数将结果限定在指定子版块内reddit_search.py。limit会被钳制到最大 100min(limit, 100)避免单次请求过大sort与ttime filter直接透传给 Reddit API。脚本自定义了有意义的User-AgentMozilla/5.0 (compatible; search-skill/1.0; ...)并声明Accept: application/json——这是 Reddit 公开接口的基本礼仪要求能显著降低被拒风险reddit_search.py。每个结果条目会提取标题、通过 permalink 拼接的帖子 URL、被截断到 300 字符的正文摘要_truncate(post.get(selftext, ), 300)、子版块名、得分score、评论数num_comments、作者、创建时间以及外部跳转链接url_overridden_by_destreddit_search.py。twitter_search.pyTwitter/X 推文搜索Twitter/X 官方 API 门槛较高因此该脚本通过TikHub 聚合 API获取推文数据见 twitter_search.py。命令行接口python3 skills/sn-search-social-en/scripts/twitter_search.py query [选项]参数说明默认值query搜索关键词必填—--limit,-n返回结果数量10--tokenTikHub Token也可通过TIKHUB_TOKEN环境变量设置必填—python3 skills/sn-search-social-en/scripts/twitter_search.py AI agents --limit 10 python3 skills/sn-search-social-en/scripts/twitter_search.py LLM --token your_tikhub_token --limit 5实现原理结合源码请求目标是 TikHub 的 Twitter 搜索时间线接口代码中定义为https://api.tikhub.io/api/v1/twitter/web/fetch_search_timelinetwitter_search.py认证方式为Authorization: Bearer token。若未提供 token脚本会直接抛出带指引的ValueError需要TIKHUB_TOKEN环境变量并提示到 tikhub.io 注册获取twitter_search.py。请求参数固定search_type: Latest按最新推文排序并设置了比默认更长的 30 秒超时get_client(timeout30, ...)以应对 Twitter 数据接口较慢的响应twitter_search.py。返回解析对 TikHub 的多层嵌套结构做了兼容处理data.data可能是列表也可能是再套一层的 dict兼容full_text与text两种正文字段、id_str与rest_id两种推文 ID 字段最终拼出https://x.com/{screen_name}/status/{tweet_id}形式的推文链接条目中还包含作者显示名、点赞数favorite_count、转推数retweet_count与创建时间twitter_search.py。youtube_search.pyYouTube 视频搜索YouTube 搜索使用官方YouTube Data API v3见 youtube_search.py。命令行接口python3 skills/sn-search-social-en/scripts/youtube_search.py query [选项]参数说明默认值query搜索关键词必填—--limit,-n返回结果数量10--api-keyYouTube API 密钥也可通过YOUTUBE_API_KEY环境变量设置必填—--order排序方式relevance,date,viewCount,ratingrelevancepython3 skills/sn-search-social-en/scripts/youtube_search.py transformer explained --limit 5 python3 skills/sn-search-social-en/scripts/youtube_search.py python tutorial --order viewCount --limit 10实现原理结合源码请求目标是https://www.googleapis.com/youtube/v3/search固定参数为partsnippet、typevideo只返回视频类型过滤频道与播放列表、maxResultsmin(limit, 50)API 单次上限 50 条、order与keyyoutube_search.py。缺少 API key 时抛出带指引的ValueError需要YOUTUBE_API_KEY环境变量提示到 Google Cloud Console 创建youtube_search.py。每条结果提取视频标题、由videoId拼出的https://www.youtube.com/watch?v{video_id}播放链接、描述作为摘要、频道名channelTitle、发布时间与默认缩略图地址youtube_search.py。统一 JSON 输出协议三个脚本的成功与失败输出都遵循同一种标准 JSON 结构见 SKILL.md 与 search_utils.py{success: true, query: ..., provider: reddit|twitter|youtube, items: [...], error: null}字段语义字段类型说明successbool搜索是否成功querystring原始搜索关键词providerstring来源平台reddit、twitter或youtubeitemsarray搜索结果条目数组失败时为[]errorstring/null失败原因成功时为null条目对象的最小公共字段为title、url、snippet各平台再按需附加专属字段如 Reddit 的subreddit/score/num_commentsTwitter 的favorite_count/retweet_countYouTube 的channel/thumbnail。make_item会自动剔除值为None、空字符串、空列表或空 dict 的字段保证输出整洁search_utils.py。print_json以ensure_asciiFalse、indent2输出到 stdout中文摘要不会被转义成\uXXXXsearch_utils.py。这套统一协议意味着下游 Agent 只需按success → items的固定结构解析无需区分平台差异可直接把结果接入证据链、引用渲染或报告写作。共享工具库 search_utils.py 源码解析三个脚本的 CLI、HTTP 与输出逻辑均复用于同一个模块 search_utils.py这里汇总其核心能力CLI 脚手架build_parser为所有脚本统一注入位置参数query与可选参数--limit/-n默认 10各平台脚本再通过add_argument追加专属参数如--sort、--token、--order保证参数风格一致search_utils.py。HTTP 客户端get_client返回预配置的httpx.Client默认超时 15 秒、默认浏览器 UA、自动跟随重定向并允许通过headers覆盖Reddit 脚本即借此传入自定义 User-Agentsearch_utils.py。通用入口run_search封装了解析参数 → 执行搜索 → 打印 JSON/出错退出的标准流程错误时以successfalse输出并sys.exit(1)方便上层脚本捕获search_utils.py。从源码结构看新增平台脚本只需实现一个search(query, limit, ...) - list[dict]函数并复用上述工具即可获得统一的 CLI 与输出行为这也是本技能便于扩展的设计要点。错误处理与使用注意事项三个脚本的main都将整个搜索过程包在try/except中任何异常都会以标准 JSON 形式success: false 错误信息输出而不是打印堆栈后崩溃进程以退出码 1 结束便于 Agent 感知失败见 reddit_search.py 等。不要把真实密钥写入 skill payload、报告、日志或提交.env应加入忽略列表。若依赖安装失败、网络不可用或包不可用停止使用对应脚本并改用网页搜索并说明缺少依赖。Reddit 与 YouTube 走官方公开接口稳定性较高Twitter/X 经 TikHub 中转接口形态可能随上游变化返回解析已对多层级结构与字段名做了兼容处理但使用时仍建议留意结果为空或字段缺失的情况。在深度研究流水线中的集成方式sn-search-social-en是 sn-deep-research 中 research agent 可调用的搜索技能之一当研究维度涉及英文社交来源时agent 会按 source category 路由到本技能凭证同样从环境变量读取推荐统一写在仓库根目录.env复制 .env.example 后运行前加载。这意味着你既可以在命令行手动调用三个脚本做单点检索也可以让深度研究 Agent 自动调用它们来补齐 Reddit / Twitter(X) / YouTube 上的社区声音、KOL 观点与视频素材并将统一 JSON 输出作为后续证据筛选与报告写作的输入。快速上手三步走装依赖python3 -m pip install -r skills/sn-search-social-en/requirements.txt配凭证在仓库根目录.env中填入TIKHUB_TOKENTwitter 必需与YOUTUBE_API_KEYYouTube 必需Reddit 无需任何密钥并在运行前加载为环境变量跑搜索按上文各脚本的参数表与示例执行例如python3 skills/sn-search-social-en/scripts/youtube_search.py transformer explained --order viewCount --limit 10解析 stdout 中的标准 JSON 即可获得结构化的英文社交平台搜索结果。赞分享AI 技能人工智能深度研究数据分析媒体生成【免费下载链接】SenseNova-SkillsModular SenseNova skills for building AI-powered office assistants and productivity workflows项目地址https://gitcode.com/gh_mirrors/se/SenseNova-Skills点击查看免费下载相关推荐SenseNova-Skills 社区社媒热点搜索实战sn-search-social-media 技能完全指南SenseNova Skills 社区社媒热点搜索实战sn search social media 技能完全指南 导读 sn search social meAI 技能人工智能深度研究数据分析媒体生成SenseNova-Skills 学术搜索技能sn-search-academic论文检索、全文精读与引用树追溯实战指南SenseNova Skills 学术搜索技能sn search academic论文检索、全文精读与引用树追溯实战指南 本篇技术指南以开源仓库 SensAI 技能人工智能深度研究数据分析媒体生成Adobe激活工具终极指南3步解锁完整Creative Cloud功能Adobe激活工具终极指南3步解锁完整Creative Cloud功能 还在为Adobe软件的高昂订阅费用发愁吗Adobe GenP是一款强大且完全免费的AAI 技能人工智能深度研究数据分析媒体生成上一篇Swoft定时任务开发指南秒级Crontab实现终极教程下一篇SLANeXt_wireless企业级部署方案生产环境中的表格识别系统构建创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑