Automatisierung
Alle Skripte, quer über alle Phasen
Die Fabrik besteht zum großen Teil aus Skripten, die niemand sieht: Anmeldungen bei AdsPower und Multilogin, Captchas, Warmup, Branding, Upload, dazu der ganze Klon-Apparat und die Patches, die Bausteine in die Workflows schreiben.
Die Beschreibungen unten sind nicht gepflegt, sondern werden bei jedem Bau aus der ersten Zeile im Skript selbst gelesen. Ein Skript, das umbenannt oder gelöscht wird, verschwindet hier von allein. Was keinem Schritt zugeordnet ist, steht als solches da: entweder fehlt die Zuordnung, oder das Skript wird nicht mehr gebraucht.
- 1Konto · 22
- 2DNA · 11
- 4Test · 8
- 5Veröffentlichen · 5
- keiner Phase zugeordnet · 103
Konten und Browser 40 Skripte, 13 ohne Phase
Anmelden, 2FA, Captcha, Antidetect-Profile, Warmup, Branding, Upload · Ordner scaling/
| Skript | Was es tut | Phase |
|---|---|---|
| account_login | account_login.py – Google-Login im getarnten Browser vollautomatisch durchfahren. | 1 Konto |
| account_signup | account_signup.py – ein Google-Konto SELBST anlegen (Jonas-Weg), vollautomatisch. | 1 Konto |
| adspower_drive | adspower_drive.py – steuert AdsPower-Profile headless über die Local API (Port 50325). | 1 Konto |
| anchor_check | anchor_check.py – LESENDER Nachweis, dass der Trust-Anker eines Kontos wirklich steht. | 1 Konto |
| backup_codes | backup_codes.py – Google-Backup-Codes ziehen und sicher ablegen (dritter Trust-Anker, jonas.md §2c-H). | 1 Konto |
| build_channel | build_channel.py <CH> [--editor] – oder als Funktion build(CH, editor) importierbar. | 1 Konto |
| channel_create | channel_create.py – Schritt 7b: dem Google-Konto einen YouTube-Kanal geben (HZ-426). | 1 Konto |
| editors | editors.py – wer managt welchen Kanal. EINE Quelle: hq.config.json -> editors. | 1 Konto |
| factory_state | factory_state.py – Bau-Status der Konten-Fabrik HART schreiben statt raten (HZ-817). | 1 Konto |
| multilogin_drive | multilogin_drive.py – Multilogin-X-Profile per API bauen + headless fernsteuern. | 1 Konto |
| proxy_watch | proxy_watch.py – warnt, BEVOR ein Proxy ablaeuft (HZ-817). | 1 Konto |
| recovery_add | recovery_add.py – Recovery-Telefonnummer im Google-Konto hinterlegen (Trust-Anker, jonas.md §2c-H). | 1 Konto |
| rotate_creds | rotate_creds.py – Passwort und Authenticator (TOTP) eines gekauften Google-Kontos auf EIGENE | 1 Konto |
| run_channel | run_channel.py – Kanal(e) aktivieren: Profil starten -> Google-Login -> Captcha (whisper) | 1 Konto |
| secrets_store | secrets_store.py – EINE Quelle fuer das Schreiben in dashboard/config/hq.secrets.json. | 1 Konto |
| verify_probe | verify_probe.py – Nur-Lesen-Diagnose: WAS genau will Google von diesem Konto? | 1 Konto |
| video_meta | video_meta.py – Titel und Beschreibung eines hochgeladenen Videos aendern (HZ-428). | 1 Konto |
| walking_meta | walking_meta.py – der BELEG neben jedem Walking-Video (HZ-428 Teil 2+3). | 1 Konto |
| warmup | warmup.py – SCHRITT 5 der Konten-Fabrik (HZ-218/817): frisch eingeloggte YouTube-Konten | 1 Konto |
| warmup_daily | warmup_daily.py – taeglicher Warmup-Lauf ueber die Konten, die UNS gehoeren (Cron). | 1 Konto |
| whisper_captcha | whisper_captcha.py – reCAPTCHA v2 Audio-Challenge lokal lösen ($0, kein API-Key, kein Extension). | 1 Konto |
| ytseller | YTSeller-Client – Zutaten-Beschaffung fuer die Konten-Fabrik (docs/bereiche/scaling.md). | 1 Konto |
| auto_upload | HZ-288 – AUTO-UPLOAD: fertige Videos laufen ohne Handgriff auf ihren YouTube-Kanal. | 5 Veröffentlichen |
| fabrik_check | fabrik_check.py – taeglicher Selbsttest der Konten-Fabrik (HZ-443). Read-only, $0. | 5 Veröffentlichen |
| relogin_daily | HZ-402 – Re-Login-Automat: abgemeldete Konten melden sich selbst wieder an. | 5 Veröffentlichen |
| studio_publish | HZ-290 – die Bruecke: fertiger Render eines Klon-Kanals -> plan.json -> Browser-Upload. | 5 Veröffentlichen |
| yt_upload | yt_upload.py – ein Video ueber die YouTube-Studio-OBERFLAECHE hochladen, im getarnten Profil. | 5 Veröffentlichen |
| account_parse | account_parse.py – Konto-Zeilen robust lesen. EIN Parser, zwei Nutzer: | – |
| adspower_watchdog | adspower_watchdog.py – haelt AdsPower (und seine Anzeige :99) von selbst am Leben (Cron). | – |
| brand_apply | brand_apply.py – das fertige Branding wirklich AUF den Kanal setzen (HZ-844, Teil von HZ-249). | – |
| browser_driver | browser_driver.py – EINE Naht fuer alle Browser-Starts der Konten-Fabrik. | – |
| build_batch | build_batch.py – baut einen Konten-Batch (Haupt + Editor) in EINEM Prozess. | – |
| captcha_probe | captcha_probe.py – feststellen, WELCHES Captcha Google vor den Login stellt (rein lesend). | – |
| captcha_solve | captcha_solve.py – Captcha lösen via NoCaptcha AI (Konten-Fabrik, Login-Automatik HZ-223). | – |
| factory_status | factory_status.py – LEBENDER Stand je Konto, den das HQ anzeigt (Leon-Wunsch 20.07.: | – |
| runlog | runlog.py – Arbeitsbericht der Konten-Fabrik. | – |
| test_konto_pfade | test_konto_pfade.py – beweist OHNE Konto, ohne Netz und ohne AdsPower, dass die Wege | – |
| test_whisper_captcha | Unit-Tests für whisper_captcha.words_to_digits (reine String-Logik, kein Browser/Netz). | – |
| ui_heal | ui_heal.py – Selbstheilung für Browser-Automation, wenn Google die Oberfläche ändert. | – |
| yt_reply | yt_reply.py – Zuschauer-Kommentare beantworten: ENTWÜRFE erzeugen, einzeln nach Freigabe posten. | – |
Klon-Apparat 53 Skripte, 34 ohne Phase
Nische messen, DNA ziehen, Maßstab, Prüfen, Forken, Rezepte · Ordner channel_clone/
| Skript | Was es tut | Phase |
|---|---|---|
| algrow_rest | HZ-239/HZ-846 · Serverseitige Algrow-REST-Bruecke – OHNE Claude-MCP-Session. | 2 DNA |
| apply_recipe | HZ-230 Apply-Motor v2 – Kanal-Registry + Recipe in EINEM Befehl anwenden. | 2 DNA |
| channel_dossier | HZ-509: Kanal-Dossier – EIN Datensatz je Kanal, zwei Auswertungstiefen. | 2 DNA |
| derive_format | HZ-322 · Render-Format aus AI-Vision automatisch ableiten (kanaluebergreifend, $0). | 2 DNA |
| dna_massstab | HZ-519 · Den MASSSTAB in die DNA schreiben – messbare Zielwerte statt Prosa ($0). | 2 DNA |
| extract_dna | Channel-Clone · Phase 0 – Kanal-DNA-Extraktor (HZ-205, Vorstufe zu HZ-203). | 2 DNA |
| fetch_channel_videos | HZ-216: Read a FOREIGN YouTube channel's public video list via the YouTube Data API, | 2 DNA |
| fork_channel | HZ-231 (Motor v2 Block C, der HZ-203-Kern): Kanal-ERSTELLEN aus Recipe+DNA. | 2 DNA |
| frame_vision | HZ-297 · Eigene Video-Vision ($0, Algrow-unabhaengig). | 2 DNA |
| niche_probe | HZ-491: Nischen-Sonde – holt harte YouTube-Zahlen zu einer Nischen-Hypothese und schreibt | 2 DNA |
| yt_subs | HZ-491 · Untertitel fremder YouTube-Videos holen – lokal, $0. | 2 DNA |
| clone_score | HZ-353 · T3 – Frame-Abgleich gegen die Referenz + ehrlicher Klon-Prozent ($0). | 4 Test |
| dna_loop | HZ-519 · Der Regelkreis: Test-Folge rendern -> messen -> Rezept-Zahlen nachziehen ($0). | 4 Test |
| factory_test | HZ-352 · FABRIK-TEST – T1 (Trockenlauf) + T2 (Test-Render) als EIN Werkzeug. | 4 Test |
| material_mix | HZ-519 · Materialmix eines Kanals messen – woraus die Bilder BESTEHEN ($0). | 4 Test |
| render_probe | HZ-352 · Test-Render fuer EINEN beliebigen Kanal – Wegwerf-Container, $0. | 4 Test |
| road_check | HZ-363 – Der Beweis: fährt die Straße wirklich genau das, was heute im Fork steht? | 4 Test |
| upload_target_check | HZ-814 Preflight: stimmt das Upload-Ziel jedes Kanals ueberall ueberein? | 4 Test |
| wiring_tree | HZ-393 · T0 VERDRAHTUNGS-BAUM – haengt die Pipeline eines Kanals wirklich zusammen? ($0, Sekunden) | 4 Test |
| apply_book_plug | HZ-267 – das Buch an den KANAL haengen, nicht an den Container. | – |
| assign_voice_settings | HZ-842 – jedem Kanal seine eigenen STIMMEN-REGLER geben (Folge von HZ-837). | – |
| assign_voices | HZ-837 – jedem Kanal seine EIGENE Stimme geben, aus der DNA abgeleitet. | – |
| build_package | HZ-821 – Kanal-Paket: aus dem duennen ~1KB-Recipe ein VOLLSTAENDIGES, selbsttragendes | – |
| build_voice_pool | Baut channel_clone/voices.json – den EINEN Stimmen-Pool, aus dem sich Builder, | – |
| channel_doctor | Kanal-Doktor (HZ-234) – die Self-Critique-Schleife des Klon-Motors. | – |
| channels | HZ-257 – DIE Kanal-Quelle fuer alle Video-Store-Werkzeuge. | – |
| clone_refine_loop | HZ-324 · Autonomer Klon-Verfeinerungs-Loop ($0, headless, per Cron). | – |
| dna_check | HZ-503 – Welche DNA liest die Pipeline WIRKLICH? (read-only, $0) | – |
| dna_pruefen | HZ-519 · Trifft eine veroeffentlichte Folge den MASSSTAB ihrer DNA? ($0) | – |
| drift_check | HZ-233/230 Drift-Check – meldet, wenn ein Baustein-Anker nicht mehr auf die P2 eines | – |
| fabrik_loop | HZ-336/343 · Autonomer Fabrik-Optimierungs-Loop ($0, 2 Agenten, per Cron). | – |
| freeze_p1_prompt | HZ-528 – die P1-Prompts eines Kanals aus seinem lebenden Fork ins REZEPT einfrieren. | – |
| freeze_p3_trigger | HZ-431 – den P3-Trigger-Webhook je Kanal messen und in die Registry einfrieren. | – |
| freeze_router_prompt | HZ-406 – den Router-Prompt eines Kanals aus seinem lebenden Fork ins REZEPT einfrieren. | – |
| inject_p1 | DNA → P1-Injektion (HZ-206): setzt den CHANNEL-DNA-Block in den Skript-Prompt | – |
| look_ab | HZ-519 · A/B-Vergleich zweier Stil-Fassungen MIT Stichprobe. | – |
| look_loop | HZ-519 · Look-Loop: den Bild-Prompt so lange nachziehen, bis der Ist im Zielkorridor liegt. | – |
| look_metrik | HZ-519 · Objektive Look-Metrik fuer den Bild-Loop ($0, nur ffmpeg). | – |
| recipe_from_live | HZ-307 – Ist-Zustand-Scanner: was nutzt jeder Kanal WIRKLICH (nicht was das Recipe behauptet). | – |
| registry_sync_active | HZ-394 – registry.json `active` gegen den echten n8n-Stand abgleichen. | – |
| render_mapping | HZ-410 – `render_mapping` aus der Kanal-DNA in echte Renderer-Schalter uebersetzen. | – |
| retention_probe | HZ-528 – Retentions-KURVEN je Video ziehen, damit am Skript nicht geraten wird. | – |
| sample_alvaro_thumbs | HZ-296-Vorarbeit: alvaro-Thumbnail-Showroom nach vision-verifizierter thumbnail_dna. | – |
| sample_mascot | Maskottchen-Showroom fuer "Why You Are" (CH1/Psych, HZ-207-Folge): 10 Charakter-Konzepte | – |
| sample_styles | Builder-Stil-Galerie (HZ-212 v4): DIESELBE Szene in jedem Bild-Stil – echte | – |
| self_test_material | HZ-242 · Selbst-Test-Material: unsere EIGENEN Folgen als Scrape-JSON fuer extract_dna.py. | – |
| testdata_build | HZ-352 · T2-Test-Assets fuer EINEN Kanal bauen – lokal, gratis, kanaltypisch. | – |
| testdata_fetch | HZ-347 · Test-Assets fuer die Klon-/Bild-QA holen – lokal und gratis. | – |
| thumb_dna_loop | HZ-320 – Thumbnail-DNA-Generator mit KI-Abgleich-Loop (wiederverwendbar, alle Kanaele). | – |
| voice_pick | Automatische Stimmen-Wahl aus dem Pool (HZ-254). | – |
| voice_samples | Echte Hoerproben zu den Stimmen-Kandidaten – mit UNSEREM englischen Skripttext (HZ-837). | – |
| yt_comments | commentThreads-Leser (HZ-234, Kanal-Doktor) – echte Zuschauer-Kommentare eines Videos. | – |
| yt_comments_session | Session-basierter Kommentar-Leser (HZ-841) – echte Zuschauer-Kommentare OHNE OAuth. | – |
Pipeline-Patches 56 Skripte, 56 ohne Phase
Je ein Skript, das einen Baustein in einen n8n-Node schreibt · Ordner wf_fork/
| Skript | Was es tut | Phase |
|---|---|---|
| patch_alvaro_horror_look | HZ-298 – alvaro_horror: Router + Skript-Prompt an vision-verifizierte DNA anpassen. | – |
| patch_alvaro_p3_recipe_key | HZ-298 – alvaro-P3: recipe_key an den Render-Container mitgeben. | – |
| patch_alvaro_upload_guard | HZ-290 SICHERHEIT: der alvaro_horror (Historias Reddit) Kanal laedt ueber den | – |
| patch_filestore | HZ-287 – n8n-Workflows von Cloudflare R2 auf den lokalen Filestore umstellen. | – |
| patch_gateway_auth | HZ-257 Schritt 1 – Video-DB Gateway absichern (Review-Fund). | – |
| patch_gateway_notion_map | HZ-257 – Gateway kann eine rohe Notion-Page entgegennehmen (op=upsert_notion). | – |
| patch_gateway_notion_shape | HZ-271 – Gateway-Guard NEU BAUEN: Mapping generiert + Lesen in Notion-Form. | – |
| patch_gateway_read | HZ-257 Schritt 2 – Video-DB Gateway kann jetzt auch LESEN. | – |
| patch_gateway_simplified | HZ-257 – Gateway versteht das SIMPLIFIED Notion-Format (Fund aus dem $0-Beweislauf). | – |
| patch_geo_p1_every_x | Empty-Earth-P1 (NlSdNrJxNmgMWaD0) auf die verifizierte Kanal-DNA ausrichten | – |
| patch_geo_p2_getty_stage | Empty-Earth-P2 (JUpLZKHZCSUBfgzE): Getty + removr als Quelle der SCHLUESSELBILDER (HZ-272-Folge). | – |
| patch_geo_p2_harvest_sources | [ABGELOEST durch wf_fork/patch_harvest_sources.py (HZ-302) – sources kommen jetzt MODULAR aus | – |
| patch_geo_p2_harvest_stage | Empty-Earth-P2 (JUpLZKHZCSUBfgzE): Harvester als LETZTE Bildquelle in die Stock-Kette (HZ-272). | – |
| patch_geo_p2_judge_niche | Empty-Earth-P2 (JUpLZKHZCSUBfgzE): Bild-Judge auf die EIGENE Nische umstellen. | – |
| patch_geo_p2_shot_density | Empty-Earth-P2 (JUpLZKHZCSUBfgzE): Schnittdichte hoch – mehr echte Stock-Bilder pro Video. | – |
| patch_geo_p2_voice | Empty-Earth-P2 (JUpLZKHZCSUBfgzE): TTS-Stimme "Jon" (amerikanisch, History-Erbe) -> | – |
| patch_geo_p4_integrated_text | Geo-P4 (Empty Earth, 7EuCgga9fwXwqVzp): Thumbnail auf integrierten Text umstellen. | – |
| patch_harvest_sources | Harvest-GW-`sources` MODULAR aus dem Kanal-Rezept setzen (HZ-302). | – |
| patch_history_p2_harvest_stage | History-P2 (LKQVM0y1jVGbZ9n9): Harvester als LETZTE Bildquelle in die Stock-Kette (HZ-291). | – |
| patch_p1_freerun | HZ-271 – P1 startbar machen UND die Kostenbremse setzen, fuer einen echten $0-Lauf. | – |
| patch_p1_leere_dedup | HZ-425: P1 stirbt still, wenn eine Dedup-Abfrage 0 Zeilen liefert. | – |
| patch_p1_script_parser | Fix P1 brittle script-JSON parsing (Leon test-run crash 20.06.): inline JSON.parse breaks | – |
| patch_p1_topic_override | Psych P1 (ZA3XVzDTNgwXVnoo): Thema-Override fürs HQ-Button-Feld. | – |
| patch_p1_viral | Psych P1 (ZA3XVzDTNgwXVnoo): UPLOAD-BUGFIX + VIRAL-MECHANIKEN (Leon 04.07.). | – |
| patch_p2_doodle | Psych P2 (TPAUqXCPLFmRCSWC) STOCK -> DOODLE-KI-Umbau (Leon 03.07., Doodle-Pivot). | – |
| patch_p2_frontload | Bump Psych P2 front-loading from 10/8/5 -> 12/10/8/6 (Leon 20.06.: "mehr Übergänge in den | – |
| patch_p2_getty | Psych P2 (TPAUqXCPLFmRCSWC): GETTY als starke Bildquelle nach Pexels-Fail (Leon 22.06.). | – |
| patch_p2_hybrid | Convert Psych P2 (TPAUqXCPLFmRCSWC) to HYBRID image sourcing (Leon 20.06.): | – |
| patch_p2_material_mix | HZ-233 Material-Mix-Patch fuer Stock-P2s (Geo/Wisdom-Muster; Ziel = HZ-231-Klon-Fork). | – |
| patch_p2_tempo | Psych P2 (TPAUqXCPLFmRCSWC) Cut-Tempo-Fix: fixe Beat-Zahlen (12/10/8/6/6/6, gab 20s/Bild in | – |
| patch_p2_video | Psych P2 (TPAUqXCPLFmRCSWC): STOCK-VIDEO-Beats via Pexels Video API (Leon 21.06.). | – |
| patch_p2_voice | Set the TTS voice on Psych P2_Assets (TPAUqXCPLFmRCSWC) to a calm, warm FEMALE voice | – |
| patch_p3_recipe_key | HZ-267 – jedem P3-Renderaufruf sagen, WELCHER Kanal gerendert wird. | – |
| patch_p4_doodle_thumb | Psych P4 (puTDyYtZsq7cczzv) Thumbnail: photoreal-History -> DOODLE-BOLD + Hook-Mix (Leon 03.07.). | – |
| patch_p4_phase1 | Patch Psych P4_Deliver (puTDyYtZsq7cczzv) for PHASE-1 = manual upload. | – |
| patch_p4_thumb_variants | Psych P4 (puTDyYtZsq7cczzv): 1 Thumbnail -> 3 VARIANTEN für YouTube Test & Compare | – |
| patch_p4_upload_target | HZ-814: schreibt das Upload-ZIEL explizit in jeden P4- und Publisher-Node. | – |
| patch_paradox_raw | HZ-278 – Paradox-Sonderfall: `Get many database pages` (simple=false) auf den Store. | – |
| patch_psych_p2_director | HZ-212 AI-Director (Leons Advisor): neuer Code-Node in Psych-P2 zwischen | – |
| patch_psych_p2_router_script | HZ-429 – psych P2 'Stock Query Router': das Skript kam nie am Router an. | – |
| patch_psych_retention_abc | Psych Retention-Fix A+B+C (Leon 2026-07-12). | – |
| patch_publisher_mark_public | HZ-294 – die 7 dormanten Daily-Publisher von ihrem letzten Notion-Write befreien. | – |
| patch_read_via_gateway | HZ-271 – Lese-Node `Notion - Get Run` auf den eigenen Store umhaengen. | – |
| patch_rente_scharf | HZ-252: Rente-Kanal scharfschalt-fertig machen – die 2 letzten Blocker schliessen. | – |
| patch_rente_store_mirror | HZ-257 Phase 4 – Rente-Pipeline spiegelt ihren Stand in den zentralen Video-Store. | – |
| patch_rente_title_parser | HZ-252: Rente-P1 Title-Parse robust machen (Fork-Falle #10, Claude-Rest). | – |
| patch_rente_upload_guard | HZ-252 SICHERHEIT: verhindert, dass ein Rente-Testlauf versehentlich auf einen | – |
| patch_script_fetch | HZ-386 – 'R2 - Fetch Script' auf eine ableitbare URL umstellen statt auf ein DB-Feld. | – |
| patch_split_queries_guard | HZ-388/389 – die Router-Antwort pruefen, BEVOR daraus JSON wird. | – |
| patch_testmode | HZ-815 – Trockenlauf pro Kanal an/aus schalten. | – |
| patch_whatif_icon_pivot | HZ-43: WhatIf-1 auf Ikonen-Survival-Format drehen. | – |
| patch_whatif_p3_published | HZ-147: WhatIf-P3 tagesplaner-faehig – End-Node schreibt Published + YT-Link statt 'Rendering'. | – |
| patch_whatif_person_beats | HZ-202 Teil 2+3: reale Personen-Beats in WhatIf durch echte Fotos (Harvester-Gateway). | – |
| patch_whatif_public_figure | HZ-201: public-figure-Bildfix fuer WhatIf-1 (Script Generator). | – |
| patch_wm_runid_unique | HZ-265: WM-Run-ID eindeutig machen (Fund aus dem Video-Store-Abgleich HZ-260). | – |
| patch_write_via_store | HZ-271 Endschritt – Notion-WRITE-Nodes auf direkten Store-Write (op=upsert) umbauen. | – |