如何把連接 Kobo 閱讀器與 Notion 筆記軟體?

更新於 發佈於 閱讀時間約 10 分鐘

我時常用 Kobo 閱讀器來看電子書,在閱讀的過程中,我會順手把看了有感覺的句子標註起來,另外我也會用 Notion 來記錄我的閱讀清單,我想利用程式自動把 kobo 閱讀器裡的標註段落(Highlights)匯入到 Notion 裡,該如何做呢?


步驟 1: 建立 Notion integration

要與 Notion 互動,第一步是要建立 Integration. 打開 https://www.notion.so/my-integrations 並且點選 「New integrations」,例如我建立了「kobo-export」,

raw-image

建立好 integration,進去該頁面,可以得到 Integration Secret (晚點程式需要)

raw-image



步驟 2: 將閱讀清單頁面連上integration

在 Notion 頁面右上角有「…」,選擇 Connect → export-kobo,將頁面連結上 integration,程式才有權限讀寫該頁面。

raw-image



步驟 3: 取得閱讀清單頁面的database id

連上 web 版 Notion,選取讀清單頁面,我們可以從 url 取得database id

例如閱讀清單頁面 的URL 是

https://www.notion.so/xxxx/2a6a8e2667894f4e9ea4ea5191e98f26

database id 就是 2a6a8e2667894f4e9ea4ea5191e98f26


步驟 4: 取得 Kobo sqlite database

將 Kobo 閱讀器連接上電腦,在隱藏資料夾「./kobo 」下有 KoboReader.sqlite,裡面存有閱讀器上標註的 Highlights,將該檔案與 export 程式放在同一目錄下。


步驟5: 建立 export 程式

export.py 裡面,我們先要準備 .env file,裡面有 NOTION_KEY(步驟1取得) 和 NOTION_DB_ID (步驟3取得)

NOTION_KEY=secret_xxxxxxxxxxxxxxxxxxx
NOTION_DB_ID=2a6a8e2667894f4e9ea4ea5191e98f26

利用 NOTION_KEY,我們可以 create notion client

from notion_client import Client

self.client_secret = os.getenv('NOTION_KEY')
self.client = Client(auth=self.client_secret)

假設我們打算要匯入《明日,明日,又明日》這本書的 highlights,

我們要先在閱讀清單頁面找到該書的頁面(如下)

raw-image

我們利用 notion client 來 query database

def query_parent_page(self, title): 
try:
my_page = self.client.databases.query(
**{ "database_id": self.reading_db_id,
"filter": {
"property": "Title",
"rich_text": {
"contains": title,
},
},
}
)
if my_page:
return my_page["results"][0]['id']
else:
return None
except APIResponseError as error:
print(error)

找到該書的頁面之後,我們要在這個頁面下面建立一個「Kobo Highlights」的頁面,

def create_highlight_page(self, target_page_id):
highlight_page = self.client.pages.create(
**{ "parent": {
"type": "page_id",
"page_id": target_page_id
},
"properties": {
"title": [
{
"text": {
"content": "Kobo Highlights"
}
}
]
}
}
)
return highlight_page['id']

結果就像這樣

raw-image

建立好頁面,我們就可以從 KoboReader.sqlite 讀取 Highlights,並寫到新建立的 「Kobo Highlights」頁面

