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
- Go to Google Takeout
- Deselect everything, then enable only Keep
- Export and download the
.zipfile - Unzip it - inside
Takeout/Keep/you'll find:.htmlfiles (one per note).jsonfiles (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
-
Put your extracted Keep files (HTML, JSON, and images) into
keep_source/ -
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.imagesfor the above). - All images will be saved in that folder, and a
readme.txtwill 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, includingpinnedif 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 beautifulsoup4Then run the script again:
python google-keep-to-weavernote.pyIf 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.