GitHunt
TA

tabakman/google-keep-to-weavernote

Google Keep to Weavernote converter with image, tag, and checklist support

Google Keep to Weavernote Converter ๐Ÿ“โžก๏ธ๐Ÿฆโ€๐Ÿ”ฅ

This script converts your Google Keep archive into Weavernote-compatible Markdown files - with support for:

  • ๐Ÿ–ผ Embedded images (saved in a folder named after your image URL path)
  • โ˜‘๏ธ Checklists (as markdown task lists)
  • ๐Ÿท Labels (all labels, including 'pinned', in the yaml frontmatter)
  • ๐Ÿ“… Created/modified timestamps
  • ๐Ÿงพ UTF-8/emoji compatibility

Tested with:

  • 5,000+ notes
  • 500MB of HTML, JSON, and images from Google Takeout


๐Ÿ“ค How to Export Your Google Keep Data

  1. Go to Google Takeout
  2. Deselect everything, then enable only Keep
  3. Export and download the .zip file
  4. Unzip it - inside Takeout/Keep/ you'll find:
    • .html files (one per note)
    • .json files (metadata)
    • any attached images (.jpg, .png, .gif, etc.)

๐Ÿ‘‰ Copy all of those files (flat) into the keep_source/ folder in this repo.

Requires beautifulsoup4.
See Troubleshooting if you hit an import error.


๐Ÿš€ Quick Start

  1. Put your extracted Keep files (HTML, JSON, and images) into keep_source/

  2. Run the converter:

python google-keep-to-weavernote.py
  • The script will prompt you for a public image URL prefix (e.g. https://www.example.com/images).
  • It will create a folder in weavernote_output/ named after the last segment of your URL (e.g. images for the above).
  • All images will be saved in that folder, and a readme.txt will be included with upload instructions and the URL you provided.
  • Markdown notes will reference images using the provided URL.
  • All Markdown notes will be saved directly in weavernote_output/ (no subfolders for tags/labels).
  • The YAML frontmatter in each note will include:
    • labels: - all labels from Google Keep, including pinned if the note is pinned (comma-separated)
    • tags: - always blank
  • After running the script, upload the entire images folder to your server at the provided path.
  • Import the Markdown notes into Weavernote.

๐Ÿ“ Folder Structure

.
โ”œโ”€โ”€ google-keep-to-weavernote.py         # โ† the script
โ”œโ”€โ”€ keep_source/            # โ† your Keep HTML/JSON/image files go here
โ”œโ”€โ”€ weavernote_output/       # โ† final Markdown files + images + log
    โ”œโ”€โ”€ <images-folder>/    # โ† all embedded images (named after your URL path)
    โ”‚   โ””โ”€โ”€ readme.txt      # โ† upload instructions and URL
    โ”œโ”€โ”€ Sample Note 01.md   # โ† notes (all in this folder)
    โ”œโ”€โ”€ ...

โœ… Features

Feature Supported
Note content โœ…
Timestamps โœ…
Labels โœ…
Checklists โœ… (markdown tasks)
Embedded images โœ…
Pinned notes โœ… (as labels)
Migration log โœ…
Weavernote-ready โœ…

๐Ÿ› ๏ธ Troubleshooting

ModuleNotFoundError: No module named 'bs4'

This means the script is missing the BeautifulSoup library.

Fix it by running:

pip install beautifulsoup4

Then run the script again:

python google-keep-to-weavernote.py

If you're using a virtual environment, make sure it's activated before installing.


๐Ÿ“„ License

This project is licensed under the MIT License.

Contributions are welcome - feel free to fork, open issues, or submit pull requests to make this better for others migrating their notes.

tabakman/google-keep-to-weavernote | GitHunt