{% extends "base.html.j2" %} {% import 'macros.imp.j2' as macros %} {% block title %}{{ title | e }} — {{ author | e }}{% endblock %} {% block content %} {% if video_url %}
{% else %}{#TODO: this'll break livestreams #} {% endif %} {% if video_error %}
{{ errdetails }} Watch on Invidious or Youtube
{% endif %}

{{ title | e }}
{{ author | e }}

Description

{{ description | e }}


Metadata
Duration {% set h = length // (60*60) %} {% set m = length // 60 % 60 %} {% set s = length % 60 %}
{{ h~':' if h }}{{ '%02d' % m }}:{{ '%02d' % s }}
Views
{{ '{0:,}'.format(views | int)|replace(","," ") }}
Published
{{ published.split('T')[0] }}
Rating
{{ rating | round(1) }}/5
Visibility
{{ 'unlisted' if unlisted else 'public' }} {% if blacklisted|length == 0 %}
Available in
all regions {% elif whitelisted|length == 0 %}
Blacklisted in
all regions {% elif blacklisted|length > whitelisted|length %}
Available in
{{ whitelisted | join(', ') }} {% else %}
Blacklisted in
{{ blacklisted | join(', ') }} {% endif %}

More Actions
Info- and Endcards
{% for card in all_cards %} {% set c = card.content %} {% if card.type == 'VIDEO' %} {% call macros.card(c.video_id, c.title, c.length) %} {{ c.author }}  {% endcall %} {% elif card.type == 'CHANNEL' and c.channel_id != channel_id %} {% call macros.card_generic("/channel/"~c.channel_id, c.icons[250] if 'icons' in c else '', c.title) %} Channel {% endcall %} {% elif card.type == 'PLAYLIST' %} {% call macros.card_generic("/playlist?list="~c.playlist_id, "https://i.ytimg.com/vi/"~c.video_id~"/mqdefault.jpg", c.title) %} {{ c.author }} {{ c.n_videos }} videos {% endcall %} {% elif card.type == 'WEBSITE' %} {% call macros.card_generic(c.url, c.icons[c.icons.largest] if 'icons' in c else '', c.title) %} {{ c.domain }} {% endcall %} {% endif %} {% endfor %} {{ macros.dummycard() }}

{% endblock %}