Hướng dẫn đồng bộ Kindle Highlights vào Notion (2021)

Để đồng bộ highlights sách từ Kindle vào Notion, có 3 cách: dùng Notionfy, dùng Chrome extension “Export Kindle Highlights to Notion”, và dùng kindle2notion.

Tôi đã viết một bài về Notionfy trước đây, tuy nhiên sau một thời gian sử dụng Notionfy bị lỗi nên mày mò cài cái khác và phát hiện ra 2 cách sau, dễ làm hơn và cũng đẹp hơn nhiều.

Sau khi cài thì bạn sẽ có 1 trang sách như vầy:

Cách 1 là cách đơn giản nhất, bạn chỉ cần cài extension và thực hiện vài thao tác thôi.

Nếu bạn thích mày mò vọc vạch, hoặc thích tắt/bật đồng bộ bìa sách, bạn có thể thử cách 2.

Cách 1: Dùng extension Export Kindle Highlights to Notion

1. Bạn cài Chrome extension Export Kindle Highlights to Notion. Nhấn Add to Chrome để cài nhé.

2. Sau khi cài, bạn duplicate database này vào Notion của bạn: My Kindle Clippings.

3. Bạn cắm Kindle vào máy tính, vào trang vừa duplicate, mở extension ra (bên phải thanh địa chỉ web).

4. Để upload file My Clippings trong Kindle của bạn lên, bạn lần lượt ấn:

 Upload new Clippings File  >  Browse  >  file My Clippings trong folder Kindle của bạn  >  Upload 

5. Bạn đợi sách tự động load vào. Có thể ấn mũi tên tròn gần chữ Status để Refresh và cập nhật Status.

Vậy là xong thôi!

Cách 1 có một chút khác biệt nhỏ so với cách 2. Mỗi dòng highlight sẽ không hiện Date Added (ngày mà bạn highlight dòng đó) như ở cách 2. Bạn cũng không tắt được đồng bộ bìa sách.

Ở cách 2, bạn có thể lựa chọn bật hoặc tắt Date Added và Book Cover.

Cách 2: Dùng Python và Kindle2Notion

Cách này có một số bước khá giống với Notionfy. Nếu gặp khó khăn trong quá trình cài, bạn tham khảo thêm ở bài cũ tôi hướng dẫn chi tiết hơn tại đây hoặc vào trang Github của tác giả nhé.

Tải và cài Python

Dưới đây là hướng dẫn cài Python cho bạn nào dùng Windows. Nếu bạn dùng Mac, Linux, Chromebook, bạn xem hướng dẫn ở trang này.

1. Ấn hình kính lúp ở góc dưới màn hình hoặc ấn phím  Windows  để mở thanh tìm kiếm. Gõ python và nhấn Enter. Microsoft Store sẽ tự động mở ra để bạn tải và cài Python.

2. Bạn nhấn  Get , sau đó nhấn  Install  để cài đặt.

Upgrade pip

Ấn hình kính lúp ở góc dưới màn hình hoặc ấn phím  Windows  để mở thanh tìm kiếm. Gõ powershell để tìm và mở Windows Powershell.

Khi Powershell đã mở, bạn gõ dòng này vào và nhấn Enter:

pip install --upgrade pip

Nếu đã cài Python từ Microsoft Store, bạn chỉ cần upgrade pip thôi. Còn nếu cài từ nguồn khác thì bạn cần cài pip nhé.

Cài kindle2notion

Tiếp tục gõ dòng này vào Powershell và nhấn Enter để cài kindle2notion:

python -m pip install kindle2notion

Cài đặt

1. Cắm kindle vào máy tính.

2. Duplicate database này vào Notion của bạn: My Kindle Clippings

3. Mở trang vừa duplicate trên trình duyệt web của bạn để tìm token_v2Notion database ID:

  • Tìm token_v2:  Ctrl + Shift + C  >  Application  > copy dòng số ngay bên phải token_v2
  • Tìm Notion Database ID: copy nguyên link của trang bạn vừa duplicate.

4. Tìm địa chỉ dẫn đến file My Clippings trong máy tính của bạn: Kindle của bạn là ổ đĩa nào? File My Clippings thường nằm ở folder tên là documents trong ổ Kindle (vd F:\documents\My Clippings.txt)

5. Sau khi đã có token, Notion ID, địa chỉ file My Clippings, bạn thay thông tin vào dòng phía dưới:


python -m kindle2notion 'token_v2' 'notion id' 'địa chỉ file My Clippings'

Ví dụ:


python -m kindle2notion '2e49e97a39aa180e8c1233b44c3d4a2e1553acee2245dcdd45f4fec9dc924b8cfc995cf447c213cfe16039a5f54b25b40a0b3ffd6393b7a8f7' 'https://www.notion.so/maibui/e11cb2d772b6412a8b3a9b7cf2c03ab2?v=1665dffad7c1469e8f58991c842f3' 'F:\documents\My Clippings.txt'

Ấn Enter và đợi load sách vào trang Notion của bạn là xong nhé.

Lưu ý

Mỗi lần bạn muốn đồng bộ highlights, bạn cần phải cắm Kindle vào máy, nhập dòng lệnh python -m kindle2notion ‘token_v2’ ‘notion id’ ‘địa chỉ file My Clippings’ vào Powershell. Nó không tự đồng bộ, nên cần phải làm thủ công như vậy. Bạn nhớ lưu lại dòng lệnh để lần sau thao tác cho nhanh nhé.

