Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ndbeals/keep-exporter

A command line utility to export Google Keep notes to markdown.
https://github.com/ndbeals/keep-exporter

export-notes google-keep google-keep-export google-keep-notes keep keep-export markdown-export

Last synced: about 2 months ago
JSON representation

A command line utility to export Google Keep notes to markdown.

Awesome Lists containing this project

README

        

# Keep-Exporter
[
![PyPi](https://img.shields.io/pypi/v/keep-exporter)
![PyPi](https://img.shields.io/pypi/pyversions/keep-exporter)
![PyPi](https://img.shields.io/pypi/l/keep-exporter)
](https://pypi.org/project/keep-exporter/)

A command line utility to export Google Keep notes to markdown files with metadata stored as a frontmatter header.

## Features

* Exports all note types (List and Note)
* Exports all media attached to notes
* Audio, drawings, attached images, etc
* Sync Keep to directory (keeps directory looking exactly the same as Google Keep)
* Customizable date format
* Easy ISO8601 via `--iso8601`
* Password or token based authentication
* Store your login token to config file with `keep_export savetoken`
* Note metadata header in yaml frontmatter format

## Usage
If you do not supply a username or password before running it, you will be prompted to input them.
```
Usage: keep_export [OPTIONS] COMMAND [ARGS]...

Options:
--config FILE Read configuration from FILE. [default: /home/nate/.config/keep-exporter]
-u, --user TEXT Google account email (prompt if empty) [env var: GKEEP_USER;required]
-p, --password TEXT Google account password (prompt if empty). Either this or token is required. [env var: GKEEP_PASSWORD]
-t, --token TEXT Google account token from prior run. Either this or password is required.
-d, --directory DIRECTORY Output directory for exported notes [default: ./gkeep-export]
--header / --no-header Choose to include or exclude the frontmatter header [default: header]
--delete-local / --no-delete-local
Choose to delete or leave as-is any notes that exist locally but not in Google Keep [default: no-delete-local]
--rename-local / --no-rename-local
Choose to rename or leave as-is any notes that change titles in Google Keep [default: no-rename-local]
--date-format TEXT Date format to prefix the note filenames. Reflects the created date of the note. uses strftime() [default: %Y-%m-%d]
--iso8601 Format dates in ISO8601 format.
--skip-existing-media / --no-skip-existing-media
Skip existing media if it appears unchanged from the local copy. [default: skip-existing-media]
-h, --help Show this message and exit.

Commands:
savetoken Saves the master token to your configuration file.
```

### Notes
If you are using 2 Factor Authentication (2FA) for your google account, you will need to generate an app password for keep. You can do so on your [Google account management page.](https://myaccount.google.com/apppasswords)

## Installation
There are many ways to install this, easiest is through pip or the releases page.

### Pip
The easiest way is with [pip from PyPi](https://pypi.org/project/keep-exporter/)
```
pip3 install keep-exporter
```

### Download the Wheel
Download the wheel from the [releases page](https://github.com/ndbeals/keep-exporter/releases) and then install with pip:
```
pip install keep_exporter*.whl
```

### Building
#### Download or git clone
1. Clone the repository `https://github.com/ndbeals/keep-exporter` or download from the [releases page](https://github.com/ndbeals/keep-exporter/releases) and extract the source code.
2. `cd` into the extracted directory
3. With [poetry](https://python-poetry.org/) installed, run `poetry install` in the project root directory
4. `poetry build` will build the installable wheel
5. `cd dist` then run `pip3 install `

## Troubleshooting
Some users have had issues with the requests library detailed in [this issue](https://github.com/ndbeals/keep-exporter/issues/1) when using `pipx`. The solution is to change the requests library version.
```
pipx install keep-exporter
pipx inject keep-exporter requests===2.23.0
```