Stamboom Forum » FS: Vragenrubriek m.b.t. index pagina's Family Search \\\"search record pilot\\\" 
Spring naar de meest recente bijdrage op deze pagina
XMLs van familysearch met URLs van images
Door de URLs te bekijken die familysearch stuurt heb ik ontdekt hoe je afbeeldingen zou kunnen downloaden.
Dit is de URL voor de lijst van provincies:
http://pilot.familysearch.org/recordsearch/v1/collection/fs:1831469/waypoint/0?disableNoCache=true&start=0&rows=2147483647&cb=1280121765806&noHttpError=true
Het resultaat is een XML-bestand:
<?xml version="1.0" ?>
<recordsearch xmlns:ns3="http://api.familysearch.org/authorities/v1" xmlns="http://api.familysearch.org/recordsearch/v1" xmlns:fsapi-v1="http://api.familysearch.org/v1" statusMessage="OK" statusCode="200">
<waypoint start="0" rows="2147483647" leaf="false" id="0" childCount="5">
<name><unspecified></name>
<childrenLevel>
<name>Province</name>
<description>Select province</description>
</childrenLevel>
<children>
<waypoint row="0" leaf="false" id="5448691" childCount="160">
<name>Noord-Holland</name>
</waypoint>
<waypoint row="1" leaf="false" id="5448692" childCount="59">
<name>Overijssel</name>
</waypoint>
<waypoint row="2" leaf="false" id="5448693" childCount="87">
<name>Utrecht</name>
</waypoint>
<waypoint row="3" leaf="false" id="5448694" childCount="120">
<name>Zeeland</name>
</waypoint>
<waypoint row="4" leaf="false" id="5448695" childCount="3">
<name>Zuid-Holland</name>
</waypoint>
</children>
</waypoint>
</recordsearch>
Dit is de URL voor alle plaatsen van Noord-Holland:
http://pilot.familysearch.org/recordsearch/v1/collection/fs:1831469/waypoint/5448691?start=0&rows=2147483647&noHttpError=true&cb=1280120457517&disableNoCache=true
Overijssel:
http://pilot.familysearch.org/recordsearch/v1/collection/fs:1831469/waypoint/5448692?disableNoCache=true&start=0&rows=2147483647&cb=1280121926868&noHttpError=true
Utrecht:
http://pilot.familysearch.org/recordsearch/v1/collection/fs:1831469/waypoint/5448693?start=0&rows=2147483647&noHttpError=true&cb=1280121553205&disableNoCache=true
Zeeland:
http://pilot.familysearch.org/recordsearch/v1/collection/fs:1831469/waypoint/5448694?start=0&rows=2147483647&noHttpError=true&cb=1280121586720&disableNoCache=true
Zuid-Holland:
http://pilot.familysearch.org/recordsearch/v1/collection/fs:1831469/waypoint/5448695?start=0&rows=2147483647&noHttpError=true&cb=1280121601118&disableNoCache=true
Duidelijk is dat het ID uit de eerste XML de WAYPOINT uit de URL voor de tweede is.
Ik neem als voorbeeld Noord-Holland. Dit is een deel van de inhoud van de XML met alle plaatsen van Noord-Holland:
<recordsearch statusMessage="OK" statusCode="200">
<waypoint start="0" rows="2147483647" leaf="false" id="5448691" childCount="160">
<name>Noord-Holland</name>
<level>
<name>Province</name>
<description>Select province</description>
</level>
<childrenLevel>
<name>Municipality</name>
<description>Select municipality</description>
</childrenLevel>
<children>
...
<waypoint row="43" leaf="false" id="5449643" childCount="1">
<name>Groet</name>
</waypoint>
<waypoint row="44" leaf="false" id="5449646" childCount="9">
<name>Grootebroek</name>
</waypoint>
<waypoint row="45" leaf="false" id="5449649" childCount="1">
<name>Grosthuizen</name>
</waypoint>
...
</children>
</waypoint>
</recordsearch>
Als voorbeeld is dit de URL voor Grootebroek:
http://pilot.familysearch.org/recordsearch/v1/collection/fs:1831469/waypoint/5449646?start=0&rows=2147483647&noHttpError=true&cb=1280120488315&disableNoCache=true
De ID van Grootebroek uit de XML met plaatsnamen is 5449646. Die zie je weer in de URL voor de bronnen in Grootebroek. De rest van de URL lijkt bij alle plaatsen steeds hetzelfde.
Dit is de inhoud van het bestand voor Grootebroek:
<?xml version="1.0" ?>
<recordsearch xmlns:ns3="http://api.familysearch.org/authorities/v1" xmlns="http://api.familysearch.org/recordsearch/v1" xmlns:fsapi-v1="http://api.familysearch.org/v1" statusMessage="OK" statusCode="200">
<waypoint start="0" rows="2147483647" leaf="false" id="5449646" childCount="9">
<name>Grootebroek</name>
<level>
<name>Municipality</name>
<description>Select municipality</description>
</level>
<childrenLevel>
<name>Record Type and Years</name>
<description>Select record type and years</description>
</childrenLevel>
<crumbs>
<waypoint leaf="false" id="5448691" childCount="160">
<name>Noord-Holland</name>
<level>
<name>Province</name>
<description>Select province</description>
</level>
</waypoint>
</crumbs>
<children>
<waypoint row="0" leaf="true" id="5453191" childCount="487">
<name>Geboorten 1841-1867</name>
</waypoint>
<waypoint row="1" leaf="true" id="5453192" childCount="447">
<name>Geboorten 1843-1867</name>
</waypoint>
<waypoint row="2" leaf="true" id="5453193" childCount="334">
<name>Geboorten 1868-1882</name>
</waypoint>
<waypoint row="3" leaf="true" id="5453194" childCount="320">
<name>Huwelijken 1811-1850</name>
</waypoint>
<waypoint row="4" leaf="true" id="5453195" childCount="361">
<name>Huwelijken 1843-1882</name>
</waypoint>
<waypoint row="5" leaf="true" id="5453196" childCount="334">
<name>Overlijden 1811-1834</name>
</waypoint>
<waypoint row="6" leaf="true" id="5453197" childCount="435">
<name>Overlijden 1835-1864</name>
</waypoint>
<waypoint row="7" leaf="true" id="5453198" childCount="622">
<name>Overlijden 1843-1882</name>
</waypoint>
<waypoint row="8" leaf="true" id="5453199" childCount="554">
<name>Tienjarige tafels 1811-1840 Geboorten 1811-1840</name>
</waypoint>
</children>
</waypoint>
</recordsearch>
Als ik dan in Grootebroek kies voor de "Tienjarige tafels 1811-1840 Geboorten 1811-1840", is dit de URL:
http://pilot.familysearch.org/recordsearch/v1/collection/fs:1831469/waypoint/5453199?start=0&rows=2147483647&noHttpError=true&cb=1280120631857&disableNoCache=true
Opnieuw zie je dat de ID 5453199 voor de tafels uit het bestand voor Grootebroek de WAYPOINT uit de URL voor tafels is.
Dit is een stukje uit de XML voor de tafels:
<?xml version="1.0" ?>
<recordsearch xmlns:ns3="http://api.familysearch.org/authorities/v1" xmlns="http://api.familysearch.org/recordsearch/v1" xmlns:fsapi-v1="http://api.familysearch.org/v1" statusMessage="OK" statusCode="200">
<waypoint start="0" rows="2147483647" leaf="true" id="5453199" childCount="554">
<name>Tienjarige tafels 1811-1840 Geboorten 1811-1840</name>
<level>
<name>Record Type and Years</name>
<description>Select record type and years</description>
</level>
<crumbs>
<waypoint leaf="false" id="5448691" childCount="160">
<name>Noord-Holland</name>
<level>
<name>Province</name>
<description>Select province</description>
</level>
</waypoint>
<waypoint leaf="false" id="5449646" childCount="9">
<name>Grootebroek</name>
<level>
<name>Municipality</name>
<description>Select municipality</description>
</level>
</waypoint>
</crumbs>
<waypointImages>
...
<waypointImage row="21" provenanceOrder="21" current="false">
<image href="https://das.familysearch.org/das/v1/dgs:004537506.004537506_00022/$dist" external="false"/>
</waypointImage>
<waypointImage row="22" provenanceOrder="22" current="false">
<image href="https://das.familysearch.org/das/v1/dgs:004537506.004537506_00023/$dist" external="false"/>
</waypointImage>
<waypointImage row="23" provenanceOrder="23" current="false">
<image href="https://das.familysearch.org/das/v1/dgs:004537506.004537506_00024/$dist" external="false"/>
</waypointImage>
...
</waypointImages>
</waypoint>
</recordsearch>
De <image>-tags bevatten een href-waarde en dat is precies de image die wordt opgehaald.
Een afbeelding met de voorkant van een archiefdeel (veel zwart, maakt een kleiner bestand) is 4000 x 2000 pixels en ruim 200 KB. Een afbeelding uit het midden van het boek met geschreven tekst op een witte pagina is 4600 x 4000 pixels en ruimt 2 MB.
Je kunt met een klein scriptje dus alle bestanden van een plaats downloaden. Je zou zelfs alle images kunnen downloaden als je wil. De tienjarige tafels van Grootebroek zijn echter al bijna 1 GB. En als ze merken dat hun images massaal gedownload worden, zouden ze de structuur kunnen veranderen. (Hoewel, ik neem aan dat ze sowieso al populair zijn, dus er wordt al veel gedownload.)
Anyway, ik denk dat een paar van ons dit wel leuk zou vinden om er eens mee te testen. Het zou het indexeren een stuk sneller maken, want de site van familysearch is regelmatig erg traag...
Succes,
Jerry
Jerry van Kooten | 26 jul 2010 | 07:51
XMLs van familysearch met URLs van images
Ik ben bang dat het verhaal hier voor de meeste onder ons abacadabra is, ikzelf begrijp wel wat je bedoelt maar heb er totaal geen kaas van gegeten een werkend script te maken.
Als er een script bestaat wil ik best meewerken om e.e.a. uit te proberen en kijken of het inderdaad mogelijk is om alle afbeeldingen van een plaats in 1 keer te downloaden.
M.vr.gr.
Leo Terlouw
Leo Terlouw | 26 jul 2010 | 18:09
XMLs van familysearch met URLs van images
Het downloaden van een reeks bestanden met volgnummer kan gemakkelijk met cURL. Je moet wel de naam van de eerste afbeelding van de reeks weten, en ook het aantal afbeeldingen in die reeks. Dit kun je bepalen op de manier die Jerry aangeeft, of je kunt de naam bepalen op de manier die door FamilySearch zelf wordt aangegeven (m.b.v. Firebug). (Met dank aan Jo Pol voor de link.) Ik ben hiermee begonnen, omdat ik helaas heb gemerkt dat bronnen vaak weer gauw van internet verdwijnen, en omdat mijn onderzoek zich in een relatief klein gebied bevindt, dus is een vrij groot deel van de akten "nuttig" voor mij.
cURL roep je als volgt aan vanaf de command line:
curl "https://das.familysearch.org/das/v1/dgs:004572322.004572322_[00001-00542]/%24dist" -o wsl_o18691882_#1.jpg
Opmerkingen:
- Het deel [00001-00542] geeft de reeks aan. In deze reeks, overlijdens Weerselo 1869-1882, bevinden zich 542 bestanden.
- %24 is de URL encoding van het dollarteken. Dit zorgt voor problemen op de command line. Het resultaat is hetzelfde.
- De -o parameter geeft aan hoe je het bestand wilt opslaan. '#1' is een wildcard om hier het nummer uit de reeks, die je in de URL hebt opgegeven, mee te vervangen.
- Roep cURL vanuit een nieuwe directory aan. Anders krijg je duizenden bestanden in dezelfde directory, wat niet prettig werkt, en waardoor je het overzicht kwijtraakt.
Het resultaat is een serie bestanden met de namen wsl_o18691882_00001.jpg t/m wsl_o18691882_00542.jpg.
Zorg wel voor genoeg ruimte op de harde schijf, aangezien de afbeeldingen zelf ook groot zijn. Je kunt op deze manier vele GB's aan bestanden krijgen. Voor wat betreft "toestemming" van FamilySearch: er hebben zich ongetwijfeld mensen met kennis van zaken met deze website beziggehouden. Dat is ook wel nodig om terabytes aan data te publiceren op het internet! Aangezien zij zelf bekend maken hoe je achter de bestandsnaam kunnen komen, werken ze daar zelfs actief aan mee.
Een nadeel is wel dat soms de download om onverklaarbare redenen wordt afgebroken. Dan blijf je met halve bestanden zitten. Ik probeer een scriptje te maken om dit te detecteren (door een HTTP HEAD request te sturen, en de Content-Length header te vergelijken met de bestandsgrootte), en waarmee automatisch de rest wordt gedownload. Misschien kunnen incomplete downloads zelf met cURL worden herkend :) Zo goed ken ik het nog niet. (Ik probeerde of corrupte bestanden gemakkelijk met ImageMagick kunnen worden gedetecteerd, maar kon hier nog niet wijs uit worden.)
Frank
Frank Steggink | 26 jul 2010 | 20:24
XMLs van familysearch met URLs van images
Ze leggen zelf uit hoe je met firebug een directe link naar een afbeelding kunt achterhalen. Andere browsers met een goede debugger zullen het ook wel kunnen. Voor mijn verhaal er omheen http://fam-pol.wikispaces.com/familysearch
Wie de link-truuk voor andere browsers wil uitleggen, kan dat aan mijn tips toevoegen. Aanmelden niet nodig maar beperk je a.j.b. tot de familysearch pagina's van deze wiki, anders ga ik weer aanmelden afdwingen.
Alles van een plaats downloaden lijkt me niet te doen. Tientallen bestanden per plaats met honderden afbeelding van een paar MB kost vele GBs. Maar de zwarte pagina's herkennen middels een script zou al een fantastiche hulp zijn bij het indexeren. Een goede gewoonte in dat soort download script is overigens een pauze van een paar seconden tussen ieder plaatje dat je ophaalt. Dat voorkomt overbelasting van de servers. Duurt even, maar als je de nummers van de zwarte pagina's hier publiceert, hoeven ze maar een keer te draaien en hebben we er allemaal wat aan.
Misschien is het een tip voor de makers van familysearch om de grootte van de afbeeldingen aan de xml files toe te voegen. Maar in hun forums zie ik door de bomen het bos niet zo: http://forums.familysearch.org/
Jo Pol | 26 jul 2010 | 20:53
XMLs van familysearch met URLs van images
Jo,
De informatie in de XML bestanden bevat helaas geen informatie over de bestandsgrootte en de grootte (in pixels) van de afbeelding zelf.
Ook bevat een HTTP HEAD request niet de gewenste informatie. Deze zou normaalgesproken een Content-length header moeten bevatten, maar die is niet aanwezig. Een HEAD request zorgt ervoor dat alleen de HTTP headers worden teruggestuurd, maar niet het hele bestand. Daarmee wordt de server minder belast.
Met een HTTP GET request wordt het volledige bestand gedownload. De response hiervan bevat ook niet de Content-length header, maar wel een Stream-length header. Dit is geen standaard HTTP header. In dit opzicht is de HTTP implementatie brak te noemen, aangezien met een HEAD request geacht wordt dat exact dezelfde headers worden teruggegeven als met een GET request! V.w.b. het aanvullen van de incomplete bestanden zal ik dus wat anders moeten verzinnen.
cURL bevat trouwens geen optie om een pauze in te lassen tussen verschillende downloads. Wel is er een optie om de te gebruiken transfer rate in te perken (--limit-rate).
Frank
Frank Steggink | 26 jul 2010 | 21:37
XMLs van familysearch met URLs van images
helaas, kaften vinden aan de hand van de grootte, te mooi om waar te zijn. Sommige kaften zijn gemarmerd en daarom voor een computer net zo groot als andere pagina's.Jo Pol | 26 jul 2010 | 21:42
XMLs van familysearch met URLs van images
Ik was zelf voornamelijk in de bestandsgrootte geïnteresseerd om afgebroken / corrupte afbeeldingen te vervangen door nieuwe. Niet zozeer om afwijkende afbeeldingen (niet alleen kaften, maar ook aanduidingen van de filmrol, e.d.) te vinden.Frank Steggink | 26 jul 2010 | 21:47
XMLs van familysearch met URLs van images
Voor wie geïnteresseerd is, mijn script werkt nu (geschreven in Python). De laatste 2 bytes van een geldig JPEG bestand moeten 0xFF, 0xD9 zijn. Door hierop te controleren, kon ik de incomplete bestanden weer downloaden. Er is wel een 1/65536 kans dat een corrupt bestand ook op deze bytes eindigt, maar dat neem ik maar voor lief :)
Frank
Frank Steggink | 26 jul 2010 | 22:17
XMLs van familysearch met URLs van images
> omdat ik helaas heb gemerkt dat bronnen vaak weer gauw van internet verdwijnen
Omdat ze zelf aangeven hoe je de links van images kunt krijgen (en meer andere help paginas) gok ik dat die wel redelijk stabiel zijn, zeker de nummers binnen de links. De xml files bewaren brengt je dus al een heel eind als back-up voor noodgevallen.
De indexen die we hier zo druk verzamelen zouden we eventueel ook kunnen uitbreiden met de directe links, maar dat is misschien te ingewikkeld.
Jo Pol | 26 jul 2010 | 22:27
XMLs van familysearch met URLs van images
Leuk om te zien dat meer mensen in dezelfde richting denken. ;)
Ik heb de headers nog niet bekeken, maar mijn browser weet bij het begin van de afbeelding wel het formaat in pixels. Zegt weinig over de grootte van het bestand, maar toch.
Ik zat eerst te denken aan een script dat de XMLs leest en alleen de links laat zien, dus de directe links naar de afbeeldingen. Dat zou voor veel mensen al een vooruitgang zijn. Voor mij al, want ik vind die flash-applicatie van ze niet handig en zeker niet mooi. Dan zou je met een download manager alle bestanden van een plaats kunnen downloaden (veel ruimte nodig, dat wel), maar dan instellen dat je max. 1 tegelijk wil downloaden, om serverload te beperken.
Maar ik denk ook aan een script dat van alle afbeeldingen een verkleining van zeg 300 pixels opslaat. Dan heb je in ieder geval afbeeldingen die groot genoeg zijn om snel te kunnen zien of het een boek-kaft is of een index of zo, en klein genoeg om lekker snel te kunnen bladeren. De images kunnen dan een link zijn naar de grote afbeelding natuurlijk. Maar dat zou het indexeren van alle bestanden wel heel snel kunnen maken.
Ik ben eerst nog even bezig met een scriptje dat de XMLs leest en weergeeft in een overzichtelijkere manier dan familysearch. (Ik wil de XML niet opslaan, de XML wordt dan live gelezen, dus als er iets wordt toegevoegd wordt dat automatisch meegenomen.) Daarna wil ik een test doen met een script dat mijn tweede idee uitvoert, kijken hoe snel het gaat (moet ook daar om serverload denken) en hoeveel ruimte het zou kosten. Beginnen met een heel kleine gemeente of zo... ;)
Andere ideeën?
Groeten,
Jerry
Jerry van Kooten | 26 jul 2010 | 23:12
XMLs van familysearch met URLs van images
Ik ben geïnteresseerd in het script. Bestaat de mogelijkheid het ergens te downloaden?Erik Schmidt - de Smidt | 26 jul 2010 | 23:41
XMLs van familysearch met URLs van images
Het aantal op te slaan GB's is in mijn geval niet zo'n probleem en kan eventueel altijd opgelost worden door een goede resizer te gebruiken. Een goede en gratis resizer is FastStone Photo Resizer, je kunt hiermee niet alleen met behoud van kwaliteit grote aantallen afbeeldingen in 1 handeling verkleinen met een zelf aan te geven percentage maar je kunt dit programma ook gebruiken om - ook weer - in grote aantallen de afbeeldingen automatisch te hernummeren naar bijvoorbeeld een jaartal met als toevoeging een paginanummer telkens met een oplopend nummer, bijvoorbeeld beginnend met 1883_01 worden alle aangeboden afbeeldingen met 1 nummer verhoogd tot aan het einde van het aantal aangeboden afbeeldingen.
Dus bij 23 afbeeldingen krijg je dan 1883_01, 1883_02, 1883_03.... t/m 1883_23.
Hierbij de link om FastStone te downloaden http://www.faststone.org/FSResizerDetail.htm
M.vr.gr.
Leo Terlouw
Leo Terlouw | 27 jul 2010 | 08:28
XMLs van familysearch met URLs van images
Ik wacht ook met spanning op het thumnail script. Qua interface vind ik het zoomgebeuren van familysearch wel mooi. Maar daarboven had ik liever broodkruimels in de vorm van comboboxen* daaronder een scrollende regel met thumbnails. Een schets:
eu/nl [v] gelderland [v] elburg [v] geboortes [v] 1867 [v]
[<] [#] [#] [#] [#] [#] [#] [#] [#] [#] [#] [#] [#] [#] [#] [#] [#] [#] [>]
Zou in een web-pagina met javascript moeten kunnen. Of met xslt's en veel (kleine) frames. Het zou mooi zijn als het indexeerwerk van hier ook verwerkt zou kunnen worden.
*combobox: een veld wat je kunt open klappen om te bladeren, maar waarin je ook kunt typen om sneller bij je keuze te komen.
Jo Pol | 27 jul 2010 | 09:01
XMLs van familysearch met URLs van images
Op zoek naar thumbnails ben ik eens gaan rommelen met de directe links en vond dit:
https://das.familysearch.org/das/rest.v2.nodeLocator.streamName.html
kennelijk zijn er alternatieven voor de $dist staart uit de directe links, maar ik kan niet vinden welke. Misschien weten andere specialisten er wel raad mee.
Jo Pol | 27 jul 2010 | 13:32
XMLs van familysearch met URLs van images
Ik heb een scriptje gemaakt dat de XMLs van FamilySearch leest en na kiezen van de provincie, plaats en bron je de lijst geeft van alle afbeeldingen:
http://familie.jvkooten.info/fs/
Alle URLs van afbeeldingen openen in een nieuw venster. Je kunt deze lijst dus gebruiken om alle afbeeldingen van een bron te downloaden.
Volgende plan is om de URLs van de afbeeldingen in een database te zetten (ook op mijn website, dus als het klaar is door iedereen te raadplegen). Daar kan ik dan natuurlijk extra gegevens bij zetten, zoals de paginanummers die in dit subforum zijn genoemd. En dan is het simpel om de mogelijkheid te bieden om bezoekers omschrijvingen bij afbeeldingen te laten toevoegen...
Ik heb ook een resize-script gemaakt waarmee ik ook thumbnails in de database kan zetten. Ik wil daar alleen een scriptje omheen bouwen zodat ik niet in 1 x alle afbeeldingen hoef te lezen en thumbnails van te maken, maar dat ik dat per bron doe, en dan nog steeds een klein aantal afbeeldingen tegelijk. Ook mogelijk: het script gaat thumbnails zodra een bezoeker de bron opent.
Ik ga eerst een kijken naar de mogelijkheden van die $dist die Jo noemt - klinkt interesant!
Jerry
Jerry van Kooten | 27 jul 2010 | 16:00
Wilt u op de hoogte gehouden van nieuwe reacties bij dit onderwerp ? Ja!
Spring naar eerste bijdrage op deze pagina
Wilt u ook een digitaal familiearchief maken en samen met de familie in een
besloten omgeving werken aan verrijking van de gedocumenteerde familiegeschiedenis?
Dan is Familie Archivaris iets voor u! U kunt Familie Archivaris nu 3 werken gratis proberen!
Wie (onder)zoekt wie? overeenkomsten
In bovenstaande tekst is gekeken naar familienamen die ook voorkomen in het Wie (onder)zoekt wie? register. De volgende overeenkomsten zijn gevonden:
- Alles
- Anders
- Content
- Dat
- Frank
- Groet
- Holland
- Kooten, van
- Niet
- Noord
- Noord, van
- Overijssel
- Pol
- Roep
- Schmidt
- Smidt
- Smidt, de
- Steggink
- Terlouw
- Zeeland
Geef ook aan welke familienamen u (onder)zoekt!
Plaats een reactie
Om reacties (en nieuwe onderwerpen) te plaatsen op het stamboomforum dient u eerst in te loggen.
Heeft u zich nog niet eenmalig geregistreerd? Registratie is gratis en snel!

