用 GitHub Actions 打造 AIGC 比赛情报站:自动清理过期赛事,帮助创作者减少信息差

简介: 这是一个开源的AIGC创作比赛导航项目,实时聚合全球AI视频、图像、音乐、写作等方向的赛事信息。采用“结构化JSON+自动化更新”模式,通过GitHub Actions每日清理过期赛事、生成README,确保列表始终有效。支持人工核验、社区共建,解决创作者因信息滞后错失参赛机会的痛点。

作为一名长期关注 AI 和 AIGC 的开发者,我发现了一个很现实的问题:

我们并不缺少创作工具,也不一定缺少时间和创意,真正容易缺少的是及时、可靠的比赛信息。

很多 AIGC 比赛散落在模型平台、企业官网、微信公众号、高校通知、电影节网站和海外报名平台中。等创作者在社交媒体上看到获奖作品时,比赛往往早已结束。

我自己就遇到过这种情况。

明明对 AI 视频、AI 音乐和生成式内容创作很感兴趣,也愿意投入时间制作作品,但由于没有提前看到征集信息,只能在比赛结束后才知道自己原本可以参加。

为了解决这个问题,我创建了一个开源项目:

Awesome AIGC Creative Contests

GitHub 地址:
https://github.com/MartinDelophy/Awesome-AIGC-Creative-Contests

它是一个持续更新的国内外 AIGC 创作比赛导航,收录 AI 视频、图像、音频、写作和应用开发等方向的赛事。

为什么不直接做一份赛事表格?

最开始,这个项目完全可以只是 README 中的一张表格。

但很快就会遇到一个问题:比赛信息具有非常明显的生命周期。

一条赛事信息通常会经历以下阶段:

发现赛事 → 核验来源 → 开放报名 → 即将截止 → 报名结束 → 从当前列表移除

如果只不断增加比赛,却不处理已经过期的内容,项目最终会变成“历史赛事博物馆”。

用户打开列表,看起来有几十甚至上百条信息,真正能够报名的却寥寥无几。这种列表不但没有减少信息差,反而会增加筛选成本。

因此,我决定把赛事数据和展示页面分开维护。

项目中的比赛以结构化 JSON 保存,每条记录包括:

  • 赛事唯一标识
  • 赛事名称
  • 国家或地区
  • AIGC 创作类别
  • 主办方
  • 报名开始日期
  • 截止日期与时区
  • 参赛资格
  • 报名费用
  • 奖励信息
  • 官方活动页面
  • 官方规则页面
  • 最近核验日期

README 不再手工维护,而是通过 Python 脚本读取数据后自动生成。

用 GitHub Actions 管理赛事生命周期

为了让当前列表始终保持有效,我为项目配置了 GitHub Actions。

自动任务每天按照北京时间运行,并执行以下流程:

  1. 读取结构化赛事数据;
  2. 校验必填字段和日期格式;
  3. 判断赛事是否超过报名截止日期;
  4. 删除已经过期的记录;
  5. 重新生成 README;
  6. 检测文件是否发生变化;
  7. 如果有变化,自动提交并推送。

项目明确使用 Asia/Shanghai 时区,避免 GitHub Runner 默认使用 UTC 导致日期判断晚一天。

截止日期当天仍然会保留赛事,超过截止日期后才会从当前清单移除。

GitHub Actions 还会在 Pull Request 中运行测试,检查:

  • 赛事 ID 是否重复
  • 日期格式是否合法
  • 开始日期是否晚于截止日期
  • 类别名称是否在允许范围内
  • 官方链接是否使用 HTTPS
  • README 是否与结构化数据保持一致

这套机制并不复杂,却可以解决开源导航类项目最常见的问题:内容只增加、不维护,最终逐渐失去可用性。

为什么没有直接自动抓取全网比赛?

从技术上看,可以编写爬虫定期搜索赛事页面,再由大模型提取比赛名称、截止时间和参赛要求。

但在实际调研中,我发现比赛信息的准确性比数量更重要。

