subtitles: Add documentation, limit uploads to *.vtt files, only show for video [#5589].

This commit is contained in:
Ben Sturmfels 2020-04-30 11:38:44 +10:00
parent e99f0aeac6
commit a9b7bd60b2
No known key found for this signature in database
GPG Key ID: 023C05E2C9C068F0
5 changed files with 41 additions and 10 deletions

View File

@ -55,14 +55,15 @@ Part 2: Core plugin documentation
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
plugindocs/flatpagesfile
plugindocs/sampleplugin
plugindocs/trim_whitespace
plugindocs/raven
plugindocs/basic_auth plugindocs/basic_auth
plugindocs/flatpagesfile
plugindocs/ldap
plugindocs/openid plugindocs/openid
plugindocs/persona plugindocs/persona
plugindocs/ldap plugindocs/raven
plugindocs/sampleplugin
plugindocs/subtitles
plugindocs/trim_whitespace
Part 3: Plugin Writer's Guide Part 3: Plugin Writer's Guide

View File

@ -0,0 +1,25 @@
================
Subtitles plugin
================
This plugin enables text captioning of videos (though not yet audio). Once the
plugin is enabled, you'll see a link to upload subtitles in `WebVTT format`_ as
supported by the Video.js `Text Tracks`_ feature.
.. _WebVTT format: https://en.wikipedia.org/wiki/WebVTT
.. _Text Tracks: https://docs.videojs.com/docs/guides/text-tracks.html
.. _subtitles-setup:
Enabling the subtitles plugin
=============================
1. Add the following to your MediaGoblin .ini file in the ``[plugins]`` section::
[[mediagoblin.plugins.subtitles]]
2. Run::
$ ./bin/gmg dbupdate
3. Restart your MediaGoblin process.

View File

@ -16,14 +16,17 @@
import wtforms import wtforms
from mediagoblin.tools.translate import lazy_pass_to_ugettext as _
class CustomizeSubtitlesForm(wtforms.Form): class CustomizeSubtitlesForm(wtforms.Form):
subtitle = wtforms.TextAreaField( subtitle = wtforms.TextAreaField(
('Subtitle'), ('Subtitle'),
[wtforms.validators.Optional()], [wtforms.validators.Optional()],
description=("")) description=_('Subtitles in <a href="https://en.wikipedia.org/wiki/WebVTT" target="_blank">WebVTT format</a>'))
class EditSubtitlesForm(wtforms.Form): class EditSubtitlesForm(wtforms.Form):
subtitle_language = wtforms.StringField( subtitle_language = wtforms.StringField(
'Language') 'Language')
subtitle_file = wtforms.FileField( subtitle_file = wtforms.FileField(
'File') 'File',
description=_('Subtitles in <a href="https://en.wikipedia.org/wiki/WebVTT" target="_blank">WebVTT format</a>'))

View File

@ -17,7 +17,7 @@
#} #}
{% block subtitle_block %} {% block subtitle_block %}
{% if "video.html" in media.media_manager.display_template or "audio.html" in media.media_manager.display_template %} {% if "video.html" in media.media_manager.display_template %}
{%- if media.subtitle_files|count %} {%- if media.subtitle_files|count %}
<h3>{% trans %}Subtitles{% endtrans %}</h3> <h3>{% trans %}Subtitles{% endtrans %}</h3>
<ul> <ul>

View File

@ -45,8 +45,10 @@ UNSAFE_MIMETYPES = [
@user_may_delete_media @user_may_delete_media
@require_active_login @require_active_login
def edit_subtitles(request, media): def edit_subtitles(request, media):
allowed_extensions = ['aqt','gsub','jss','sub','ttxt','pjs','psb', # This was originally quite a long list of allowed extensions, but as far as
'rt','smi','stl','ssf','srt','ssa','ass','usf','vtt','lrc'] # I understand, Video.js only supports WebVTT format subtitles:
# https://docs.videojs.com/docs/guides/text-tracks.html
allowed_extensions = ['vtt']
form = forms.EditSubtitlesForm(request.form) form = forms.EditSubtitlesForm(request.form)
# Add any subtitles # Add any subtitles