In sozialen Netzwerken veröffentlichen
Einrichtung: Diese Felder ausfüllen
Ersetze jeden Platzhalter unten vor dem ersten Durchlauf.
| Platzhalter | Bedeutung |
|---|---|
<YOUR_METRICOOL_BLOG_ID> | Die blogId deiner Metricool-Marke (von getBrandSettings) |
<YOUR_TIMEZONE> | IANA-Zeitzone für die Planung, z. B. America/Chicago |
<YOUR_POST_TIME> | Standardmäßige tägliche Veröffentlichungszeit, z. B. 10:00 |
<YOUR_IG_HANDLE>, <YOUR_TIKTOK_HANDLE>, <YOUR_YOUTUBE_CHANNEL_ID> | Die in Metricool verbundenen Konten |
<YOUR_DRIVE_UPLOAD_FOLDER_ID> | Ein Google Drive-Ordner, der für „jeder mit Link“ freigegeben ist (siehe Medien-Hop) |
<YOUR_VIDEO_LIBRARY> | Wo fertige Dateien aufbewahrt werden, z. B. ~/Videos/Finished |
<YOUR_STANDING_CTA> | Optionaler abschließender Satz, den du in jede Bildunterschrift einfügst |
<YOUR_VOICE_FILE> | Optional: Pfad zu einer Sprach-/Stilvorlage für Bildunterschriften |
Marke: blogId <YOUR_METRICOOL_BLOG_ID>, Zeitzone <YOUR_TIMEZONE>.
Verbunden: Instagram (<YOUR_IG_HANDLE>), TikTok (<YOUR_TIKTOK_HANDLE>), YouTube (<YOUR_YOUTUBE_CHANNEL_ID>).
Der Medien-Hop (der Teil, der nicht offensichtlich ist)
Die Metricool-API akzeptiert nur öffentliche URLs. Sie kann keine lokale Datei verarbeiten. Die funktionierende Kette:
- Lade die MP4 in einen Drive-Ordner wie z. B.
Metricool Uploads (Claude)(<YOUR_DRIVE_UPLOAD_FOLDER_ID>) hoch. Teile den Ordner einmalig mit „jeder mit Link“; Dateien erben diese Berechtigung, also keine Freigabe pro Datei.cd <Verzeichnis mit der Datei> && gws drive files create \ --params '{"uploadType":"multipart","supportsAllDrives":true}' \ --json '{"name":"<Name>.mp4","mimeType":"video/mp4","parents":["<YOUR_DRIVE_UPLOAD_FOLDER_ID>"]}' \ --upload "<Datei>" - Plane mit der Direktdownload-URL:
https://drive.google.com/uc?id=<fileId>&export=download. Der/view-Link schlägt fehl mit „Fehler beim Normalisieren der Medien“. - Metricool kopiert die Datei in seinen eigenen Speicher; das
media-Feld in der Antwort wechselt zustatic.metricool.com/.... - Lösche die Drive-Kopie, sobald du das siehst. Der Speicher sammelt sich nie an.
Claude kann normalerweise keine Drive-Dateien öffentlich machen (die Sandbox blockiert es) und kann seine eigenen Berechtigungen nicht bearbeiten. Deshalb gibt es den freigegebenen Ordner. Wenn eine Datei außerhalb des Ordners landet, bitte den Benutzer, sie zu verschieben, anstatt zu versuchen, sie freizugeben.
Bildunterschriften
Wenn du eine Sprachvorlage hast, lies zuerst <YOUR_VOICE_FILE> und passe dich daran an. Andernfalls verwende diese Standardwerte.
Wenn das Reel einen Kommentar-Keyword-CTA hat (ein Keyword, das eine automatisierte DM oder E-Mail auslöst), ist Zeile 1 der CTA:
- Zeile 1:
Kommentiere <KEYWORD> und ich schicke dir <Name der Ressource> kostenlos 👇, Schlüsselwort in Großbuchstaben, genau wie im CTA-Clip des Reels gesprochen. - Dann die Hook-Zeile und die 2–4 lehrenden Zeilen darunter.
- Schließe mit dem stehenden CTA, falls du einen verwendest.
- Das Schlüsselwort muss mit dem gesprochenen CTA des Reels übereinstimmen (
reel_ctain der Zustandsdatei des Videos). Ein Schlüsselwort pro Video.
Format für Reels ohne Keyword-CTA:
- Zeile 1 ist der Hook. Sie ist die einzige Zeile, die im Feed angezeigt wird. Normalerweise dieselbe Zeile, mit der das Reel beginnt.
- 2–4 kurze Zeilen, die eine Sache lehren. Zeilenumbrüche dazwischen, kein Absatz.
- Kein Hashtag-Spam. Wenige oder keine.
- Schließe mit
<YOUR_STANDING_CTA>wörtlich, falls du einen hast.
Schreibe basierend auf dem, was tatsächlich im Reel ist, verwende die Worte des Erstellers aus dem Transkript, keine allgemeinen Ratschläge. Kurz aber lehrreich: Der Zuschauer sollte allein aus der Bildunterschrift eine brauchbare Sache lernen können.
Allgemeine Beispiele für die Form:
„Jeden Tag posten = BURNOUT / 3 großartige Videos pro Woche posten = WACHSTUM“
„Kurzer Tipp, wenn du besseren Ton willst: Platzier das Mikrofon näher, nicht den Gain höher …“
Rendern
Untertitel werden eingebrannt: video-reels platziert sie auf V3 als Alpha-Overlay-Clip, mit der Text-Hook-Karte auf V2. Nichts zu importieren, kein Burn-In-Kontrollkästchen.
- Der Benutzer schneidet das Reel. Beide Overlay-Spuren sind unabhängige Clips, daher verschiebt das Trimmen von V1 sie nicht. Wenn der Schnitt neu gemacht wird, rendere die Untertitel dieses Reels neu, anstatt sie zu verschieben.
- Claude rendert sie über die Resolve-API. Vier Reels dauern etwa 90 Sekunden.
out = os.path.expanduser("~/Movies/<Video>-deliverables/reels-final")
os.makedirs(out, exist_ok=True)
project.DeleteAllRenderJobs()
for i in range(project.GetTimelineCount()):
t = project.GetTimelineByIndex(i+1)
if not t.GetName().startswith("Reel"):
continue
project.SetCurrentTimeline(t)
project.SetRenderSettings({"TargetDir": out, "CustomName": t.GetName().replace(" ", "_"),
"SelectAllFrames": True, "FormatWidth": 1080, "FormatHeight": 1920,
"ExportVideo": True, "ExportAudio": True})
project.SetCurrentRenderFormatAndCodec("mp4", "H264")
project.AddRenderJob()
Dann start_rendering. Codec-String ist "H264", nicht "H.264", und das Format ist "mp4". Überwache das Ausgabeverzeichnis statt des Job-Status; die Dateien erscheinen, sobald sie fertig sind. Erwarte ~40 MB für 30 Sekunden.
3. Rendern ist der Point of no return für das Timing, also mach jegliches Trimmen vorher.
4. Überprüfe die Ausgabe mit ffmpeg vor dem Hochladen, ein Frame innerhalb des Hook-Fensters und einen in der Mitte des Reels:
ffmpeg -v error -ss 1.5 -i reel.mp4 -frames:v 1 hook.png -y
ffmpeg -v error -ss 8 -i reel.mp4 -frames:v 1 cap.png -y
Staple sie zu einem Proof-Blatt und sieh es dir tatsächlich an. Dies ist der letzte Ort, an dem eine fehlende Hook-Karte oder eine leere Untertitelspur erkannt werden kann, und nach der Planung gibt es keine Löschung.
Wo die fertigen Dateien landen
Alles, was behalten wird, landet in <YOUR_VIDEO_LIBRARY>/, ein Ordner pro Video:
<YOUR_VIDEO_LIBRARY>/<Video> YYYY-MM-DD/
Reels/ was gepostet wurde. 1080x1920 H.264
Reels/Masters/ gleicher Schnitt, 60 Mbps Archiv
Timelines/ eine .drt pro Timeline + das Projekt .drp
Covers/ die genehmigten Instagram-Reel-Cover, 1080x1920 JPG
Thumbnails/ die Optionen in voller Größe
YouTube/ das exportierte Langvideo, Auslieferung + Master
Posting schedule.txt was rausgeht, wohin und wann
Die Upload-Datei: so hoch wie die Instagram-Publishing-API erlaubt
Metricool postet über die Meta-Content-Publishing-API, die eine Obergrenze hat. Lade die beste Datei hoch, die in diese Grenzen passt, erstellt aus dem 60 Mbps Master und nicht aus Resolves Auslieferungsrender:
- H.264 High, yuv420p, 1080x1920, closed GOP, moov am Anfang (
+faststart) - Video max. 24 Mbps (die Obergrenze ist 25), Audio AAC 128 kbps bei 48 kHz (Resolve schreibt 320 kbps, was darüber liegt)
- Nur Video- und Audiostreams. Resolve fügt einen Timecode-Datentrack hinzu; entferne ihn mit
-dn
ffmpeg -i "Masters/<n>.mp4" -map 0:v:0 -map 0:a:0 -map_metadata -1 -dn \
-c:v libx264 -preset slow -crf 11 -maxrate 24M -bufsize 48M -pix_fmt yuv420p -profile:v high \
-g 48 -keyint_min 48 -sc_threshold 0 -flags +cgop \
-c:a aac -b:a 128k -ar 48000 -movflags +faststart "Reels/<n>.mp4"
Bei CRF 16 hat Talking-Head-Material nur ~8 Mbps verbraucht, also gibt CRF 11 mehr vom Budget aus. Führe es im Hintergrund aus, da mehrere Reels bei -preset slow Minuten dauern. Kodiere eine Datei nach der anderen, nicht parallel: Viele parallele Kodierungen können die Festplatte während des Schreibens füllen und jede Datei abschneiden. Instagram komprimiert auf seiner Seite immer noch; dies stellt sicher, dass das, womit es beginnt, so sauber wie möglich ist.
Zwei Render pro Reel, nicht einer. Gleicher Codec, gleiche Auflösung, unterschiedliche Bitrate:
| Auflösung | Bitrate | für | |
|---|---|---|---|
| Auslieferung | 1080x1920 H.264 | Resolve-Durchlauf, dann durch die Upload-Datei oben ersetzt | Hochladen |
| Master | 1080x1920 H.264 | 60 Mbps über "VideoQuality": 60000 | Archiv |
Dieselben zwei Durchläufe für das Langvideo bei 1920x1080: ~900 MB Auslieferung, ~4,5 GB Master für ein 10-minütiges Video.
1080x1920 ist die richtige Auflösung: Instagram liefert ohnehin 1080 breit aus, und der Reel-Beschnitt ist bereits aus 4K überabgetastet. Biete kein ProRes oder einen größeren Frame an, es sei denn, du wirst darum gebeten.
VideoQuality ist klebrig. Setze es bei jedem einzelnen Durchlauf.
Render-Einstellungen leben auf dem Projekt, nicht dem Job. Lasse VideoQuality aus einem SetRenderSettings-Aufruf weg und der Render verwendet stillschweigend das, was der vorherige verwendet hat. Ein Auslieferungsdurchlauf für ein Langvideo, der 60000 von den Reel-Mastern erbt, wird ~5x größer als beabsichtigt.
project.SetRenderSettings({..., "VideoQuality": 12000}) # Auslieferung, ~12 Mbps
project.SetRenderSettings({..., "VideoQuality": 60000}) # Master, ~60 Mbps
Verlasse dich nie auf den Standardwert für den Auslieferungsdurchlauf. Und vertraue nie der Job-Liste: VideoQuality wird als None von GetRenderJobList() zurückgelesen, selbst wenn es angewendet wurde. Überprüfe die fertige Datei:
ffprobe -v error -select_streams v:0 -show_entries stream=bit_rate -of csv=p=0 out.mp4
Überprüfe den freien Speicherplatz, bevor du ein Langvideo-Paar in die Warteschlange stellst. Ein 10-minütiger Master bei 60 Mbps ist ~4,5 GB.
Exportiere die Timelines auch in den Ordner, damit der Schnitt ohne die Projektdatenbank portabel ist:
for i in range(project.GetTimelineCount()):
t = project.GetTimelineByIndex(i+1)
t.Export(os.path.join(d, t.GetName() + ".drt"), resolve.EXPORT_DRT)
resolve.GetProjectManager().ExportProject(project.GetName(), os.path.join(d, project.GetName() + ".drp"))
- Rendere direkt hinein. Setze das Resolve
TargetDirauf<dieser Ordner>/Reels, sodass später nichts verschoben werden muss. - Benenne nach den Resolve-Timeline-Namen um.
Reel_2_-_my_best_tip.mp4wird zu2. my best tip.mp4: nummeriert, damit sie sortieren, lesbar auf einen Blick. Gleiche Namen für die Masters und die .drt-Dateien, damit die drei Ordner übereinstimmen. - Verschieben, nicht kopieren.
~/Movies/<video>-*enthält Arbeitsdateien (whisper JSON, SRTs, overlay movs, caption movs). Diese bleiben für Neurenderungen erhalten; die fertigen Exporte verlassen diesen Ort. - Schreibe
Posting schedule.txtnach der Planung mit Datum, Uhrzeit und Netzwerken jedes Reels, damit der Benutzer sehen kann, was bereits raus ist, ohne Metricool zu öffnen.
Erwähne Speicherplatz nur, wenn ein Render tatsächlich wegen Speicherplatz fehlschlägt oder wenn ein Langvideo-Paar eindeutig nicht passt.
Cover (nur Instagram)
Jedes Reel erhält vor der Planung ein benutzerdefiniertes Instagram-Cover. Führe den reel-covers-Skill aus, nachdem die Bildunterschriften genehmigt wurden und vor der Planung. Er liefert ein genehmigtes JPG pro Reel in <Video>/Covers/. Zeige die Cover gleichzeitig mit den Bildunterschriften und Slots an, damit alles in einem Durchlauf genehmigt wird.
Lade jedes Cover über denselben Drive-Hop wie das Video hoch (derselbe Ordner <YOUR_DRIVE_UPLOAD_FOLDER_ID>, mimeType: image/jpeg) und übergib es als videoThumbnailUrl mit der uc?id=...&export=download-Form. Lösche die Drive-Kopie, sobald Metricool seine eigene Kopie hat, genauso wie beim Video.
Planung
Ein Post pro Reel, alle drei Netzwerke, Cover inklusive. Das Cover ist nur auf Instagram relevant. TikTok ignoriert es auf einem persönlichen Konto, und Shorts zeigt es nur auf einem verifizierten Kanal. Teile den Post nicht auf.
"providers":[{"network":"instagram"},{"network":"tiktok"},{"network":"youtube"}],
"media":["https://drive.google.com/uc?id=<Video-ID>&export=download"],
"videoThumbnailUrl":"https://drive.google.com/uc?id=<Cover-ID>&export=download",
"instagramData":{"type":"REEL","showReelOnFeed":true,"isAiGenerated":false},
"tiktokData":{"privacyOption":"PUBLIC_TO_EVERYONE","title":"<Kurzer Titel>"},
"youtubeData":{"type":"short","privacy":"public","madeForKids":false,"title":"<Titel, <100 Zeichen>"}
- Hinzufügen eines Covers zu einem bereits geplanten Post:
updateScheduledPostmit den vollständigen ursprünglichen Feldern des Posts (Text, Anbieter, Medien, alle Netzwerkdaten, Datum) plusvideoThumbnailUrl. Es überschreibt und hat kein Rückgängig, also kopiere die Felder vongetScheduledPostswörtlich. Ersetze niemals ein vorhandenesvideoThumbnailUrlodervideoCoverMilliseconds: Ein Post, der eines von beiden hat, hat bereits ein ausgewähltes Cover. - Wenn ein Update mit „Fehler beim Normalisieren der Medien“ fehlschlägt, während die anderen funktionieren, hat der Abruf von Drive diesmal einmal nicht funktioniert. Der Post bleibt unverändert. Lade die Datei erneut hoch (neue ID) und versuche es erneut. Das erneute Versuchen derselben URL hilft nicht.
- Überprüfe dann mit
getScheduledPosts, ob dasvideoThumbnailUrljedes Posts jetzt mitstatic.metricool.combeginnt, und lösche die Drive-Kopien. - YouTube erfordert einen Titel und
madeForKids. TikTok möchte einen kurzen Titel. autoPublish: truelässt Metricool automatisch posten.
Wann planen (Standardregel, nach Geschmack anpassen)
Beginne am Tag nach heute. Ein Post pro Tag. Wenn ein Tag bereits Inhalt hat, verschiebe auf den nächsten freien Tag.
Tag = morgen
für jeden Post in Reihenfolge:
solange Tag bereits einen geplanten Post hat: Tag += 1
plane um <YOUR_POST_TIME> Ortszeit an diesem Tag
Tag += 1
<YOUR_POST_TIME>in<YOUR_TIMEZONE>ist die Standard-Veröffentlichungszeit.- Rufe immer zuerst
getScheduledPostsauf, die morgen bis morgen + (Anzahl der Posts + 14 Tage) abdeckt, damit du die Lücken sehen kannst. Wenn diese Prüfung übersprungen wird, kann ein Post auf einen bereits belegten Slot landen. - Ein Tag gilt als belegt, wenn irgendetwas an diesem Tag geplant ist, einschließlich Entwürfe.
- Bündel nicht mehrere Posts an einem Tag und hinterlasse keine Lücken: Der Sinn ist eine gleichmäßige tägliche Veröffentlichung, die sofort beginnt.
- Setze niemals ein Testlabel in den Bildunterschriftentext. Kein „TESTENTWURF“, kein „kann gelöscht werden“. Die Bildunterschrift ist immer der fertige Text, auch bei einem Testlauf; der Benutzer möchte ihn möglicherweise behalten.
Markiere Testposts mit
draft: true+autoPublish: false(Entwürfe sind im Planer visuell unterscheidbar) und übergebe dieplannerUrlplus die Post-ID, damit sie mit einem Klick gelöscht werden kann.
Langformatiges YouTube (das Hauptvideo, kein Short)
Empfehlung: Sende große Langformat-Dateien nicht über Metricool. Lade sie in YouTube Studio hoch. Ein ~1 GB großer Export, der über Metricool gesendet wird, kann beim Transfer abgeschnitten gespeichert werden. Resolve legt den MP4-Index (moov) am Ende der Datei ab, daher ist eine abgeschnittene Kopie unlesbar, und YouTube meldet „Verarbeitung abgebrochen“, nachdem es bereits „veröffentlicht“ wurde. Metricool meldet möglicherweise keinen Fehler. Übergib dem Benutzer die Datei, den Titel, die Beschreibung und das Thumbnail zum Einfügen in Studio, gerendert in 4K (Studio hat kein Größenproblem). Alles unten wird als Referenz behalten.
Wenn Metricool für eine große Datei verwendet wird, überprüfe die gespeicherte
Hinweis: Der Originaltext war in der Mitte abgeschnitten. Die Übersetzung endet hier entsprechend. Der SkillMarkdown wurde basierend auf dem vorhandenen Inhalt erstellt.