Automatisierung der Beschaffung von Plakaten Online-Kino

Heute werden wir darüber sprechen, wie wir die Vorbereitung von Filmcovers / -sammlungen und anderen Inhalten in Okko automatisiert haben, welche Probleme die Automatisierung im Allgemeinen löst und welche Perspektiven dies für uns eröffnet.

Okko ist ein Online-Kino, das eine Vielzahl von Geräten unterstützt: iPhone, iPad, AppleTV, alle Android-Smartphones, die meisten SMART-Fernseher (LG, Samsung, Sony, Panasonic, Xiaomi usw.), PS3, PS4, Xbox, Web-TV. Browser.



Zunächst haben wir Bilder für jede Inhaltseinheit (Film, Serie, Serie einer Serie usw.) in Zielgrößen offline vorbereitet. Darüber hinaus unterschieden sich die Bilder nicht wesentlich voneinander. Irgendwann wurde die Vorbereitung und Lieferung von Bildern an Kunden zu einem unangenehmen Prozess, der mit einer Reihe von Problemen einherging:

  • eine Erhöhung des Antwortvolumens an Kunden aus dem Backend für die Anforderung einer Liste von Filmen / Abonnements / Sammlungen;
  • eine Erhöhung der Anzahl der Bilder im Dateispeicher (da jeder Client ein Bild duplizieren musste, aber mit einer anderen Größe. Aus diesem Grund haben wir für jeden Client-Typ mehr als 30 Kopien von jedem Bild erstellt);
  • die Zunahme des Volumens, das durch Links zu diesen RAM-Images belegt wird;
  • schlechte Flexibilität: Um das Bild sogar geringfügig zu ändern, mussten Sie das geänderte Bild in das Dateisystem hochladen und es auf die Clients ausdehnen.
  • Zeit für die Vorbereitung der Bilder: Da die Geräte grundsätzlich unterschiedlich sein können, ist auch die Kommunikation mit dem Benutzer unterschiedlich. Zum Beispiel ist es auf einem TV-Client sinnvoll, den Text auf dem Cover anzuzeigen, da er auf Bildschirmen mit einer solchen Diagonale gelesen werden kann. Aber auf dem Smartphone den gleichen Text anzuwenden ist nutzlos - es wird zu klein sein, um zu erkennen, was auf dem Cover geschrieben steht. Im alten Schema erforderte bereits eine einfache Operation wie das Ändern des Texts die Beteiligung mehrerer Abteilungen: Es war erforderlich, die erforderlichen Teile im Image zu ersetzen, die Quelle einem Inhaltsspezialisten zu geben, der das Image an das Dateisystem senden und einen Client verwenden würde, der das entsprechende Image unterstützt.
  • Eine begrenzte Anzahl von Möglichkeiten, mit einem Bild zu arbeiten: Zum Beispiel werden für einen Web-Client und einen TV-Client Bilder in verschiedenen Formaten benötigt. Und um sie zu erhalten, müssen Sie das Image zusätzlich in das Dateisystem kopieren.

Als wir bemerkten, dass ein solches System zu komplex ist, benötigten wir eine Automatisierung. Nachdem wir genau analysiert haben, welche Anforderungen wir an die automatische Bildvorbereitung haben, haben wir einen Mikroservice entwickelt, mit dem Bilder für verschiedene Kundentypen direkt aus einer Hand erstellt werden können.

Nachfolgend finden Sie eine kleine Liste der ursprünglichen Anforderungen, die wir zusammengestellt haben und die der Service erfüllen sollte:

  • Ändern der Größe von Bildern
  • Bilder auf die gewünschte Größe zuschneiden
  • Ändern der Größe von Bildern auf einer Seite unter Beibehaltung des Seitenverhältnisses
  • Änderung der Ausgabebildqualität
  • ändere das Ausgabebildformat (jpeg, png, webp)
  • unter Verwendung eines Gauß-Filters
  • die Fähigkeit, die Reihenfolge der Bildtransformationen beizubehalten

Die obige Liste enthält die Anforderungen für die automatische Erstellung von Filmplakaten, Fernsehsendungen, Serienfilmen, Fernsehserien und Hintergründen für Filmkarten und Spiele der englischen Premier League.



Als diese Anforderungen implementiert und veröffentlicht wurden, begannen sie, über andere Serviceeinheiten nachzudenken - Sammlungen, Abonnements, Abonnementpakete. Zu diesen Überlegungen zum Umgang mit komplexeren Elementen kamen einige Pläne der Analytics-Abteilung für die Erstellung und Entwicklung persönlicher Sammlungen hinzu: Sie möchten die Sammlung künftig benutzerspezifisch sammeln und auf dem Umschlag der Sammlung eine Mitteilung bilden, die unserer Empfehlung entspricht Der Motor ist dafür am besten geeignet. Dies fügte auch die Idee der Designer hinzu, ihre Arbeit zu erleichtern: den Service zu lehren, alle Arten von grafischen Elementen und Texten für Okko-Marketingkampagnen, Newsletter und Kommunikation zu überlagern.

