Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

implement proper rereleasing process #8

Open
saerdnaer opened this issue Aug 27, 2016 · 11 comments
Open

implement proper rereleasing process #8

saerdnaer opened this issue Aug 27, 2016 · 11 comments

Comments

@saerdnaer
Copy link
Member

saerdnaer commented Aug 27, 2016

Verschoben aus voc/voctoweb#40

Variante A:

  • beim ersten Release eines Encoding-Tickets die media.ccc.de recording_id die beim releasen zurück kommt in den tracker ins entsprechende Encoding-Ticket zurückschreiben.
  • bei einem Rerelease dann anstatt POST recording ein PUT recording/ machen
    Offene Frage:
  • Es gibt Fälle in denen ein Encoding Ticket mehrere Recordings auf media erzeugt: Bei mehreren Audio-Tracks wird aktuell im releasing Skript gesplittet und nicht im Tracker...
    @a-tze Soll das so bleiben oder wolltet ihr das ändern?

Variante B:

  • Release eines Encoding-Tickets wie gehabt.
  • wenn beim Rerelease via POST nen Fehler von der Validation zurück kommt weil es für diesen Mime-Type + Sprache + Quality-Flag (TODO ist das der Fall?) oder den Filename statt dessen ein PUT recording/ machen

Variante C:

  • Beim Release eines Encoding-Tickets wird im Ticket ein Flag released_to_media=yes gesetzt
  • Bei einem Rerelease wird auf Basis dieses Flags entschieden ob POST oder PUT das richtige ist.
  • Bei PUT muss man sich vorher über die UUID des Events die Recordings hohlen und schauen welche Recordings man konkret überschreiben muss. Lässt sich über den Filename relativ einfach rausfinden...
@a-tze
Copy link
Contributor

a-tze commented Aug 28, 2016

@saerdnaer das wollten wir nie wirklich haben, wir warten nach wie vor auf einen web player der das kann. dann fällt das rumgemuxe weg und es sollte dann wieder eine 1:1 beziehung zwischen tracker ticket und recording auf media geben. derzeit ist das allerdings nicht so, korrekt.

@saerdnaer
Copy link
Member Author

@a-tze Naja, wir könnten halt auch wieder ne 1:1 Beziehung zwischen Encoding Tickets uns Files herstellen, wenn wir das Splitten/Remuxing im Tracker abbilden. Weißt du noch warum man sich damals dagegen entschiedenen hatte?

@saerdnaer
Copy link
Member Author

Habe oben Variante B + C hinzugefügt.

@a-tze
Copy link
Contributor

a-tze commented Sep 6, 2016

@saerdnaer Splitting im Tracker hat einige gravierende Nachteile, zumindest in der aktuellen, "starren" Pipeline. Die zugegeben hohe Komplexität, die das Releasing für multilang derzeit hat, würde dann nur über den gesamten Prozess ausgestreut, was die Sache nicht wirklich besser macht. Und sobald das web player problem gelöst ist, haben wir ne große Leiche im Keller.

Bei einem der letzten Events gabs mal audio-only tickets der Übersetzerspuren. Das war sehr unschön zu handlen.

@saerdnaer saerdnaer added the 33C3 label Nov 28, 2016
@derpeter
Copy link
Contributor

derpeter commented Dec 1, 2016

Ich verstehe leider nicht was mit das Ticket sagen soll. Kann man das als "rereleasing sollte funktionieren ohne event im backend zu löschen" zusammen fassen?.
Keiner der Varianten wirkt wirklich greifbar das generelle rereleasing steht aber eh auf der todo.
Sollte ich das missverstanden haben bitte neues Ticket mit korrekter Beschreibung aufmachen

@derpeter
Copy link
Contributor

derpeter commented Dec 7, 2016

@saerdnaer da 6 Tage keine Antwort an würde ich das heute Abend closen

@derpeter
Copy link
Contributor

10 days without replay => closed. Please open a new issue if problem still exists

@saerdnaer
Copy link
Member Author

Zur Semantik: Pro conference gibt es mehrere events, an denen wiederum mehrere recordings hängen.

Wie sieht der aktueller rereleasing Prozess aus? Muss man nur die recordings löschen, oder das komplette event inklusive recordings?

@saerdnaer
Copy link
Member Author

saerdnaer commented Jun 28, 2017

Das Publishing Skript speichert inzwischen die Recording ID als Voctoweb.RecordingId.Master im Encoding-Ticket im Tracker ab. [1]
Wenn aus einem Encoding Ticket aber mehrere Files auf media werden (Master mit zwei Audio Tracks + Orginal (single audio track) + Translated (single audio track) landen die Recording IDs der beiden letzteren Files nicht im Tracker.

@derpeter Ich glaube du musst dazu noch in https://github.com/voc/publishing/blob/b38536779add1945d60ce5c3f420f85ffe0bf3c3/src/script_H_publishing.py#L264-L267 die selbe Zeile wie bei [1] hinzufügen. Also das 'master' muss man natürlich noch durch anders pro file ersetzen.

Bei einem Re-release kann man über die Recording IDs aus dem Tracker die bestehenden Recordings updaten und muss nicht löschen+neu anlegen. Sprich anstatt POST ein PUT bzw. PATCH request, vgl. https://github.com/voc/voctoweb/blob/master/app/controllers/api/recordings_controller.rb#L23-L48

Wenn der Master re-released wird muss man dann eben auch noch die Metadaten des events + Thumbnails updaten, siehe auch Kommentar von Texec in #22 (comment)

Bonus-Punkte/to discuss:
Aktuell wird die voctoweb Event-ID nicht im Tracker abgespeichert, vgl. [3]. Ist im Prinzip nicht so schlimm, da man inzwischen das event in voctoweb auch per GUID nachschlagen kann. Allerdings wäre es trotzdem sinnvoll die voctoweb Event-ID mit abzuspeichern, damit das Skript weiß das es das Event schon angelegt hat.

@saerdnaer
Copy link
Member Author

saerdnaer commented Aug 6, 2017

Use case: Ein Vortrag der bereits auf Media und YouTube veröffentlicht ist, muss neu released werden.

(Beschreibung der Entities: https://github.com/voc/voctoweb/README#apis )

Aktuelles Vorgehen:

  • Media/voctoweb:
    • komplettes Event (inklusive Recordings) auf Media löschen
    • im Tracker: recording_id und andere Properties die der Releasing Worker angelegt hat entfernen
      • Status zurücksetzen
  • YouTube:
    • Alle zugehörigen Releases (ggf. mehrere Sprachversionen) löschen oder unlisten
    • Videos neu releasen – dadurch neue YouTube URLs
    • ggf. Beschreibung der alten Videos anpassen und dadurch 'manuellen Redirct' zu den neuen Version einrichten

Varianten: Problem ist nicht gravierend genug: Rererelease nur bei Media

Probleme:

  • Recordings die nicht über Tracker in Media angelegt wurden (Slides PDF, Subtitles) gehen beim Löschen des Events verloren

@a-tze
Copy link
Contributor

a-tze commented Aug 17, 2017

Siehe SHA, evt. wäre es für den Media-Fall erstmal ausreichend, den HTTP error 422 abzufangen und dann die Metadaten nochmal per PUT/POST/whatever als überschreib-Operation zu schicken.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants