YouTube为Django CMS支持的站点嵌入插件,提供自定义视频缩略图、分析、搜索引擎优化等选项。
djangocms-youtube的Python项目详细描述
YouTube为Django CMS支持的站点嵌入插件,提供自定义视频缩略图、分析、搜索引擎优化等选项。
快速启动
安装djangocms-youtube:
pip install djangocms-youtube
将djangocms_youtube添加到INSTALLED_APPS:
INSTALLED_APPS = ( ... 'djangocms_youtube', ... )
同步数据库(如果使用的是django 1.6.x,则需要south>=1.0.1):
python manage.py migrate
插件需要服务器api密钥才能使用youtube数据api:
DJANGOCMS_YOUTUBE_API_KEY = '<youtube_data_api_server_key>'
您可以通过https://developers.google.com/youtube/registering_an_application注册应用程序
功能
减少页面加载时间
当你使用标准iframe标签在你的网站上嵌入任何youtube视频时,你会惊讶地发现youtube视频会给你的页面增加多少额外的权重。这些资源(css、图片和javascript)将被下载,即使你网站上的访问者选择不观看嵌入的youtube视频。
djangocms youtube使用了一个聪明的解决方法来减少最初加载youtube视频播放器所需的时间。它没有嵌入完整的youtube视频播放器,而是只显示视频的缩略图,并在视频上方放置一个“播放”图标,使其看起来像视频播放器。
当用户点击播放按钮时,视频缩略图将替换为标准的YouTube视频播放器。因此,只有当用户决定播放嵌入式视频而不是其他视频时,才会加载额外的资源。
注意:移动设备需要两次点击才能播放视频。轻触图像一次即可将其移除并显示视频播放器。然后,点击播放按钮开始播放视频。
高分辨率缩略图
使用django-filer从YouTube获取给定视频的最高分辨率缩略图,并提供自定义视频缩略图的选项。
{ "default": { "url": "https://i.ytimg.com/vi/9bZkp7q19f0/default.jpg", "width": 120, "height": 90 }, "high": { "url": "https://i.ytimg.com/vi/9bZkp7q19f0/hqdefault.jpg", "width": 480, "height": 360 }, "medium": { "url": "https://i.ytimg.com/vi/9bZkp7q19f0/mqdefault.jpg", "width": 320, "height": 180 }, "maxres": { "url": "https://i.ytimg.com/vi/9bZkp7q19f0/maxresdefault.jpg", "width": 1280, "height": 720 }, "standard": { "url": "https://i.ytimg.com/vi/9bZkp7q19f0/sddefault.jpg", "width": 640, "height": 480 } }
schema.org集成
完全支持schema.orgvideoObject标记。
<div class="video-wrapper" itemprop="video" itemscope="" itemtype="http://schema.org/VideoObject"> <meta itemprop="name" content="PSY - GANGNAM STYLE (강남스타일) M/V"> <meta itemprop="duration" content="PT4M13S"> <meta itemprop="thumbnailUrl" content="https://i.ytimg.com/vi/9bZkp7q19f0/maxresdefault.jpg"> <meta itemprop="embedURL" content="https://www.youtube.com/embed/9bZkp7q19f0"> <meta itemprop="uploadDate" content="2012-07-15T07:46:32.000Z"> <meta itemprop="height" content="480"> <meta itemprop="width" content="853"> <meta itemprop="description" content="..."> </div>
见https://developers.google.com/webmasters/videosearch/schema
视频结束屏幕
插件可以有子插件(即其他插件放在这个插件中),呈现为一个覆盖,当视频结束。通过重写settings.py文件中的DJANGOCMS_YOUTUBE_ALLOW_CHILDREN,可以禁用此功能
谷歌分析
自动将下面列出的指标发布到您的Google Analytics帐户。
+ Play + 10% watched + 25% watched + 50% watched + 75% watched + 90% watched + Watch to end
确保你已经安装了谷歌分析跟踪脚本。
见https://developers.google.com/analytics/devguides/collection/analyticsjs/
视频站点地图
为YouTube视频生成站点地图。
视频站点地图配置
将CMSVideoSitemap从djangocms_youtube.video_sitemap导入到主urls.py的顶部
from djangocms_youtube.video_sitemap import CMSVideoSitemap
将djangocms_youtube.views.video_sitemap视图添加到urlpatterns。
from djangocms_youtube.views import video_sitemap video_sitemaps = { 'cmspages': CMSVideoSitemap, } urlpatterns = patterns( '', url(r'^videos/sitemap\.xml$', video_sitemap, {'sitemaps': video_sitemaps}, name='djangocms_youtube.views.video_sitemap'), )
CMS页面外的占位符
一个简单的例子aldryn-newsblog
from djangocms_youtube.video_sitemap import VideoSitemap from aldryn_newsblog.models import Article class NewsblogVideoSitemap(VideoSitemap): model = Article def get_queryset(self): queryset = super(NewsblogVideoSitemap, self).get_queryset() language = self.get_language() queryset = queryset.translated(language) return queryset.published() def location(self, item): return item.get_absolute_url(self.get_language())
您也可以喜欢…
- Djangocms研究-https://github.com/mishbahr/djangocms-disqus
- djangocms fbcomments-https://github.com/mishbahr/djangocms-fbcomments
- djangocms表单-https://github.com/mishbahr/djangocms-forms
- djangocms gmaps-https://github.com/mishbahr/djangocms-gmaps
- djangocms安装程序-https://github.com/mishbahr/djangocms-instagram
- djangocms响应包装-https://github.com/mishbahr/djangocms-responsive-wrapper
- djangocms-twitter2https://github.com/mishbahr/djangocms-twitter2