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.
Sample results
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.
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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.