如何把連接 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
16會員
16內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Yi-Ling Chen的沙龍 的其他內容
台灣的科技公司會發放股票,美國科技公司發放的則是RSU (Restricted Stock Unit), 通常會分成數年慢慢發放。跟股票或選擇權不同的地方是,RSU 在發放的時候,會納入當年的所得,所以員工需要先繳一筆所得稅,之後買賣股票的時候,如果有賺的話,又會再產生資本利得稅。
ChatGPT 在去年十一月橫空出世,每個人都驚探於它的能力,AI 也從遙遠的科技成為很多人每天都在使用的工具,但是自從 AI 成為最熱門的話題之後,始終有一群人一直大聲疾呼,我們需要小心發展 AI,另一方面則要提防 AI 被壞人利用,在影片中,Andrej Karpathy 介紹了三種已知的安全漏
終於看完了進擊的巨人最終章,非常感謝 MAPPA 製作了動畫,補足了很多當初漫畫匆匆結束的疑惑與不滿,我終於能透體會為什麼艾連要發動地鳴。
最近「How to Do Great Work」很紅,我對這篇文章很有共鳴,覺得這篇文章提到的很多原則可以廣泛的應用在做人做事上,就算我們只是平凡人,沒有野心完成什麼偉大成就,應用這些原則也能確保我們的人生不會徒勞白費。
九月第一個星期一是美國的勞工節,原本應該是個快樂的長週末,然而我卻這個週末收到公司通知「因為資金短缺,即日起開始放無薪假」,而我要做的第一件事除了打開 Linkedin 外,當然就是開始申請失業補助。
HSA 帳戶是很好的退休理財帳戶,然而有些問題是使用之後才發現。
台灣的科技公司會發放股票,美國科技公司發放的則是RSU (Restricted Stock Unit), 通常會分成數年慢慢發放。跟股票或選擇權不同的地方是,RSU 在發放的時候,會納入當年的所得,所以員工需要先繳一筆所得稅,之後買賣股票的時候,如果有賺的話,又會再產生資本利得稅。
ChatGPT 在去年十一月橫空出世,每個人都驚探於它的能力,AI 也從遙遠的科技成為很多人每天都在使用的工具,但是自從 AI 成為最熱門的話題之後,始終有一群人一直大聲疾呼,我們需要小心發展 AI,另一方面則要提防 AI 被壞人利用,在影片中,Andrej Karpathy 介紹了三種已知的安全漏
終於看完了進擊的巨人最終章,非常感謝 MAPPA 製作了動畫,補足了很多當初漫畫匆匆結束的疑惑與不滿,我終於能透體會為什麼艾連要發動地鳴。
最近「How to Do Great Work」很紅,我對這篇文章很有共鳴,覺得這篇文章提到的很多原則可以廣泛的應用在做人做事上,就算我們只是平凡人,沒有野心完成什麼偉大成就,應用這些原則也能確保我們的人生不會徒勞白費。
九月第一個星期一是美國的勞工節,原本應該是個快樂的長週末,然而我卻這個週末收到公司通知「因為資金短缺,即日起開始放無薪假」,而我要做的第一件事除了打開 Linkedin 外,當然就是開始申請失業補助。
HSA 帳戶是很好的退休理財帳戶,然而有些問題是使用之後才發現。
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
Notion 是一款集合筆記、任務管理、知識庫和數據庫於一身的多功能工具。它提供靈活的頁面結構和多種模板,讓用戶根據需求自定義工作空間。不論是個人還是團隊,都能用 Notion 提高工作效率和管理信息。
Thumbnail
之前分享過 Notion 卡片盒筆記缺乏圖像化流程圖的視覺呈現,雖然我個人較少用到,但是還是收到一些希望能有圖像化顯示的訊息。最近發現一個 Figma 外掛,可以將便利貼牆匯入 Notion 資料庫,或許也能補足圖像化製作流程圖等方面的需求!
Thumbnail
我在之前提到過「朋」跟「友」的概念略有不同,我自己是以 Notion 資料庫的方式來管理跟我有關聯的「人物」,同時也是系統中的一小部分,接下來我們來看看這個資料庫的使用方法,也順便介紹我的設置方法。
Thumbnail
經過前兩篇文章(Notion 是什麼?你適合使用 Notion 嗎、Notion 介面一覽及必備設定)的介紹,相信大家對 Notion 的功能及介面有了大致的瞭解,這次想要與大家分享的是我認為 Notion 中最具代表性的功能,Database。
Thumbnail
近日有些夥伴在詢問我要如何使用 Notion 的多工畫面以及分享頁面的相關設置等等,因此今天就來導覽一下 Notion 介面以及我認為有哪些必做的設定調整,當然免不了還有滿滿的快捷鍵教學,請大家一定要看到最後,才不會錯過!
Thumbnail
你有在使用卡片和筆記系統嗎?這是一種強調有效連結和處理知識的知識管理系統 因為Notion沒有視覺化的連結與白板,所以其實我曾經嘗試過使用其他軟體 最後還是回來Notion 加上自動編號之後,目前這個模板讓我寫作輸出的時候輕鬆很多 只需要專注地寫下所有想法跟收集來的摘要,最後簡單排序就能組成文章了!
Thumbnail
身為學生的你可能還在觀望要不要學 Notion,聽說很難但是好像功能又非常強大。今天就讓我用 5 分鐘告訴你你適不適合用 Notion,以及它的強大之處。
Thumbnail
身為數位工作者,我們常會使用多種生產力工具來輔助工作,Notion 和其中許多工具合作推出整合服務,讓你可以輕鬆把他們的檔案或功能嵌入 Notion,為你的 Notion 工作區增添一對翅膀。
Thumbnail
Readwise 自動匯入資訊(如 Kobo 電子書、網路文章、社群媒體),輕鬆建立個人知識庫,更自動匯出至 Google Docs 或 Notion...等!還能設計測驗內容,透過 APP / Email 每日推播筆記內容,幫助複習加深印象!更能針對重點摘要「自行設定標籤」,運用關鍵字快速檢索資料
Thumbnail
Notion目前還沒有中文版,加上自由度高,一開始真的不知道要怎麼使用,也很難感受到他到底好用在哪?所以我整理了輕鬆開始的簡單的三步驟,照著這個順序開始,就能少走歪路,順利將Notion應用在工作生活上,變成你的得力助手!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
Notion 是一款集合筆記、任務管理、知識庫和數據庫於一身的多功能工具。它提供靈活的頁面結構和多種模板,讓用戶根據需求自定義工作空間。不論是個人還是團隊,都能用 Notion 提高工作效率和管理信息。
Thumbnail
之前分享過 Notion 卡片盒筆記缺乏圖像化流程圖的視覺呈現,雖然我個人較少用到,但是還是收到一些希望能有圖像化顯示的訊息。最近發現一個 Figma 外掛,可以將便利貼牆匯入 Notion 資料庫,或許也能補足圖像化製作流程圖等方面的需求!
Thumbnail
我在之前提到過「朋」跟「友」的概念略有不同,我自己是以 Notion 資料庫的方式來管理跟我有關聯的「人物」,同時也是系統中的一小部分,接下來我們來看看這個資料庫的使用方法,也順便介紹我的設置方法。
Thumbnail
經過前兩篇文章(Notion 是什麼?你適合使用 Notion 嗎、Notion 介面一覽及必備設定)的介紹,相信大家對 Notion 的功能及介面有了大致的瞭解,這次想要與大家分享的是我認為 Notion 中最具代表性的功能,Database。
Thumbnail
近日有些夥伴在詢問我要如何使用 Notion 的多工畫面以及分享頁面的相關設置等等,因此今天就來導覽一下 Notion 介面以及我認為有哪些必做的設定調整,當然免不了還有滿滿的快捷鍵教學,請大家一定要看到最後,才不會錯過!
Thumbnail
你有在使用卡片和筆記系統嗎?這是一種強調有效連結和處理知識的知識管理系統 因為Notion沒有視覺化的連結與白板,所以其實我曾經嘗試過使用其他軟體 最後還是回來Notion 加上自動編號之後,目前這個模板讓我寫作輸出的時候輕鬆很多 只需要專注地寫下所有想法跟收集來的摘要,最後簡單排序就能組成文章了!
Thumbnail
身為學生的你可能還在觀望要不要學 Notion,聽說很難但是好像功能又非常強大。今天就讓我用 5 分鐘告訴你你適不適合用 Notion,以及它的強大之處。
Thumbnail
身為數位工作者,我們常會使用多種生產力工具來輔助工作,Notion 和其中許多工具合作推出整合服務,讓你可以輕鬆把他們的檔案或功能嵌入 Notion,為你的 Notion 工作區增添一對翅膀。
Thumbnail
Readwise 自動匯入資訊(如 Kobo 電子書、網路文章、社群媒體),輕鬆建立個人知識庫,更自動匯出至 Google Docs 或 Notion...等!還能設計測驗內容,透過 APP / Email 每日推播筆記內容,幫助複習加深印象!更能針對重點摘要「自行設定標籤」,運用關鍵字快速檢索資料
Thumbnail
Notion目前還沒有中文版,加上自由度高,一開始真的不知道要怎麼使用,也很難感受到他到底好用在哪?所以我整理了輕鬆開始的簡單的三步驟,照著這個順序開始,就能少走歪路,順利將Notion應用在工作生活上,變成你的得力助手!