Videodateien stapelweise in HTML-Dateien einbetten (mit Automator?)

Kann Folgendes mit Automator oder einem anderen Tool/Skript unter macOS durchgeführt werden?

  • Ich habe mehrere Videodateien mit unterschiedlichen Dateinamen (immer .mp4).
  • Alle Videodateien müssen in separate HTML-Dokumente eingebettet werden.
  • Die HTML-Dokumente sollten denselben Dateinamen wie die Videodatei haben.
  • Beide Dateien sollten zusammen in einer ZIP-Datei abgelegt werden.
  • Die ZIP-Datei sollte den gleichen Namen wie das Video und die HTML-Datei haben.

Also, wenn ich die Datei habe video-to-html.mp4, möchte ich am Ende eine ZIP-Datei mit zwei Dateien haben:

video-to-html/video-to-html.html
video-to-html/video-to-html.mp4

Der Inhalt der HTML-Datei würde wie folgt aussehen:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Lorem ipsum</title>
</head>
<body>
<video autoplay controls>
<source src="video-to-html.mp4" type="video/mp4">
</video>
</body>
</html>

Ich bin kein Entwickler, also verstehe ich nicht viel Codierung.

Ich frage mich, warum Sie das tun wollen / müssen?
Jeden Tag muss ich eine Menge Videodateien in ein Überprüfungs- und Genehmigungssystem hochladen. Das System lässt das Hochladen von Videodateien nicht zu, es sei denn, sie sind in ein HTML-Dokument eingebettet.
:/ seltsam, dass es nicht nur die Videodatei nimmt. — Es ist definitiv möglich zu automatisieren, aber ich lasse klügere Leute antworten.

Antworten (1)

Sie können dies einfach mit einem kurzen Shell-Skript erreichen:

#!/bin/bash

for v do
    base=${v%%.mp4}
    cat >>"${base}.html" <<EOF
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Lorem ipsum</title>
</head>
<body>
<video autoplay controls>
<source src="$v" type="video/mp4">
</video>
</body>
</html>
EOF

    rm -f "${base}.zip"
    zip "${base}.zip" "${base}.html" "$v"
done

Speichern Sie es als Shell-Skript an einem geeigneten Ort, öffnen Sie das Terminal, führen Sie es aus chmod +x name-of-scriptund führen Sie es aus als./name-of-script *.mp4

@GeneratorSchj My bad, bitte entfernen Sie alle führenden Leerzeichen im HTML-Teil (bis einschließlich vor EOF)
Es funktioniert! Danke :) Wäre es möglich, dass das Skript den gesamten Vorgang automatisch durchführt, indem Sie einfach auf die ausführbare Datei doppelklicken? Dann müsste ich das Terminal überhaupt nicht betreten :)
@GeneratorSchj Sie könnten eine Ordneraktion definieren oder Hazel verwenden (bevorzugt). Die Frage ist wahrscheinlich schon einmal auf AD aufgetaucht, also bevor Sie eine neue Frage stellen, verwenden Sie die Suchfunktion :-)
Patrix, ich bin neugierig... Warum bevorzugst du Hazel? Ich tue es, weil Ordneraktionen bei mir nie zuverlässig funktioniert haben. Auch etwas einfacher zu handhaben. Hin und wieder sehe ich Leute, die Ordneraktionen empfehlen, und ich denke nur daran, wie es kaum jemals funktioniert hat. —— @GeneratorSchj, es gibt eine Aktion zum Auslösen eines Shell-Skripts in Automator, das wäre also eine Möglichkeit, es über eine Verknüpfung oder Anwendung auszulösen ...
@joonas Hazel ist für solche Dinge viel zuverlässiger und vielseitiger
Eindrucksvoll! Ich habe dies mit Automator als Programm mit dem folgenden Code zum Laufen gebracht. Ich kann jetzt .mp4Dateien einfach per Drag & Drop auf das Programmsymbol ziehen. Danke schön!for filename do base=${filename%%.mp4} cat >>"${base}-HTML-Wrap.html" <<EOF <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Lorem ipsum</title> </head> <body> <video autoplay controls loop> <source src= "${base##*/}.mp4" type="video/mp4"> </video> </body> </html> EOF zip -j "${base}-HTML-Wrap.zip" "${base}-HTML-Wrap.html" "$filename" rm -f "${base}-HTML-Wrap.html" done