在线试用: GitHubUnwrapped.com
这是一个为每个GitHub用户生成年度回顾视频的平台。使用Vite 5、Remotion和AWS Lambda构建。
想为你的用户制作自己的年度回顾吗?
运行npm i安装依赖。
将.env.example重命名为.env。
按照Remotion Lambda - 设置指南设置你的AWS账户。我们使用多个账户进行负载均衡:
AWS_KEY_1替代REMOTION_AWS_ACCESS_KEY_ID,使用AWS_SECRET_1替代REMOTION_AWS_SECRET_ACCESS_KEY。AWS_KEY_2和AWS_SECRET_2在两个账户间进行负载均衡,或者粘贴相同的凭证以使用同一个账户。src/helpers/set-env-for-key.ts中,我们轮换环境变量。将函数部署到你的AWS账户:
npx tsx deploy.ts
注意,某些AWS区域默认被禁用。如果遇到错误,请启用它们或仅限制使用默认区域。
为了缓存视频和GitHub API响应,设置一个MongoDB(我们使用免费的MongoDB Atlas云实例)来 保存视频。通过填写.env中的值设置连接字符串。
要从GitHub获取数据,在用户设置中创建一个个人访问令牌(无需授予任何范围,GraphQL API需要身份验证以获取公共信息),并将其设置为GITHUB_TOKEN_1。添加更多令牌GITHUB_TOKEN_2等将轮换个人访问令牌。
提供DISCORD_CHANNEL和DISCORD_TOKEN值以将监控日志发送到Discord。
添加SENTRY_DSN环境变量以获取错误报告。
现在你已经设置好所有环境变量。
运行Web应用:
npm run dev
在Remotion Studio中编辑模板:
npm run remotion
要部署,请将你的仓库连接到Render。别忘了在那里也设置环境变量。
为了允许数千人同时渲染他们的视频,我们采用了多种扩展策略:
我们感谢GitHub和For One Red在实现和推广这个项目方面的支持。
音频是从SmartSound为GitHubUnwrapped.com授权的。如果你创建衍生项目,必须联系他们获得授权。
本仓库中的代码:采用MIT许可。 Remotion框架(本项目的依赖项):公司需要获得付费许可。在此处阅读条款。