Obsidian-Rezepte nach KitchenOwl importieren

Obsidian-Rezepte nach KitchenOwl importieren

15. März 2026 07:43 · Python


Ich habe mir ein kleines Python-Skript gebaut, um meine in Obsidian gepflegten Rezepte nach KitchenOwl zu importieren.

Die Idee dahinter:

  • Rezepte bleiben als Markdown-Dateien in Obsidian pflegbar.
  • Der Import läuft gesammelt über einen Ordner mit .md-Dateien.
  • Bereits importierte Rezepte werden über ein Frontmatter-Feld markiert und beim nächsten Lauf übersprungen.

Vielleicht ist das auch für andere interessant, die ihre Rezepte zuerst lokal in Markdown pflegen und erst danach nach KitchenOwl übernehmen möchten.

Was das Skript kann

Das Skript durchsucht einen Rezept-Ordner rekursiv nach Markdown-Dateien und liest:

  • YAML-Frontmatter
  • den Titel des Rezepts
  • die Sektion ## Zutaten
  • die Sektion ## Rezept

Unterstützt werden aktuell unter anderem:

  • title
  • portionen
  • zeit
  • vorbereitungszeit
  • kochzeit
  • tags
  • kitchenOwl

Wenn kitchenOwl: true gesetzt ist, wird das Rezept übersprungen. Das ist praktisch, um bereits übertragene Dateien nicht doppelt zu importieren.

Erwartetes Format in Obsidian

So sieht meine Vorlage aus:

---
title:
portionen:
zeit:
vorbereitungszeit:
kochzeit:
tags:
kitchenOwl:
---

## Zutaten
- 

## Rezept
1. 

Wichtig ist vor allem:

  • Entweder title im Frontmatter pflegen oder eine Markdown-Überschrift # Rezeptname setzen.
  • Zutaten müssen als Liste unter ## Zutaten stehen.
  • Die Zubereitung muss unter ## Rezept stehen.

Beispielrezept

---
title: Grüne Nudeln
portionen: 2
zeit: 20
vorbereitungszeit: 5
kochzeit: 15
tags:
  - pasta
  - schnell
kitchenOwl: false
---

## Zutaten
- Nudeln 1 Packung
- Knoblauch 2x
- Spinat 1 Packung
- Parmesan [optional]

## Rezept
1. Nudeln kochen.
2. Spinat und Knoblauch anbraten.
3. Alles vermengen.

Zutaten-Parsing

Das Skript versucht einfache Mengenangaben automatisch zu erkennen. Zum Beispiel:

  • Zwiebel 2x
  • 2x Zwiebel
  • 1 Packung Nudeln
  • Nudeln 1 Packung
  • Parmesan [optional]

Dabei wird:

  • der Zutatenname nach KitchenOwl übernommen
  • die Mengenangabe als Beschreibung gespeichert
  • [optional] bzw. [opt] als optional markiert

Leere oder ungültige Zutatenzeilen werden übersprungen, damit der API-Request nicht am Schema scheitert.

Voraussetzungen

  • Python 3
  • requests
  • ein laufendes KitchenOwl-System
  • ein gültiger Token
  • die household-id

Installation der Python-Abhängigkeit:

pip install requests

Aufruf

python3 recipes.py \
  --input "/pfad/zu/ObsidianCloud/Rezepte" \
  --url "http://DEIN-KITCHENOWL-SERVER" \
  --token "DEIN_TOKEN" \
  --household-id 1 \
  --dry-run

Für den echten Import einfach --dry-run weglassen.

Parameter

  • --input: Ordner mit den Rezept-Markdown-Dateien
  • --url: Basis-URL von KitchenOwl
  • --token: gültiger Bearer-Token, aber ohne das Präfix Bearer
  • --household-id: Ziel-Haushalt
  • --dry-run: zeigt nur an, was importiert würde

Zusätzlich gibt es Default-Werte, falls einzelne Felder im Frontmatter fehlen:

--default-portionen 1
--default-zeit 0
--default-vorbereitungszeit 0
--default-kochzeit 0

Was an KitchenOwl gesendet wird

Das Skript baut daraus einen Request auf mit:

  • name
  • description
  • items
  • tags
  • yields
  • time
  • prep_time
  • cook_time
  • visibility

Die Beschreibung (description) entspricht dabei dem Inhalt aus ## Rezept.

Typischer Ablauf

  1. Rezept in Obsidian anlegen.
  2. Frontmatter ausfüllen.
  3. Zutaten und Rezept unter den passenden Überschriften eintragen.
  4. Erst mit --dry-run testen.
  5. Danach ohne --dry-run importieren.
  6. Optional anschließend in der Datei kitchenOwl: true setzen, damit das Rezept beim nächsten Lauf übersprungen wird.

Bekannte Grenzen

  • Es wird bewusst nur ein einfaches Markdown-Format unterstützt.
  • Komplexe Mengenangaben wie 1/2, ca. 200 g, 1 EL oder mehrteilige Einheiten werden nicht speziell normalisiert.
  • Das Skript setzt voraus, dass die Überschriften genau ## Zutaten und ## Rezept heißen.
  • Bilder, Notizen oder weitere Obsidian-spezifische Inhalte werden nicht importiert.

Fazit

Für meinen Workflow reicht das sehr gut aus: Rezepte bleiben in Obsidian editierbar und lassen sich bei Bedarf gesammelt nach KitchenOwl übertragen.

hier geht es zum Github Gist

0 💬 0 🔁 0 ⭐