raffaelj / cockpit-videolinkfield
为Cockpit CMS下载YouTube和Vimeo的视频缩略图
Requires
- composer/installers: ^1.9
This package is auto-updated.
Last update: 2024-09-11 18:48:44 UTC
README
此插件与Cockpit CMS v2不兼容。
另请参阅Cockpit CMS v1文档、Cockpit CMS v1仓库以及Cockpit CMS v2文档、Cockpit CMS v2仓库。
从YouTube或Vimeo复制一个URL,点击“查找值”按钮,等待一秒钟,然后在后台开始一个服务,该服务下载视频缩略图并返回一些元数据。
无需YouTube API密钥即可运行。
安装
将此存储库复制到/addons
并命名为VideoLinkField
或
cd path/to/cockpit
git clone https://github.com/raffaelj/cockpit_VideoLinkField.git addons/VideoLinkField
法律建议
如果您没有使用、下载或存储缩略图的权限,则不应使用此插件。
预期用途
您有自己的YouTube或Vimeo频道(或您在嵌入其他人员的视频内容之前已经请求了许可)并且您希望有一个简单的方法来构建一个具有嵌入视频的隐私友好型网站。
但是直接嵌入外部视频有多个原因是不好的
- 隐私 - 如果YouTube iframe在启动时加载视频,则Google会跟踪我的访问者。
- EUGDPR - 在我嵌入带有跟踪机制的第三方资源之前,我必须先请求我的访问者同意。
- 页面速度 - 如果我的访问者不想看视频,我不希望加载1-2MB的预览窗口。
想法很简单
用户有一个简单的UI来复制和粘贴视频链接,无需关注嵌入代码片段。在从Wysiwyg字段加载数据后,链接就存在了,即使用户(或搜索引擎机器人)禁用了javascript。当文档准备就绪并且访问者接受cookie使用和第三方请求时,脚本将链接转换为iframe。
功能
自定义字段
- 有缩略图预览
- 存储具有以下键的对象
- url
- text
- title
- id
- provider
- asset_id
TinyMCE插件
它没有缩略图预览,但它生成一个简单的HTML <a>
标签,其中包含我嵌入所需的所有数据。
示例输出
<a href="https://www.youtube.com/watch?v=fSdVs95Kesk" data-video-id="fSdVs95Kesk" data-video-provider="youtube" data-video-thumb="5cdf0b193338621488000156" data-video-width="480" data-video-height="360">Poledance-Show beim Kammgarnspinnereifest 2018</a>
设置
转到“设置”-->“VideoLinkField”或调用/videolinkfield/settings
。
现在您可以为所有缩略图定义一个存储文件夹。也可以不使用文件夹。
请确保您是管理员或设置管理此插件的权利。示例配置在/config/config.yaml
groups: author: cockpit: backend: true videolinkfield: manage: true # Now authors can change the folder
对于正常使用,您不需要设置任何东西。
内部发生什么?
缩略图作为资产存储。如果标题和描述可用,它们也会存储在资产元数据中。
YouTube
- 向以下服务器发送两个请求
https://img.youtube.com/vi/VIDEO_ID/0.jpg
以获取缩略图https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=VIDEO_ID&format=json
用于获取视频标题
Veemo
- 向以下服务器发送两个请求
http://vimeo.com/api/v2/video/VIDEO_ID.json
用于获取缩略图URL、标题和描述- 还有一个用于下载缩略图
版权和许可
版权所有2019年Raffael Jesche,MIT许可。
更多信息请参阅 LICENSE。