Cookbook+ to Paprika Recipe Converter
Convert Cookbook+ recipe databases (.sqlite) to Paprika-compatible YAML formats. Extracts ingredients, photos, and metadata accurately.
About
This tool performs a structural migration of recipe data from the legacy Cookbook+ database format (.sqlite) into the Paprika import standard (.yml). Cookbook+ typically utilizes an Apple CoreData SQLite structure, storing ingredients, photos, and instructions in binary-linked tables. Extracting this manually requires SQL knowledge and binary parsing.
The converter automates the schema mapping process. It identifies the ZRECIPE table, links related ZINGREDIENT entities, and decodes binary image blobs (JPEG/PNG) into Base64 strings compatible with Paprika's import engine. The output is a strictly formatted YAML document.
Risk Note: SQLite files can be complex. If the internal schema deviates from the standard CoreData model (v1.0 or v2.0), automatic column detection is used to approximate the best match.
Formulas
The conversion relies on identifying the Schema S of the input database. We define the mapping function f as:
Where a recipe object R is constructed by joining the Recipe table Trec with Ingredients Ting:
Time conversion applies a standard formatting logic for Paprika compatibility:
Reference Data
| Cookbook+ Field (Source) | Paprika Field (Target) | Data Type | Transformation Logic |
|---|---|---|---|
| ZTITLE / title | name | String | Direct mapping. Truncated to 255 chars if needed. |
| ZPREPTIME | cook_time | String | Converted from seconds/minutes to human string (e.g., '20 min'). |
| ZDESC | notes | Text Block | Multiline strings preserved with YAML pipe (|) syntax. |
| ZIMAGE | photo | Base64 | Binary blob extraction. Note: Large images may be resized. |
| ZINGREDIENTS | ingredients | List<String> | Joined from related table or parsed from delimited string. |
| ZURL | source | URL | Validated for protocol (http/https). |