def export_highlight_to_notion(self, title): 
books_in_file = pd.read_sql("select c.ContentId AS 'Content ID',
c.Title AS 'Book Title' from content As c。
where c.Title like '%"+title+"%'", self.conn)
if len(books_in_file):
print(f"step3: find book in kobo db, title = {title}, books number = {len(books_in_file)}")
for i in range(0,len(books_in_file)):
bookmark_df = pd.read_sql("SELECT VolumeID AS 'Volume ID',
Text AS 'Highlight', Annotation, DateCreated AS 'Created On',
Type " + "FROM Bookmark Where VolumeID = '" + books_in_file['Content ID'][i] + "'" " ORDER BY 4 ASC", self.conn)
print(f"step4: write highlight into notion, highlight number = {len(bookmark_df)}")
for j in range(0, len(bookmark_df)):
if bookmark_df['Highlight'][j] != None: bookmark_df['Highlight'][j] = bookmark_df['Highlight'][j].strip()
for x in range(0, len(bookmark_df)):
if bookmark_df['Type'][x] == 'highlight':
self.write_text(target_page_id, bookmark_df['Highlight'][x], 'paragraph')
else:
if bookmark_df['Annotation'][x] != None:
self.write_text(target_page_id, bookmark_df['Annotation'][x], 'quote')
if bookmark_df['Highlight'][x] != None:
self.write_text(target_page_id, bookmark_df['Highlight'][x], 'paragraph')

全部的程式碼我放在github:


留言
avatar-img
留言分享你的想法!
Up Chen-avatar-img
2024/11/26
懶人病發作,每次要整理筆記還要跑程式好懶啊,而且還要手動整理到章節下才是完整筆記。 所以我做了一個網站,可以直接讀取 Kobo 硬碟然後直接顯示章節和筆記,工具網址是:https://kobo-up.runawayup.com/ 使用方法是: 1. 插上 Kobo 到電腦 2. 用 Chrome 或 Edge 瀏覽器打開網址 https://kobo-up.runawayup.com/ 3. 點網站中紫色的上傳框框,選擇 Kobo 外接硬碟,按上傳。 這樣就完成,能看到自己的所有書本和筆記了! 這個網站解決我的痛點是: 1. 顯示所有的書籍和筆記,不用一個一個點匯出 2. 筆記會排到書本的章節標題下,不會全部混在一起 3. 不用寫程式、不用打開隱藏檔,只要選擇 Kobo 外接硬碟就可以用了! 如果有 Bug,或是想要更多功能,請直接告訴我,網站底部有聯絡方式~
jack 9-avatar-img
2024/09/10
請問你寫的程式碼 是不是KOBO ereader在連接電腦的情況下,在電腦把notion開啟 才能備份畫線的文件資料? 謝謝
avatar-img
Yi-Ling Chen的沙龍
18會員
16內容數
Yi-Ling Chen的沙龍的其他內容
2024/08/23
如果在美國有工作,公司會幫忙開設 401k 帳戶,做為日後退休用。401k 帳戶有存入上限,2023 年上限是 $22500,不過其實401k 帳戶可以存入的上限遠遠不止於此。
Thumbnail
2024/08/23
如果在美國有工作,公司會幫忙開設 401k 帳戶,做為日後退休用。401k 帳戶有存入上限,2023 年上限是 $22500,不過其實401k 帳戶可以存入的上限遠遠不止於此。
Thumbnail
2024/06/08
年前公司宣布破產,解雇了大部份的員工,我也包含在內,今年我成功找到新工作,開始上工,第一件要做的事就是處理之前的 401k (退休帳戶)。
Thumbnail
2024/06/08
年前公司宣布破產,解雇了大部份的員工,我也包含在內,今年我成功找到新工作,開始上工,第一件要做的事就是處理之前的 401k (退休帳戶)。
Thumbnail
2024/03/29
台灣的科技公司會發放股票,美國科技公司發放的則是RSU (Restricted Stock Unit), 通常會分成數年慢慢發放。跟股票或選擇權不同的地方是,RSU 在發放的時候,會納入當年的所得,所以員工需要先繳一筆所得稅,之後買賣股票的時候,如果有賺的話,又會再產生資本利得稅。
2024/03/29
台灣的科技公司會發放股票,美國科技公司發放的則是RSU (Restricted Stock Unit), 通常會分成數年慢慢發放。跟股票或選擇權不同的地方是,RSU 在發放的時候,會納入當年的所得,所以員工需要先繳一筆所得稅,之後買賣股票的時候,如果有賺的話,又會再產生資本利得稅。
看更多
你可能也想看
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
我在之前提到過「朋」跟「友」的概念略有不同,我自己是以 Notion 資料庫的方式來管理跟我有關聯的「人物」,同時也是系統中的一小部分,接下來我們來看看這個資料庫的使用方法,也順便介紹我的設置方法。
Thumbnail
我在之前提到過「朋」跟「友」的概念略有不同,我自己是以 Notion 資料庫的方式來管理跟我有關聯的「人物」,同時也是系統中的一小部分,接下來我們來看看這個資料庫的使用方法,也順便介紹我的設置方法。
Thumbnail
經過前兩篇文章(Notion 是什麼?你適合使用 Notion 嗎、Notion 介面一覽及必備設定)的介紹,相信大家對 Notion 的功能及介面有了大致的瞭解,這次想要與大家分享的是我認為 Notion 中最具代表性的功能,Database。
Thumbnail
經過前兩篇文章(Notion 是什麼?你適合使用 Notion 嗎、Notion 介面一覽及必備設定)的介紹,相信大家對 Notion 的功能及介面有了大致的瞭解,這次想要與大家分享的是我認為 Notion 中最具代表性的功能,Database。
Thumbnail
近日有些夥伴在詢問我要如何使用 Notion 的多工畫面以及分享頁面的相關設置等等,因此今天就來導覽一下 Notion 介面以及我認為有哪些必做的設定調整,當然免不了還有滿滿的快捷鍵教學,請大家一定要看到最後,才不會錯過!
Thumbnail
近日有些夥伴在詢問我要如何使用 Notion 的多工畫面以及分享頁面的相關設置等等,因此今天就來導覽一下 Notion 介面以及我認為有哪些必做的設定調整,當然免不了還有滿滿的快捷鍵教學,請大家一定要看到最後,才不會錯過!
Thumbnail
Notion目前還沒有中文版,加上自由度高,一開始真的不知道要怎麼使用,也很難感受到他到底好用在哪?所以我整理了輕鬆開始的簡單的三步驟,照著這個順序開始,就能少走歪路,順利將Notion應用在工作生活上,變成你的得力助手!
Thumbnail
Notion目前還沒有中文版,加上自由度高,一開始真的不知道要怎麼使用,也很難感受到他到底好用在哪?所以我整理了輕鬆開始的簡單的三步驟,照著這個順序開始,就能少走歪路,順利將Notion應用在工作生活上,變成你的得力助手!
Thumbnail
Notion 是一個高度自由的筆記式平台,讓你可以根據自己的需求定製各種功能。在今天的教學中,我將向你介紹如何透過 WidgetStore 將 Notion 帶入一個全新的層次,並推薦三種在其他外掛中需要付費版才能使用的功能,以便你在學習和工作中發揮更大的效益。讓我們看下去!
Thumbnail
Notion 是一個高度自由的筆記式平台,讓你可以根據自己的需求定製各種功能。在今天的教學中,我將向你介紹如何透過 WidgetStore 將 Notion 帶入一個全新的層次,並推薦三種在其他外掛中需要付費版才能使用的功能,以便你在學習和工作中發揮更大的效益。讓我們看下去!
Thumbnail
Notion 是一個功能強大的 all-in-one 工具,讓我們能更有效地整理及安排事務。在設計頁面時,繼先前分享過的 Indify、Apption、WidgetBox、Kiaro,以及 Shorouk's Blog,本篇要來推薦另一個美化 Notion 的外掛工具 — Notionplus。
Thumbnail
Notion 是一個功能強大的 all-in-one 工具,讓我們能更有效地整理及安排事務。在設計頁面時,繼先前分享過的 Indify、Apption、WidgetBox、Kiaro,以及 Shorouk's Blog,本篇要來推薦另一個美化 Notion 的外掛工具 — Notionplus。
Thumbnail
現今,知道如何學習並有效地紀錄和整理重要資訊,是每位新生代必備的技能。先前已經介紹了 Notion Web Clipper 和 Save to Notion 兩個工具,而在這篇文章中,我們將介紹 Klippper 網站,一款能夠幫助我們更精確地紀錄關鍵資訊,並將其整合進 Notion 的工具。
Thumbnail
現今,知道如何學習並有效地紀錄和整理重要資訊,是每位新生代必備的技能。先前已經介紹了 Notion Web Clipper 和 Save to Notion 兩個工具,而在這篇文章中,我們將介紹 Klippper 網站,一款能夠幫助我們更精確地紀錄關鍵資訊,並將其整合進 Notion 的工具。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News