Ancestry Image Downloader

This Python script downloads all the images from Ancestry.com that are related to records in your family tree. It works with the 'new style' website that is current at August 2016. This script is not related to the former program also known as "Ancestry Image Downloader".

WARNING!
Usage of this script is prohibited in the Ancestry Terms and Conditions.
USAGE IS AT YOUR OWN RISK!
Click to Read More

Download the Script (Save-As)

-

Donate as a Thank You (Paypal)

A note to Ancestry: If you provided your paying users a means to download the images in bulk like they have been asking for - see (1) (2) (3) (4) - and without having to buy an additional and now discontinued program (FTM'16), they wouldn't have to resort to using scripts like this one.

Table of Contents

Requirements

To access the records and download the images in your family tree, you must have a current Ancestry subscription.

Using this script means you will have to violate the Ancestry Terms and Conditions. DO NOT USE THIS SCRIPT IF YOU DO NOT WANT TO. Read more.

The script requires Python 3, and has been specifically tested with Python 3.5. Download Here

In addition, this script requires the requests module for Python.

Instructions

  1. Install Python 3 (Windows instructions)
  2. Install the Python 'requests' module (open a command prompt, and type `pip install requests`).
  3. Download your gedcom file from Ancestry.
  4. Download this script. You may have to do a Save-As.
  5. Edit the script just downloaded.
    Easiest method is to use IDLE. Change the 4 lines at the top of the script as follows. After entering this information, the file should look similar to the following; USERNAME = "joe_bloggs55" PASSWORD = "secret" GEDCOM_FILE = r"C:\Users\joeb\Downloads\ancestry_gedcom.ged" OUTPUT_DIRECTORY = r"C:\Users\joeb\Documents\AncestryImageDownloads" Or if the script and gedcom file are in the same folder, it could look like this; USERNAME = "joe_bloggs55" PASSWORD = "secret" GEDCOM_FILE = r"ancestry_gedcom.ged" OUTPUT_DIRECTORY = r"AncestryImageDownloads"
  6. Run the script.
    The easiest method is via IDLE. Information about the program will now be written in the other IDLE window, the 'Shell' window.
  7. Review the information the script writes in the 'Shell' as the script proceeds. If there are any problems, the script will let you know what to fix.
  8. If there are no problems with your gedcom file, when the script is ready to start downloading, you will be prompted to "Agree" to the warning.
    Up to this point, the script has not accessed the internet, nor Ancestry.com.
    If you agree, you may be violating the Ancestry Terms and Conditions. Read more.
  9. Wait for the script to finish. For information on how much it will download, refer to the relevant FAQ section. You can stop the script at any time by pressing Ctrl+C, or closing the script/IDLE.
  10. Once the script is finished, it will tell you how many errors were encountered (if any) at the end. Instructions for reviewing these errors are below.

Scripts Output

After the script is finished, a log and CSV will have been created. The images will have been saved into folders that correspond to their database.

The CSV file can be opened in Microsoft Excel, or a similar program (even Notepad). The CSV file has the following columns;

The CSV file can then be used by plugins or other scripts for linking sources to images in other family tree programs. This functionallity is not provided by this script.

The log file can be opened in a text editor such as Notepad. You can review it for any errors (search the file for the word error and/or aborted).
You can investigate why a particular APID did not download by visiting its record page. An APID such as "1,234::567890" becomes the URL http://search.ancestry.com/cgi-bin/sse.dll?indiv=1&dbid=234&h=567890.

FAQ

Is this allowed by Ancestry?
The Ancestry.com.au Terms and Conditions state the following (your local Ancestry site may be different);
"[you may] download Content only as search results relevant to that research."
"you may access the Websites only personally with an individual browser or mobile application (bots, crawlers, spiders, scraping and other automatic access tools are prohibited)".
This script is probably regarded as a "bot", "scraper", and "automatic access tool", and is thus prohibited.
Additionally the T&C states "Violation of this limited use license may result in immediate termination of your membership and may result in legal action against you."

USAGE OF THIS SCRIPT IS AT YOUR OWN RISK, AND YOU ACCEPT ALL LIABILTY IN DOING SO!

Will this script give me a virus, or steal my login details?
No. The only website this script ever 'talks to' is Ancestry.com. But don't take my word for it, review the source code yourself.
What does the script do exactly?
First it checks your gedcom file is suitable (not from another program), and then finds all the Sources with Ancestry Records (_APID lines in the file). Then it logs into Ancestry with your login details, and gets the record information using the APID. The record information contains the image information, which is then used to download the image to your computer. A log and CSV file are created in the process, for your information.
How much will this download, and how long will it take?
It is estimated that per 1000 APID's in a gedcom file, this script will download about 300 images, which will take about 250MB. On ADSL2, this will take about 1 hour.
I thought a lot more images would have been downloaded...
Some records on Ancestry do not have images.
Additionally, 1 census record could cover a whole family of 10 people. If you have used this 1 census record as proof of name, birth, gender, residence, etc, a single record (APID) could have 4 references per person. If this is true for all 10 people in the family/census-record, then 1 image can infact be related to 40 APID matches in the gedcom file.
Lastly, there may have been some errors. Be sure to review your logs as mentioned elsewhere on this page.
Why isn't this a nice and easy to use program?
This script is provided out of good will, but the extent of that good will is limited. You can Donate via Paypal to motivate the author further.
Can I get help to use this script, or fix errors?
No. This script is provided as-is (refer the license at the top of the script file). The script outputs helpful errors, which you can review and try to solve yourself.