ti0
(ti0)
1
此新主题组件支持从 Discourse 编辑器向 YouTube 和 Vimeo 上传视频。对于已经熟悉 我最近开发的插件 的用户,现在该功能已集成到此主题组件中,可添加到任何主题中。这使得安装更加简便,并且工作方式与插件完全相同。
功能
所有论坛成员均可将视频上传至 Vimeo 或 YouTube(管理员可选择启用其中一项或两项)。
管理员可通过管理设置控制上传到 Vimeo 的视频的查看和嵌入隐私权限。
用户可在上传弹窗中控制上传到 YouTube 的视频的查看隐私权限。
您可以在此处观看该插件的演示(组件与插件完全相同,除了设置页面。组件设置页面位于 管理 > 自定义 > 组件 > 视频上传):
配置
重要提示:对于主题组件,您需要确保为实例中使用的主题激活该组件(点击“添加所有主题”或选择您需要的主题)。
启用上传到 YouTube 和 Vimeo 的开发设置如下。如果您希望由他人代为设置,可通过联系 @ti0 请求支持。
用于 YouTube 上传
YouTube 上传将发送至上传者的账户,而 Vimeo 上传则发送至公共账户。
查看步骤
-
设置您的凭据:
- 创建 OAuth 客户端 ID
- 选择“Web 应用”类型
- 在“授权 JavaScript 来源”部分添加您的 Discourse 实例 URL
-
仅复制生成的客户端 ID
-
进入 Discourse 管理中的组件设置页面,将客户端 ID 粘贴到 youtube api client id 字段中。
-
通过启用以下设置来启用 YouTube 上传:youtube upload enabled
-
如有需要,调整 YouTube 的默认查看隐私选项。
-
现在您应能够从 Discourse 主题编辑器直接向 YouTube 上传视频。
用于 Vimeo 上传
按照以下步骤设置组件后,所有社区用户都将能够向 您的 Vimeo 账户 上传视频。
您需自行负责 Vimeo 账户的使用限制和使用情况。
查看步骤
-
在 Vimeo Developers 创建账户和应用:
https://developer.vimeo.com/apps/new
-
生成具有上传权限的访问令牌
-
进入 Discourse 管理中的组件设置页面,将生成的访问令牌添加到 vimeo api access token 设置中,并保存
-
通过启用 vimeo upload enabled 设置来启用 Vimeo 上传。
-
调整查看和嵌入隐私选项
- 请参阅 此 Vimeo 页面 了解隐私选项:
privacy.view 和 privacy.embed
-
现在您应能够从 Discourse 主题编辑器直接向 Vimeo 上传视频
发布视频
-
要发布视频,请创建新主题或回复现有主题。
-
点击编辑器工具栏中的新 上传到视频 按钮(视频图标)。该按钮仅在插件设置中启用了 YouTube 或 Vimeo(或两者)时才可见。
-
选择视频文件,并根据需要编辑标题和描述等详细信息。
-
点击“上传到 Vimeo"或“上传到 YouTube"按钮。
-
保存帖子,您的视频即可被所有其他社区用户查看(取决于您选择的隐私选项)。
功能请求
您可以通过 联系我 @ti0 请求更多功能或支持。
贡献
如果您觉得此主题组件有帮助,请考虑通过以下 PayPal 链接向开发者捐款:PayPal.Me
无论贡献大小,我们同样欢迎 
如果您希望增强该组件/插件,欢迎提交 PR。
28 个赞
ti0
(ti0)
3
现在还不行,但我认为维护主题组件会容易得多。我暂时会保留该插件,但建议迁移到主题组件。
10 个赞
Don
4
3 个赞
Don
6
你好!
我非常喜欢你们的组件,再次感谢你们的开发。
它运行得非常顺畅,但现在我们遇到了一些问题:
有时在转码视频(仅限 mp4 文件)时会出现 status.error.transcode 错误。视频可以正确上传,但仅在 Vimeo 上显示,而未能将链接插入到编辑器中。
另一个问题是,我们无法通过 macOS 上的 Safari 浏览器上传 mp4 文件。
请问有可能解决这些问题吗?
感谢您的回复!
1 个赞
ti0
(ti0)
7
你好 @Don,感谢你在 MacOS Safari 上发现这个边缘情况。这似乎是 Safari 的一个问题(Stack Overflow 上的相关参考)。我已在主题组件中修复了该问题,因此您更新后刷新页面,即可在 Safari 中上传 MP4 文件。我刚刚在自己的机器上测试过,现在可以正常工作了。
关于转码错误,这是 Vimeo 端发生的问题,我们这边无法进行任何处理。
6 个赞
Don
8
感谢您的快速修复!现在它在 Safari 上运行得非常完美 
Don
9
你好 @ti0,
看起来 Vimeo 的上传机制有所变更。当在论坛编辑器中放置链接后,Vimeo 会开始转换视频。因此,视频尚未准备好,无法通过单盒方式嵌入并在论坛中播放。感谢您的帮助!
1 个赞
我也遇到了同样的问题,但现在该问题似乎已影响所有平台上的 Mozilla Firefox。
Mozilla Firefox 还出现过其他一些问题,但我需要回头查看那些问题以提供更详细的说明。
Don
11
所以我认为问题在于:在 Vimeo 上,上传之后、转换之前有一个“等待转换”(Waiting for convert)阶段。
在组件中有一个 
const STATUS_POLLING_INTERVAL_MILLIS = 10000;
如果我没理解错,这意味着在上传过程结束后,系统会每隔 10 秒向 Vimeo 发送一次请求,因此“等待”状态会持续显示,直到视频转换完成。由于 Vimeo API 不支持 Webhook 等功能,我们需要定期发送请求以判断转码过程是否仍在进行或已完成。
我已将此间隔改为 60 秒,作为临时方案,直到出现更好的解决方案。对于大多数上传任务,这已足够跳过“等待”阶段的频繁请求。我分别测试了小型(约 10MB)、中型(约 500MB)和大型(约 2GB)的上传文件。
小型上传的等待时间约为 4–5 秒,中型约为 10–15 秒,大型约为 40–45 秒。我认为这取决于上传文件的大小。
目前看来效果不错,但如果“等待转换”过程超过 60 秒,链接仍会像以前一样直接粘贴。如果我们能跳过这个“等待”阶段,那就更好了。
Zup
12
我更希望 Vimeo 上传的视频直接进入上传者的账户,而不是我的公共账户……这可以实现吗?
1 个赞
linzo
(Collins)
13
@ti0 我不确定是不是只有我遇到这个问题,但我觉得有些地方出错了。上传卡在“正在验证”状态,Chrome 控制台中显示以下错误:
某些资源被阻止,因为其来源未列入您站点的内容安全策略(CSP)白名单。您的站点 CSP 基于白名单,因此必须将资源列入白名单才能访问。
站点的内容安全策略可通过 HTTP 头(推荐)或 meta HTML 标签设置。
要解决此问题,请执行以下任一操作:
1. (推荐)如果您正在为 `'script-src'` 使用白名单,请考虑从白名单 CSP 切换到严格 CSP,因为严格 CSP 更能抵御 XSS 攻击。请参阅如何设置严格 CSP。
2. 或者仔细检查所有被阻止的资源是否可信;如果可信,请将它们的来源添加到您站点的 CSP 中。⚠️切勿将不可信的来源添加到您站点的 CSP 中。如果您不信任该来源,请考虑在自己的站点上托管这些资源。
受影响的资源
https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.en_US.bnEFfFZ9cyI.O/m=auth2,client/rt=j/sv=1/d=1/ed=1/am=AQ/rs=AGLTcCNaq8ri2P66tzK7chsKcRiE1CsLyQ/cb=gapi.loaded_0?le=ili,ipu,ili,ipu`
被阻止 script-src-elem api.js:12
ti0
(ti0)
14
@linzo 这是一个 CSP(内容安全策略)问题,与主题组件无关。请在此阅读有关 Discourse CSP 的说明:Mitigate XSS Attacks with Content Security Policy
@Zup,这是一个额外的功能请求——当然可以实现,但这属于额外工作,如果您希望实施,需要付费。请告诉我您的决定。
抱歉回复晚了——是的,上传后会有一个转码过程,上传对话框会在嵌入视频之前显示该状态。在我这边运行正常。它会等待转码完成,之后才会关闭对话框并嵌入视频。这是一个演示:
1 个赞
debryc
(Deborah Chang)
15
我对这个主题组件的潜力感到非常兴奋。这个主题组件在移动端也能使用吗?也就是说,如果我在使用手机,能否从我的照片库中上传视频?
我尝试在主题创建器预览中查看,但收到了“访问被拒绝”的提示。
2 个赞
Don
16
你好,Deborah,
我们在论坛上使用它配合 Vimeo 上传,在所有设备上运行效果都非常好。
选择流程与 Discourse 类似,但选择视频后,您需要点击“上传 Vimeo”或“上传 YouTube”按钮来开始上传。
3 个赞
debryc
(Deborah Chang)
17
您的论坛是公开的吗?我可以看看吗?很期待看到它的实际运行效果!网址是什么?
3 个赞
这功能太棒了!如果能有一个选项将视频上传到 Vimeo 上的特定文件夹,以便将用户的上传内容与我自己的内容分开,那就更好了。感谢你们提供这个功能!
2 个赞
ti0
(ti0)
19
很高兴您喜欢它
如果您愿意为此功能请求做出贡献,我可以实现它,或者您可以提交 PR,请告诉我。
2 个赞
debryc
(Deborah Chang)
20
视频能否自动添加字幕并默认显示?这对我们的无障碍访问至关重要。
1 个赞