====== Einbinden von Videos und Erstellen von frab.xml ====== //Dieser Eintrag ist Teil der [[howto:chaotikumwebsite|Anleitung zur Chaotikum Website]]// Videos werden von uns erstellt und auf verschiedene Dienste hochgeladen. Metadaten zu erstellten Videos, oder sogar zu Talks oder Workshops, aus denen letztendlich doch kein Video geworden ist, hinterlegen wir aus verschiedenen Gründen als Markdown Datei im Ordner _media in unserer Website. Daraus - Wird unter https://chaotikum.org/media/ eine Übersicht aller von uns erzeugten Medien erstellt - Unter https://chaotikum.org/media.xml ein Atom-RSS Feed erzeugt, über welchen sich Personen und Systeme über neue Video-Releases informieren lassen können - Werden unter Blog-Posts zu Events Links zu in dem Event erzeugte Videos angezeigt (noch nicht umgesetzt) - Wird für jedes erzeugte Video eine Seite erstellt, welche einen Überblick über die Orte gibt, an welchen man es sehen kann: Z.B. https://chaotikum.org/media/2022-05-18-10-jahre/ - Kann das Video als Widget in Blogposts oder Pages eingebunden werden (noch nicht umgesetzt) - Wird ein [[https://github.com/frab/schedule.xml/tree/master/schema|frab-schedulle XML]] erzeugt ===== Media==== Wie diese Dateien im ''_media'' Ordner üblicherweise erzeugt werden, ist im Detail im [hackspace:infrastruktur:videosetup:dataworkflow|Video-Workflow der Video Dokumentation] beschrieben (noch nicht, kommt aber), hier geht es nur darum, wie die Datei aufgebaut ist. Die Datei sieht ca so aus: --- layout: video release_date: 2022-12-25 20:00:00 +0200 recording_date: 2022-11-12 20:00:00 +0200 duration: "45:00" room: Audimax title: "Titel des Vortrags" subtitle: "Ein Subtitle" persons: - "person 1" - "person 2" licence: CC-BY-NC# language: de optout: false fahrplan_url: https://chaotikum.org/fahrplan-des-events image: "https://video.chaotikum.net/image/bla.png" #https://www.uuidgenerator.net/ uid: 8080f1f4-1f28-46ca-cf57-0578baa109c9 ticket_id: 1337 yt: "" mccc: "" archive: "" file: "https://video.chaotikum.net/..." event: 46370f56-bfc1-413e-b220-431eec727d47 conferences: - conf --- Beschreibung des Videos, wie sie nachher überall wo das Video hochgeladen wird stehen soll. ===== Felder ===== ==== Pflichtfelder ==== * //layout: video// Das muss so, damit jekyll weiß, wie das gerendert wird. * //title// der Titel des Videos * //uid// eine eindeutige UID. Das wird beim erstellen der Website auf dem Server geprüft, das diese eindeutig ist, sonst scheitert der build. ==== Optionale Felder ==== Hier wird insbesondere beschrieben, wie das ''frab.xml'' erstellt wird. Nicht alle Fallback-Mechanismen greifen zwangsläufig überall so. * //release_date// Hier kann ein Zeitpunkt angegeben werden. Wenn er angegebene wird, muss dies in der Form ''2022-12-25 20:00:00 +0200'' sein, inklusive dem Faktor am Ende, je nachdem ob Winter oder Sommerzeit ist. Videos ohne Release Date (oder bei denen das Datum in der Zukunft liegt) werden nicht in der Liste aller Median angelegt und tauchen nicht im ATOM-Feed auf. Sie werden jedoch in einem frab.xml angezeigt, da dieses benötigt wird, um das Video z.B. bei media.ccc.de hochzuladen. * //recording_date// Das Recording Date kann insbesondere weggelassen werden, wenn eine Event-UID angegeben ist (Feld //event//), da das Datum dann aus dem Event gezogen wird. Wird hier ein Datum angegeben, überschreibt dies das Feld aus dem Event. * //duration// Die Duration ist als String aus Stunden und Minuten in der Form ''"00:45"'' anzugeben. Es kann grundsätzlich weggelassen werden. Insbesondere aber, wenn eine Event-UID angegeben ist (Feld //event//) so wird die Dauer aus dem Start und Enddatum des Events gezogen, welche dort Pflichtfelder sind. * //room// Der Raum kann weggelassen werden, wenn eine Event-UID angegeben ist (Feld //event//), da der Ort dann aus dem Event gezogen werden kann. Im Event ist die location eine Liste, es gewinnt der letzte Ort in der Liste. Ist weder in dieser Datei noch im Event eine Location, kann ggf noch auf eine Location in Conference zurückgegriffen werden. Ansonsten wird der Wert "Undisclosed Location" gesetzt. * //subtitle// hier kann ein subtitle angegeben werden. Muss aber nicht. * //persons// die Möglichkeit eine Liste von Leuten anzugeben. Diese werden ggf auch in den Titel des Videos gesetzt (z.B. bei FreiTalk und SWK üblich). * //licence// wird hier ein Text angegeben, wird dieser anstelle des üblichen Lizenz-Textes genutzt. Sollte üblicherweise weggelassen werden. * //fahrplan_url// die hier angegebene URL wird als Fahrplan URL genutzt. Wird das Feld leer gelassen und ist eine Event-UID angegeben (Feld //event//), so wird nach einem Blogpost gesucht, welcher das Event mit der UID ankündigt und dieser genutzt. * //ticket_id// Für manche Systeme (hier insbesondere der c3VOC Tracker) ist eine eindeutige id nötig. Diese kann bereits hier angegeben werden. Sonst denket sich das System eine ID aus (9 stellig, beginnend mit dem Datum, dann ein wildes verfahren aus der uid, welches eindeutigkeit allerdings nicht wirklich garantieren kann) * //image// ein Thumbnail für das Video. * //yt// Der Youtube Link des Videos * //mccc// Der Link zur Veröffentlichung bei media.ccc.de * //archive// Der Link zur Veröffentlichung bei archive.org * //file// Link auf unserem ftp * //conferences// eine Liste, die sagt, im Rahmen welchen "Konferenzen" (s.u.) das Video autauchen soll. Hier muss das ''acronym'' der Konferenz genutzt werden. * //language// wird nichts angegeben ist language "de". * //closedcaption// url zu einer vtt datei mit untertiteln * //cccomputergen// gibt an, ob die closedcaption computergeneriert sind * //slides// url zu Slides des Vortrags * //optout// Macht üblicherweise keinen sinn. Kommt dann inst frab.xml. GGf wird das auch an anderen stellen berücksichtigt (?). Etwas unkalr, was es bedeuten soll, aber kann gesetzt werden. Default ist false. ===== Conferences==== Conferences sind ebenfalls Markdown Dateien, sie stellen einen Kontext dar, in welchem Vorträge aufgezeichnet werden, man könne sie auch Playlists oder sonstwas nennen, aber in Anlehnung an die Begrifflichkeit im ''frab.xml'' heißen sie conference. Sie sind eine Markdown Datei im ordener _conferences und sehen so aus: --- layout: conference title: Eine Konferenz acronym: conf ecki: true name_before_title: true base_url: https://chaotikum.org/conferences/conf/ --- Ein Text der bei allen Videos in dieser Conference der Beschreibung des Videos angehängt werden soll. ===== Felder ===== ==== Pflichtfelder ==== * //layout: conference// * //title// Jede Konferenz muss einen Titel haben * //acronym// Pflicht. Und muss eindeutig sein. Dies wird nicht technisch geprüft. Aber wenn es nicht eindeutig ist, wird das verhalten unberechenbar... * //base_url// Wo findet man die website der Veranstaltung? ==== Optionale Felder ==== * //ecki// bei Manchen Veranstaltungen (5 Minuten termine, Softwerksmmer) schreiben wir gerne den Namen der Veranstaltung in eckigen Klammern hinter den Videotitel. Damit die Website weiß, dass sie das tun soll, kann man die Variable ''ecki'' setzen. Weglassen ist false. * //name_before_title// Bei manchen Veranstaltungen (FreiTalk, Softwerkammer,...) schreiben wir gerne den namen aller Speaker mit Doppelpunkt danach vor den Titel. Damit die Website weiß, dass sie das tun soll, kann man die Variable ''name_before_title'' setzen. Weglassen ist false. Der Freitext wird an die Beschreibung jedes Videos angehängt, welches zu der Konferenz gehört, dies wird z.B. bei "5 Minuten Terminen" genutzt. Sind es mehrere anzuhängende Texte geschieht dies in der Reihenfolge, in welcher diese in der Datei in ''_media'' angegeben sind. ===== Conferencefrab==== Diese Datei dient dem jekyll als Flag, dass eine frab.xml für diese Conference zu erstellen ist. Sie sieht so aus: --- layout: [frab] title: conf --- ===== Felder ===== ==== Pflichtfelder ==== * //layout: [frab]// muss so, inklusive der eckigen Klammern * //title// da muss das ''acronym'' der conference für die das ''frab.xml'' erstellt werden soll rein. ====== Wie entsteht die Frab XML ===== Das passiert in der Datei frab.xml mithilfe der Liquid-Templating Sprache und ist alles andere als Leicht zu lesen. Die Datei findet sich hier: https://git.chaotikum.org/chaotikum/website/-/blob/master/_layouts/frab.xml Die zu erstellende Datei soll dem [[https://github.com/frab/schedule.xml/tree/master/schema |Frab Schedulle XML entsprechen]]. Hierbei werden insbesondere Daten aus drei Dateien kombiniert: - Den Meta Informationen zu einem Video in _media - Den Informationen zu einer Konferenz in _conference - Den Informationen zu einem Event in _event Diese sind jeweils verknüpft. Ein Video gehört zu mehreren Konferenzen (//acronym// der Conference in der Liste //conferences//) und einem Event (//uid// des Events in //event//).