同一个赛事可能同时存在多个日期:

  • 新闻稿中的早期截止时间
  • 活动页面中的延期时间
  • 聚合网站转载的时间
  • 报名系统实际关闭的时间

部分活动只有宣传海报,没有完整规则;还有一些页面已经停止更新,却仍然显示“报名中”。

如果把抓取到的信息不经核验直接发布,很容易出现错误日期、无效入口甚至虚假赛事。

因此,项目目前采用“自动维护、人工准入”的方式:

  • 自动化负责数据校验、过期清理和页面生成;
  • 人工负责核验主办方、官方规则和报名状态;
  • 日期存在冲突且无法确认的赛事暂不收录。

未来可以增加自动发现机制,但更适合让程序生成候选 Issue,再由社区确认,而不是让爬虫直接修改正式列表。

当前收录范围

截至项目首次发布,已经核验并收录了 11 个国内外 AIGC 赛事,覆盖:

  • AI 视频与 AI 电影
  • AI 微短剧和动画
  • AI 图像与视觉艺术
  • AI 音乐与歌曲创作
  • AI 写作、剧本和数据新闻
  • AI 应用、交互作品与微信小程序

其中包括即梦 Seedance 2.5 白模参考创作大赛、微信小程序开发大赛、马栏山杯 AI 微短剧创智大赛、Astana AI Film Festival、AI Song Contest、AI Filmfest Athens 和 NEXT ART AI 等。

赛事列表会按照截止日期排序,并标记“报名中”“七天内截止”“今天截止”和“即将开始”等状态。

除了当前可报名赛事,项目还整理了一些长期有效的关注入口,例如模型社区赛事中心、AI 电影节官方网站和 AI 音乐机会日历。

这些入口用于发现新机会,但不会把已经截止的往届比赛继续放在当前赛事列表里。

为开源共创建立标准流程

如果项目只能由一个人维护,它仍然可能因为精力有限而停止更新。

因此,仓库从一开始就加入了社区共创入口:

  • 新赛事提交表单
  • 赛事延期与规则变化报告
  • Pull Request 模板
  • 数据字段规范
  • 信息源优先级
  • 本地生成与测试命令

信息源的优先顺序是:

官方规则和主办方公告优先,其次是官方活动页、报名页和认证社交账号,媒体报道与聚合站只作为辅助线索。

贡献者不需要手工修改复杂的 Markdown 表格,只需要增加或更新结构化数据,再运行生成脚本即可。

这个项目还能继续做什么?

目前它仍然处于初期阶段,但可以继续发展出很多实用能力:

  • 生成 iCalendar 日历订阅
  • 在截止前自动发送提醒
  • 按国家、类别和报名费用筛选
  • 增加中文与英文双语页面
  • 记录赛事延期和规则变更
  • 建立历史赛事归档
  • 展示优秀参赛作品
  • 提供创作者组队入口
  • 使用自动化程序发现新赛事候选
  • 将结构化数据开放为 API

我更希望它最终不只是一个链接集合,而是一套由社区共同维护的 AIGC 创作机会基础数据。

写在最后

技术的价值,有时并不在于系统有多复杂,而在于它是否解决了一个真实问题。

这个项目使用的技术非常朴素:JSON、Python、GitHub Actions 和开源协作流程。

但它希望解决的是一个很多创作者都会遇到的问题:

不要等到比赛结束后,才知道这个比赛曾经存在。

如果你也在关注 AI 视频、AI 绘画、AI 音乐、生成式写作或 AI 应用开发,欢迎访问项目、提交赛事或参与维护。

项目地址:

https://github.com/MartinDelophy/Awesome-AIGC-Creative-Contests

如果这个项目对你有帮助,也欢迎点一个 Star,让更多 AIGC 创作者提前看到下一次机会。

相关文章
人工智能 缓存 前端开发
11599 56
人工智能 JavaScript 开发工具
4588 17
开发工具 Swift git
1855 5
Web App开发 人工智能 API
1081 1
人工智能 Java BI
1228 1
人工智能 JavaScript 测试技术
2040 2
人工智能 JavaScript 测试技术
1035 4
缓存 JavaScript Shell
2030 3