Image download and import from getmyancestors urls to Gramps

Hello, I used the rather good getmyancestors python package to generate a 10 generation .ged from familysearch. When I import this into Gramps, an individual’s ‘Internet’ field has a url to some nice image (if they’re posh enough, I suppose). How can I get this into the ‘gallery’ field, i.e. how do I tell Gramps that this is an image url and it should download it from familysearch and link to it? I tried using the DownloadMedia.py plugin, but it doesn’t seem to be working (it says ‘downloading files’, ‘filter applying’ (what filter?!) and then 0 media files downloaded).

Some help would definitely be appreciated. I only just downloaded Gramps, and started researching genealogy like 2 days ago, and so am very clueless.

Oh, and using Gramps 5.1.6-1 and Windows 10, if that matters.

Also, I should probably clarify that I’m looking for an automated method of doing this for 000s of individuals, not manually saving each image and then importing into Gramps one by one, heh…

Support page for the Addon:DownloadMedia mentions “But provision has been made in the source code to enhance the Addon:DownloadMedia in case a login name and password for the website is needed.” so you may need to modify the code to add your login code and update the “file_pattern” line to match the website you are using as it is currently set for https://www.geni.com/

https://www.gramps-project.org/wiki/index.php/Addon:DownloadMedia

Thanks for the reply. I don’t think that’s the problem, because no login is needed to download the images (they are just publicly visible jpgs that I can access without logging in or anything, and there is no reference to https://www.geni.com/ hardcoded into the script as far as I can tell. I uncommented the code to allow entering a username and password, and it makes no difference. The generated .ged file contains lines like: “2 FILE https://sg30p0.familysearch.org/service/records/storage/dascloud/patron/v2/TH-904-87270-1374-39/dist.jpg?ctx=ArtCtxPublic”, and the basic url can be seen in an individual’s ‘Internet’ tab when I import the file in Gramps. It makes no difference if I replace ‘.jpg?ctx=ArtCtxPublic’ with just '.jpg’ either. I can’t really work out what DownloadMedia.py wants, if not a url containing an image file extension…

Neither https://sg30p0.familysearch.org/service/records/storage/dascloud/patron/v2/TH-904-87270-1374-39/dist.jpg?ctx=ArtCtxPublic nor https://sg30p0.familysearch.org/service/records/storage/dascloud/patron/v2/TH-904-87270-1374-39/dist.jpg return a JPG for the general public. They return a 401 (Unauthorized) error. Your browser must already be logged in. But that doesn’t mean the site will recognize Gramps as an authorized requestor.

I tried configuring a couple Media objects with valid URIs. But Gramps will not validate them. It looks like only imported GEDCOM data can put a URI into a media path.

Hmm. That’s odd - I can access those links even from a browser where I’m definitely not logged in, on a computer I’ve never logged in to familysearch with. Perhaps it’s allowing my IP address somehow, after previously logging in on the same network? Anyway, thanks for testing that. I’ll try again tomorrow when I’m feeling less tired.

FamilySearch caches authorizations for the Browser. (Although they have an option to “Keep me signed in for 2 weeks”, it doesn’t seem to persist anywhere near that long.) It might not have cleared that by the time you’re not tired tomorrow.

If you want to see the other behavior, choose the “Sign out” menu item when you click on your User Name in the upper right of FamilySearch site of the browser window.

I already did sign out… I still see the image when I click the link though. I just tried it on a different network and I get the 401 error when I do that.

Perhaps tests should start with an image file which known to be accessible (without account or password) and is in the public domain?

https://github.com/gramps-project/gramps/blob/master/example/gramps/Alimehemet.jpg

The DownloadMedia tool only works when the URL is found in the Gramps Media record’s Path field. You indicate that the URL’s showed up in the Person’s Internet tab.

These URL’s ending up in the Internet tab is a result of how FamilySearch created the export GEDCOM and how it stores media objects. Gramps imports the information and puts the information in the fields based upon the coding in the GEDCOM.

Option one is to manually import media record by record. Which is not a bad option because it allows you to better control what is downloaded, where you store it on your hard drive and how you edit the Media record.

Option two is to find how the URL are coded in the GEDCOM then editing the GEDCOM so that when imported into Gramps, Gramps sees them as a Media object and stores the URL in the Path field.

1 Like

Yes, that one please!

An example of the relevant line from the generated .ged file would be

2 FILE https://sg30p0.familysearch.org/service/records/storage/dascloud/patron/v2/TH-904-87270-1374-39/dist.jpg?ctx=ArtCtxPublic

I believe it is the “2 FILE” part that is causing the URL to be imported into an individual’s Internet tab. I think the “2 FILE” needs to be replaced with… something. But what?

The keyword FILE is part of the GEDCOM standard and only tells the importing program what the text after that word could represent, so I’m guessing it has nothing to do with the issue at all. If anything it might be that the prggram that the GEDCOM file is generated by eg getmyancestors python package needs to changed to place the FILE record in the correct place?

It is unfortunate that the docs for the Download Media addon does not include a sample Geni file… since it was designed for that dialect of GEDCOM.

The screen capture illustrating a media path in the original feature request is an invalid format for a URL.

And Gramps doesn’t validate URLs as media paths nor does it allow unvalidated Paths to be saved. So you cannot create test data easily.

I think I’ve almost solved it…

Above the field FILE there is a field FORM. This comes out of getmyancestors as ‘FORM URL’. This needs to be changed to ‘FORM jpg’. Then… it works! As long as there is no intervening TITL (or CONT, or probably anything else) field between FORM and FILE, in which case, insert a new line containing the text “2 FORM jpg” above the FILE line containing the jpg link, and then it works properly.

Oh, and that ?ctx=ArtCtxPublic after the .jpg needs to be deleted from the FILE lines of the .ged file too.

Not there is a Feature Request for Media URLs:

https://gramps-project.org/bugs/view.php?id=5248#c21069

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.