Skip to main content

Convert AddressBook database (.abcddb) to Contacts VCards file (.vcf)

Project description

abcddb2vcard

This python script reads an AddressBook database file (AddressBook-v22.abcddb) and export its content to a vCard file (.vcf).

I created this script to automate my contacts backup procedure. The output of this script should be exactly the same as dragging and dropping the “All Contacts” card.

Usage

python3 abcddb2vcard.py backup/contacts_$(date +"%Y-%m-%d").vcf

assuming db is located at "~/Library/Application Support/AddressBook/AddressBook-v22.abcddb"

Export into individual files

python3 abcddb2vcard.py outdir -s 'path/%{fullname}.vcf'

Extract contact images

python3 vcard2image.py AllContacts.vcf ./profile_pics/

Supported data fields

firstname, lastname, middlename, nameprefix, namesuffix, nickname, maidenname, phonetic_firstname, phonetic_middlename, phonetic_lastname, phonetic_organization, organization, department, jobtitle, birthday, [email], [phone], [address], [socialprofile], note, [url], [xmpp-service], image, iscompany

Limitations

The image field currently only supports JPG images. I have honestly no idea where PNG images are stored. For PNGs the database only stores a UUID instead of the file itself. If you happen to know where I can find these, open an issue or pull request.

Disclaimer

You should check the output for yourself before using it in a production environment. I have tested the script with many arbitrary fields, however there may be some edge cases missing. Feel free to create an issue for missing or wrong field values.

Note: The output of diff or FileMerge.app can be different to this output. Apples does some weird transformations on vcf export that are not only unnecessary but in many cases break the re-import of the file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

abcddb2vcard-1.1.1.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

abcddb2vcard-1.1.1-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file abcddb2vcard-1.1.1.tar.gz.

File metadata

  • Download URL: abcddb2vcard-1.1.1.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.2

File hashes

Hashes for abcddb2vcard-1.1.1.tar.gz
Algorithm Hash digest
SHA256 0e1aa71888a80d0260a95a0c0136d6a6796e2eb019b95338c593a134fe510741
MD5 74025d2f49f56a6efc6fb9e627a11685
BLAKE2b-256 11897ba360ea103c75a6562e1f2bc2f2ab24d32a21195913540171e1f64eaf90

See more details on using hashes here.

File details

Details for the file abcddb2vcard-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: abcddb2vcard-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.2

File hashes

Hashes for abcddb2vcard-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f98ef3ee5971bb60ff716f43a6e8cdde18d1a5f403f2e43ea1ae7e531ea62b86
MD5 df71f4e205db2e40097a08446b0eff03
BLAKE2b-256 60fc986eabc643fad78fa60a3fc1795ff43d24dd46b72fecf777ba687eb23c31

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page