Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mustakimali/keep2notion
Migrate Google keep notes to Notion using Google Takeout data
https://github.com/mustakimali/keep2notion
Last synced: 9 days ago
JSON representation
Migrate Google keep notes to Notion using Google Takeout data
- Host: GitHub
- URL: https://github.com/mustakimali/keep2notion
- Owner: mustakimali
- License: apache-2.0
- Created: 2022-09-15T20:11:25.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-09T23:18:39.000Z (11 months ago)
- Last Synced: 2024-11-06T07:13:34.272Z (about 2 months ago)
- Language: Rust
- Homepage:
- Size: 146 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Google Keep to Notion
![demo](demo.jpg)
## How to use
* Take a [Google Takeout](https://takeout.google.com/) for Google Keep notes.
* Extract the zip file to a temporary location
* Copy all files from `Takeout/Keep` into the folder `keep-data` next to `keep2note.py`
* Rename `.env.sample` -> `.env` and populate the value
* [Create an internal integration](https://developers.notion.com/docs/getting-started#step-1-create-an-integration) and populate the `NOTION_ACCESS_KEY` with the Internal Integration Token.
* Create a Database and add this integration using the `Add Connection` option by [following the steps here](https://developers.notion.com/docs/getting-started#step-1-create-an-integration). Then copy paste the URL of the ID of the database.
* ⚠️ Make sure to add two extra fields in the database created as part of this. They are `Created` and `Edited` (of type Date). These dates are populated to reflect the create and last edit time of the note in Google Keep.
* Make sure the 'Tags' column exists if not created already.
* For example: If the address is `https://www.notion.so/your_user_name/9e7f1e7b40cb4121a158846c5b93009d?v=93b29b811eac4775ae41a2e179bfded2` then the ID is `9e7f1e7b40cb4121a158846c5b93009d`
* If you want to migrate images, then you'll need to host the [image server](./image-server/) app. Then populate the `IMAGE_SERVER_URL` (example: `https://my-image-server.example.com/` <- note the trailing `/`)* Install required dependencies using pip3: `pip3 install -r requirements.txt`
* Run the script `./keep2note.py`## A note about image migration
Notion API does not let you upload image to Notion server. As an workaround there are two options,
### Use an image server
This is a different web application (in [image-server](./image-server/) folder) hosted by you to store your images. You then specify the public address using the `IMAGE_SERVER_URL` variable. Each image has it's own UUID generated and the link will be embedded in the imported document.
Notion will download these image when required but they won't cache them for long. So you are expected to keep the server up and running.
### Manually move images
Regardless of whether you specify the `IMAGE_SERVER_URL` variable or not - all imported notes will have the name of the image file at the bottom of note. You can then use the name to search for the file and drag and drop the image from Google Takeout backup.
You can quickly find all notes with image by filtering for the `image` tag.
## Supported notes
- [x] Plain text notes
- [x] To Do Items
- [x] Label Archived and Deleted notes
- [x] Migrate images using an image server to host the images
- [x] Add labels for notes with images, error migrating images.
- [ ] Handle links well
- [ ] Handle large notes (with > 100 lines)
- [ ] Handle large paragraph (with > 2000 characters)