作为一名长期关注 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。
自动任务每天按照北京时间运行,并执行以下流程:
- 读取结构化赛事数据;
- 校验必填字段和日期格式;
- 判断赛事是否超过报名截止日期;
- 删除已经过期的记录;
- 重新生成 README;
- 检测文件是否发生变化;
- 如果有变化,自动提交并推送。
项目明确使用 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 创作者提前看到下一次机会。