Skip to main content

Safari reading list in Python

safarireadinglist is a Python package to load your Safari reading list into Python, and to export it, including thumbnail icons.

drawing

Sample results

drawing drawing

Installation

Install the safarireadinglist package from PyPI:

pip install safarireadinglist

Note: before using, you need to give the terminal full disk access in the system preferences. Go to Settings/Security & Privacy/Full Disk Access. Navigate to /Applications/Utilities/ folder and choose the Terminal app. If you are launching the command from VS Code you will need to add this as well.

Alternative local installation:

pip install -e .

Note: setuptools is the only requirement. For dev purposes, you may want to install the exact versions in pip install -r requirements.txt.

Usage

In the command line, execute:

export-safari-rl export

The reading list will be in reading_list.json. You may also provide other options: export-safari-rl --help.

You can also export the icons from the reading list:

export-safari-rl export-icons

The icons will be in the reading_list_icons folder.

See also the README in the examples folder for more examples.

Python package

The package is a Python package and can also be used as such. See example_python.py for an example.

Example of output format

See reading_list.json. The format is a list of dictionaries, where each dictionary conforms to the safarireadinglist.ReadingListItem dataclass.

Website

To generate the website from the website folder, run:

cd website
python website.py reading_list.json reading_list_icons

The output is in the website_out folder.

drawing

Known errors & solutions

If you are getting some error like this:

cp: /Users/XXX/Library/Safari/Bookmarks.plist: Operation not permitted

You need to give the terminal full disk access. Go to Settings/Security & Privacy/Full Disk Access. Navigate to /Applications/Utilities/ folder and choose the Terminal app. If you are launching the command from VS Code you will need to add this as well.

Metadata

Release files for safarireadinglist 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for safarireadinglist 0.1.1
File Interpreter ABI Platform Actions
safarireadinglist-0.1.1-py3-none-any.whl Python 3 none any Details for safarireadinglist-0.1.1-py3-none-any.whl

Release files / safarireadinglist-0.1.1-py3-none-any.whl

Download URL safarireadinglist-0.1.1-py3-none-any.whl
Size 7.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
86eabb3829a0ceda0b18ef386c1cd39dcbea0994d54de5f78c6dce5b7f15b8bf
BLAKE2b-256 checksum
How to use checksums
65a8b19cef6f5bf248f691c16a1d97e77bcef094b06036f755b575b758c60c6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.5

Security for safarireadinglist 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page