Mit dem Aufkommen eines Antrags auf Automatisierung der Sammlung von Sammlungen, Abonnements und Abonnementpaketen wurden die Serviceanforderungen daher durch die folgenden Elemente ergänzt:

  • Überlagern Sie die Hauptbilder mit zusätzlichen Bildern gemäß den angegebenen Koordinaten.
  • Überlagern Sie das Bild mit unterschiedlichem Text, indem Sie die Textgröße, die Schriftart, den Zeilenabstand und den Buchstabenabstand ändern.
  • Sie können grundlegende Parameter zusammen mit neuen Parametern anwenden.

Diese zusätzlichen Punkte führten zu Problemen im Zusammenhang mit der Redundanz des Anforderungskörpers hinter dem Bild, wenn der Benutzer mehrere Bilder übereinander legen sowie den Typ des Ausgabebildes und beispielsweise die Bildqualität ändern möchte. Dies könnte wie eine Aufforderung aussehen, zwei Bilder und Text zu überlagern:

host: port / img / picture_id? width = 556 & quality = 80 & mediaType = webp & putImage = picture_id2 & x_coordinate = 100 & y_coordinate = 100 & quality_2 = 95 & text = Etwas Text & text_x = 0 & text_y = 150

Offensichtlich ist die Unterstützung solcher Pfade unpraktisch, da es auch unpraktisch ist, nur zu schreiben und zu lesen + die Bildparameter zu ändern, was eine neue Client-Version bedeutet, die im Allgemeinen nicht sehr angenehm ist (und für einige Geräte sehr lang ist).

Im Micro-Service für die Erstellung von Bildern tauchte das Konzept der Voreinstellungen auf - Yaml-Dateien mit einer Beschreibung zusätzlicher Elemente, deren Position, Schriftart und anderer Daten, die zum Konfigurieren eines bestimmten Bildtyps für ein bestimmtes Gerät erforderlich sind.

Ergebnisse


Heute sind wir in einem Zwischenstadium: Bisher wurden alle Film- / mehrteiligen Film- / Serien- / Serien-TV-Poster automatisch für alle Arten von Kunden aus dem gleichen Quellcover erstellt. Außerdem bereiten wir automatisch Plakate für Touren und Spiele des englischen Premier League-Tages vor.



Technisch ist der Dienst heute in der Lage, nicht nur die Cover von Filmen und Sportelementen, sondern auch Sammlungen / Abonnements zu beschaffen. Es ist auch möglich, verschiedene grafische Elemente und Texte ohne Voreinstellung in das Bild einzublenden.



Die implementierte Funktionalität vereinfacht bereits das Leben erheblich: Kleinere Änderungen am Image müssen nicht durch mehrere Abteilungen vorgenommen werden, sondern ändern oder ergänzen lediglich den einen oder anderen Parameter des Dienstes, der für die Anzeige verantwortlich ist, und testen den Mikrodienst und geben ihn frei, was offensichtlich viel schneller ist. als die Veröffentlichung eines neuen Kunden Build. Die Unterstützung eines neuen Gerätetyps, die Herausgabe aller Katalogposter an externe Partner sowie das Auftreten zusätzlicher Kommunikationsmittel sind keine Frage von Wochen, sondern von ein paar Stunden.

Die Konstruktionsabteilung wurde entladen, da er keine Zeit mehr damit verbringen muss, denselben Typ (oder sehr ähnliche) Bilder für verschiedene Kunden zu erstellen. Es reicht aus, eine Quelle anzugeben und die Regeln anzugeben, nach denen diese Quelle überlagert wird.

Es bleibt noch viel zu tun: Es ist geplant, KI für die automatische Generierung von Story-Covers, eine Webschnittstelle für die Verwaltung von Vorgaben mit Vorschau des Endergebnisses, eine Erweiterung des Tools auf andere benachbarte Abteilungen (SMM, PR) und natürlich aktuelle Aufgaben für verschiedene Arten von Optimierungen (Verbesserung der Arbeit mit Text, Optimierung des Kompressionsalgorithmus usw.).

Das ist alles Bei Interesse veröffentlichen wir später die Details der internen Struktur des Dienstes, seine Integration in die allgemeine Struktur und den Übergang zur automatischen Bildvorbereitung.

Source: https://habr.com/ru/post/de475098/


All Articles