Manage your research papers from Python. This project lets you update a Notion database with arXiv links and download PDFs of papers to your local machine.
-
Create an internal integration in Notion.
-
Add the integration to the database you want to download from.
-
Store your
NOTION_TOKEN
andNOTION_DATABASE_ID
somewhere safe. YourNOTION_TOKEN
can be found in your integrations page and is called the Internal Integration Token. TheNOTION_DATABASE_ID
can be found in the URL of your database (https://www.notion.so/{workspace_name}/{database_id}?v={view_id}
). -
Install local dependencies:
pip install rsrch
-
Important: Your Notion database must have the following columns with the corresponding types:
- Title:
Title
- URL:
URL
- Date:
Date
- Authors:
Text
You can add more columns, but these are the ones that are required.
- Title:
from rsrch import RsrchClient
client = RsrchClient(
token=NOTION_TOKEN,
database_id=NOTION_DATABASE_ID,
)
This will download all the papers from your Notion database to the papers/
directory.
client.download()
You can upload arXiv abstract links, PDF links, or IDs to your Notion database and have it autofill all of the relevant fields.
client.upload(
arxiv_urls=[
"https://arxiv.org/abs/1706.03762",
"https://arxiv.org/pdf/1706.03762.pdf",
"1706.03762",
]
)
Alternatively, you can add non-arXiv links manually to Notion.
- Uploading papers to Notion is currently only supported for arXiv links. Papers with titles that already exist in the database will not be uploaded.
- I plan on adding support for other databases in the future, but for now it only works with Notion databases.
- To build and release this:
- Make new code accessible in
src/__init__.py
- Update the version in
src/__about__.py
- Run
python3 -m build
- Run
python3 -m twine upload dist/*
- Make new code accessible in