mikestecker / craft3-videoembedder
Requires
- craftcms/cms: ^3.0.0
- embed/embed: ^3.3
README
Craft 插件,可从 YouTube 或 Vimeo URL 生成嵌入 URL。此插件将完全免费。
移植自 Viget 的 Craft 2.x 的视频嵌入插件。
要求
此插件需要 Craft CMS 3.0.0 或更高版本。
安装
要安装 Video Embedder,请按照以下步骤操作
- 使用 Composer 从您的项目目录安装
composer require mikestecker/craft-videoembedder
- 在 Craft 控制面板的“设置”>“插件”下安装插件
Video Embedder 适用于 Craft 3.x。
Video Embedder 概述
Video Embedder 将将您的 YouTube 或 Vimeo URL 转换为 iframe 标签内使用的嵌入友好 URL。Video Embedder 还有一个变量,可以接受相同的 URL 并获取缩略图图像 URL。
使用 Video Embedder
将 YouTube 或 Vimeo URL 传递给 getEmbedUrl
变量,并将返回嵌入 URL。插件将检查 URL 是否有效且允许嵌入。如果不允许,它将返回空字符串。
{% set embed = craft.videoEmbedder.getEmbedUrl('https://www.youtube.com/watch?v=6xWpo5Dn254') %}
{% if embed | length %}
{{ embed }}
{% endif %}
示例
{% set embed = craft.videoEmbedder.getEmbedUrl('https://www.youtube.com/watch?v=6xWpo5Dn254') %}
{% if embed | length %}
<iframe src="{{ embed }}"></iframe>
{% endif %}
输出
<iframe src="//www.youtube.com/embed/6xWpo5Dn254"></iframe>
1.0.5 新增
getEmbedUrl
现在将接受 YouTube 和 Vimeo URL 的可选参数,如 autoplay
、rel
等。
{% set embed = craft.videoEmbedder.getEmbedUrl('https://www.youtube.com/watch?v=6xWpo5Dn254', {autoplay: 1, rel: 0, theme: 'dark'}) %}
Video Embedder 还将使用 getVideoThumbnail
变量从 YouTube 或 Vimeo 拉取最大的缩略图 URL。
{% set thumbnail = craft.videoEmbedder.getVideoThumbnail('https://www.youtube.com/watch?v=6xWpo5Dn254') %}
{% if thumbnail | length %}
{{ thumbnail }}
{% endif %}
输出
//img.youtube.com/vi/6xWpo5Dn254/0.jpg
1.0.5 新增
Video Embedder 现在将生成 iframe 代码。简单使用 embed
变量与您的 URL。您还可以传递 YouTube 和 Vimeo URL 的可选参数,如 autoplay
、rel
等。
基本示例
{% set embed = craft.videoEmbedder.embed('https://www.youtube.com/watch?v=6xWpo5Dn254') %}
{% if embed | length %}
{{ embed }}
{% endif %}
带参数
{% set embed = craft.videoEmbedder.embed('https://www.youtube.com/watch?v=6xWpo5Dn254', {autoplay: 1, rel: 0, theme: 'dark'}) %}
这些参数将简单地输出到嵌入 URL 字符串的末尾,并且仅与 YouTube 和 Vimeo 进行了测试。请检查每个提供者支持哪些参数。
1.0.9 新增
仅从 URL 返回 Vimeo 或 YouTube ID。这在某些用例中很有用,例如与 Plyr 一起使用。
基本示例
{% set videoUrl = 'https://www.youtube.com/watch?v=6xWpo5Dn254' %}
{% set videoId = craft.videoEmbedder.getVideoId(videoUrl) %}
{% set providerName = craft.videoEmbedder.getProviderName(videoUrl) %}
{% if videoId | length %}
<div id="player" data-plyr-provider="{{ providerName | lower }}" data-plyr-embed-id="{{ videoId }}"></div>
{% endif %}
Video Embedder 路线图
一些要做的事情和潜在功能的想法
- 添加生成 iframe HTML 的能力
- 添加新的视频 URL 字段类型(感谢 @samuelbirch!)
- 限制视频 URL 字段类型,仅允许支持的视频 URL
- 添加更多视频提供者支持(部分添加,通过切换到使用 Embed 库)
- 添加更多缩略图尺寸选项
- 测试
这是我的第一个插件,我在插件开发方面没有太多经验。请随意分支,添加您想看到的任何内容,并将拉取请求发送给我。
由 Mike Stecker 提供