{% extends 'base.html' %} {% block title %}{{ movie.title }}{% endblock %} {% macro playback_url(path) -%} {% set local_path = '/imports/' ~ path[9:] if path.startswith('/exports/') else path -%} r3el-vlc://{{ local_path | urlencode }} {%- endmacro %} {% macro watched_button(media_type, media_id, files) -%} {% set videos = files | selectattr('kind', 'equalto', 'video') | list %}
{% if videos | length > 1 %} {% endif %} {% if not videos %}No video available.{% endif %}
{%- endmacro %} {% macro watched_date(media_type, media_id, value) -%}

Watched: {{ value or 'Never' }}

{%- endmacro %} {% block content %} {% macro delete_button(label, season=none) -%} {%- endmacro %}
{% if movie.artwork | selectattr('kind', 'equalto', 'poster') | list %} Poster for {{ movie.title }} {% else %}No poster available{% endif %}

{{ movie.title }}

{{ movie.release_year or 'Year unknown' }} · {{ 'TV series' if media_type == 'tv' else 'Movie' }}{% if movie.runtime is not none %} · {{ movie.runtime }} minutes{% endif %}

{% if media_type == 'movie' %}{{ watched_date('movie', movie.tmdb_id, movie.watched_date) }}{% endif %}
{% if movie.rating is not none %} {{ '%.2f' | format(movie.rating) }} out of 10{% endif %} {% if movie.vote_count is not none %}{{ '{:,}'.format(movie.vote_count) }} votes{% endif %} TMDB #{{ movie.tmdb_id }} {% if media_type == 'movie' %}{% endif %}

{{ movie.genres | map(attribute='name') | join(' · ') or 'Genres not available' }}

{% if media_type == 'movie' %}{{ watched_button('movie', movie.tmdb_id, movie.files) }}{% endif %} {{ delete_button('Delete') }} {% if movie.overview %}

{{ movie.overview }}

{% endif %}
Original title
{{ movie.original_title or '—' }}
Release date
{{ movie.release_date or '—' }}
IMDb ID
{{ movie.imdb_id or '—' }}
People

Director

    {% for credit in movie.credits if credit.role == 'Director' %}
  • {{ credit.name }}
  • {% else %}
  • No director information available.
  • {% endfor %}

Producers

    {% for credit in movie.credits if credit.role in ('Producer', 'Executive Producer', 'Co-Producer') %}
  • {{ credit.name }} — {{ credit.role }}
  • {% else %}
  • No producer information available.
  • {% endfor %}

Cast

    {% for credit in movie.credits if credit.role == 'Actor' %}
  • {{ credit.name }}{% if credit.character_name %} — {{ credit.character_name }}{% endif %}
  • {% else %}
  • No cast information available.
  • {% endfor %}
{% if media_type == 'tv' %} {% set seasons = movie.episodes | groupby('season_number') %} {% for season in (seasons | rejectattr('grouper', 'equalto', 0) | list) + (seasons | selectattr('grouper', 'equalto', 0) | list) %}
Season {{ season.grouper }} {{ delete_button('Delete season', season.grouper) }} {% for episode in season.list | sort(attribute='episode_number') %}
{% if episode.has_still %} Still from {{ episode.title }} {% else %}No episode image available{% endif %}

S{{ '%02d' | format(episode.season_number) }}E{{ '%02d' | format(episode.episode_number) }} — {{ episode.title }}

{{ episode.air_date or 'Air date unknown' }}{% if episode.runtime is not none %} · {{ episode.runtime }} minutes{% endif %}

{{ watched_date('episode', episode.tmdb_id, episode.watched_date) }}

{{ episode.overview or 'No episode summary available.' }}

{{ watched_button('episode', episode.tmdb_id, episode.files) }} {% if episode.credits %}
Episode credits
    {% for credit in episode.credits %}
  • {{ credit.name }} — {{ credit.role }}{% if credit.character_name %} ({{ credit.character_name }}){% endif %}
  • {% endfor %}
{% endif %}
{% endfor %}
{% else %}

No imported episodes.

{% endfor %} {% endif %} {% if media_type == 'movie' %}

Correct TMDB match

Enter the correct TMDB movie ID. This updates the title, metadata, filenames, and artwork, and removes the old files. Viewing history is preserved.

{% endif %}

Delete from library?

This permanently removes the library entry, media files, subtitles, artwork, and viewing history.

{% endblock %}