Cách tắt Date Added và Book Cover

Nếu bạn không thích đồng bộ ngày highlight sách hoặc bìa sách, thì bạn có thể tắt Date Added và Book Cover đi bằng cách gõ 2 dòng này vào Powershell:



python -m kindle2notion 'token_v2' 'link trang bạn vừa duplicate' 'địa chỉ file My Clippings'--enable_highlight_date False



python -m kindle2notion 'token_v2' 'link trang bạn vừa duplicate' 'địa chỉ file My Clippings'--enable_book_cover False

Lỗi ‘HTTPError’

Nếu bạn gặp lỗi HTTPError… và highlights sách không đồng bộ được thì bạn làm theo các bước sau nhé:

1. Mở Powershell, nhập  pip show notion , nhấn Enter.

2. Sau khi nhập dòng trên, bạn sẽ thấy hiện ra địa chỉ của notion package, sẽ tương tự như vầy  /usr/local/lib/python3.9/site-packages/notion . Bạn copy dòng địa chỉ đó hoặc mở thử từng folder xem nó nằm ở đâu nhé (tìm file store.py trong thư mục notion).

3. Mở IDLE (Python 3.9), chọn File > Open > paste dòng địa chỉ vào hoặc mở từng folder > tìm file  store.py  trong thư mục notion > Open

4. Bạn kéo xuống dòng 280, đổi thành  “limit”: 100, . Save và đóng file là xong.

5. Nếu vẫn hiện lỗi tương tự, bạn xóa trang My Kindle Clippings cũ đi và cài lại từ phần Cài đặt nhé.

Chúc bạn cài thành công!

Bạn có thể đọc thêm các mẹo sử dụng Notion ở đây.


Cảm ơn bạn đã đọc bài viết này. Nếu bạn thấy bài viết có ích, hãy Subscribe hoặc Donate để ủng hộ blog nhé.

  1. cách 1 thì giờ nó phải donate mới được hay sao á
    cách 2 thì file store nó không cho mở thì làm sao ạ. mở lên cái nó tắt liền à mong add giúp

    1. Đối với cách 2, bạn mở bằng IDLE (Python 3.9) thì nó sẽ hiện file nhé, còn mở bằng Python thì nó sẽ tắt liền.
      open store.py with IDLE (Python 3.9)

  2. Em cài lại mà vẫn k đc ạ

    Notion page is found. Analyzing clippings file…
    Found 415 notes and highlights.

    × Passed 1 bookmarks or unsupported clippings.

    Initiating transfer…

    Traceback (most recent call last):
    File “C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0\lib\runpy.py”, line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
    File “C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0\lib\runpy.py”, line 87, in _run_code
    exec(code, run_globals)
    File “C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\kindle2notion\__main__.py”, line 49, in
    main()
    File “C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\click\core.py”, line 1128, in __call__
    return self.main(*args, **kwargs)
    File “C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\click\core.py”, line 1053, in main
    rv = self.invoke(ctx)
    File “C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\click\core.py”, line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
    File “C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\click\core.py”, line 754, in invoke
    return __callback(*args, **kwargs)
    File “C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\kindle2notion\__main__.py”, line 38, in main
    export_to_notion(
    File “C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\kindle2notion\exporting.py”, line 35, in export_to_notion
    message = _add_book_to_notion(
    File “C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\kindle2notion\exporting.py”, line 87, in _add_book_to_notion
    notion_collection_view_rows = notion_collection_view.collection.get_rows()
    File “C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\notion\collection.py”, line 239, in get_rows
    return self.query(**kwargs)
    File “C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\notion\collection.py”, line 236, in query
    return CollectionQuery(self, self._get_a_collection_view(), **kwargs).execute()
    File “C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\notion\collection.py”, line 385, in execute
    self._client.query_collection(
    File “C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\notion\client.py”, line 294, in query_collection
    return self._store.call_query_collection(*args, **kwargs)
    File “C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\notion\store.py”, line 344, in call_query_collection
    response = self._client.post(“queryCollection”, data).json()
    File “C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\notion\client.py”, line 260, in post
    raise HTTPError(
    requests.exceptions.HTTPError: Invalid input.
    PS C:\Users\ASUS>

    1. Cái này thì mình chỉu rồi, bạn xóa tất cả cài lại xem sao. Có gì theo dõi trang Github của tác giả thêm nha.

  3. Mình làm như bạn nhưng chạy tới cuối bị lỗi raise HTTPError(
    requests.exceptions.HTTPError: Invalid input.

    Đã chỉnh limit về 100 & xóa my clipping làm lại

    1. Cái này thì mình chịu rồi, bạn xóa tất cả cài lại xem sao. Có gì theo dõi trang Github của tác giả thêm nha.

  4. Bạn nào thử cách trên không được thì có thể cài ứng dụng Obsidian và dùng plugin tên là Kindle Highlights để đồng bộ nhé. Mình vừa thử thì thấy đồng bộ đầy đủ và nhanh nữa. Hơi bất tiện cho bạn nào không dùng Obsidian xíu 😛

Your email address will not be published. Required fields are marked *

Zeen Social Icons