Overleg projecten:Best practices voor de archivering van sociale media in Vlaanderen en Brussel

Uit Cultureel Erfgoed Standaardentoolbox
Naar navigatie springen Naar zoeken springen

@Nastasia: Hier staat tekst

T1.1: Keuze van API's en tools voor captatie van individuele accounts

Dit bestaat uit een analyse en selectie van de verschillende tools.

Verkende tools:

Nog te verkennen:

Voorlopige vaststellingen

  • SquidWarc zou via het gebruik van lokale cookies in een folder van chrome moeten kunnen inloggen in Twitter, Facebook, etc. In mijn huidige omgeving (macOS) blijkt dit niet te lukken. Zie ook dit issue op GitHub
  • Browsertrix
    • biedt de mogelijkheid om een profiel aan te maken. je kan je eerst inloggen in verschillende sites en vervolgens dit profiel gebruiken om die sites waarvoor je moest inloggen te crawlen. lijkt te werken.
    • zou via de behaviors facebook, twitter, etc. moeten kunnen archiveren, maar ik merk bij facebook dat slechts de eerste x-aantal posts gearchiveerd werden. Mogelijk legt facebook een beperking op op het scrollen, maar het zou ook kunnen dat mijn internetverbining niet sterk genoeg is.
    • browsertrix blijft vaak hangen
  • brozzler
    • gaat geautomatiseerd door webpagina's en voert gedrag uit: afbeeldingen openen, video's afspelen
    • sinds kort (30/10/2020) is er een issue met facebook om in te loggen ==> gelukt nu!
    • het is noodzakelijk om in te loggen bij facebook, zelfs als je publieke pagina's archiveert omdat je anders een giga banner met 'maak een account aan' krijgt die niet meer weg wil.
    • lijkt stabieler dan browsertrix, dat eerder log is en snel uitvalt.
  • Webrecorder zou via de behaviors geautomatiseerd facebook moeten kunnen archiveren, maar de behaviors zijn nog niet geïmplementeerd omdat de ontwikkelaar geen tijd heeft. De autoscrolling scrolt niet naar beneden. Zou ook kunnen afhangen van mijn internetverbinding.
    • handig voor kleine hoeveelheden data, maar minder geschikt voor grote pagina's
    • na een tijd willen de posts ook niet meer laden.
    • maar het blijft een van de eenvoudigere manieren om dynamische websitecontent te archiveren.
  • voor facebookpagina's lijkt de download-functie van Facebook de eenvoudigste en volledigste manier om een account (pagina) te archiveren.
    • comments van derden komen wel niet mee
    • posts die gedeeld werden van derden komen eveneens niet mee
    • de lay-out van de originele facebookpagina is anders
    • ook zijn de URL's gewijzigd
    • en ben je likes en reacties kwijt
    • maar je hebt wel alle posts die gemaakt werden door de pagina en ook heb je alle foto's die opgeladen werden door de pagina
    • het lijkt ook mogelijk te zijn om facebook stories op deze manier mee te krijgen (niet getest)
    • de downloadfunctie geeft je HTML-pagina's, maar met behulp van warcit kan je ze omzetten naar een WARC-bestanden
    • je kan ook een JSON exporteren. daarin heb je wat meer metadata over de foto's.
    • inhoud van de map:
      • overzichtspagina met de comments die de pagina owner gepost heeft
      • events
      • gegevens over groepen die verbonden zijn aan deze pagina
      • jobs (geen idee wat dit is?)
      • iconen van likes en reacties
      • other page activity (geen idee wat dit is)
      • profielinformatie over de pagina
      • page settings
      • foto's en video's (op eerste zicht in originele grootte)
      • overzichtspagina van de posts
      • overzichtspagina van de profielinformatie
      • services (geen idee wat dit is)
      • settings
      • stories
  • facebook verandert voortdurend zijn code waardoor het ingewikkeld is om te archiveren.
    • Nu (30/10/2020) geeft facebook issues wanneer je een profiel maakt via Browsertrix (zie eerder) of als je geautomatiseerd wil inloggen via brozzler.
    • Bovendien wordt niet alles gecapteerd omdat facebook overal zijn logaritme voor gebruikt. Als je facebookposts aan het archiveren bent met een crawler, komen enkel de comments mee die facebook voor jou relevant vindt, maar niet alle comments.
  • warcworker geeft een issue wanneer je de ingebedde scripts gebruikt, maar lijkt ook niet te kunnen inloggen in een Facebookpagina.
  • Ultimate Facebook Scraper kan afbeeldingen downloaden en verzamelt gegevens in .txt-bestanden. De code moet aangepast worden aan de nieuwe layout van Facebook.
  • Twitter download:
    • als je je archief opvraagt, kan je het dertig dagen lang niet opvragen
    • je krijgt een zip-bestand met daarin o.m. index.html als overzichtspagina en ook verschillende mappen met foto's (duidelijk kleiner en gecomprimeerd dan origineel)
    • index.html heeft handige filterfunctie met bv. doorzoeken van tweets tussen een bepaalde periode
    • inhoud van index.html:
      • informatie over account: erg privacygevoelig (e-mailadres + e-mailadressen en telefoonnummers van contacten)
      • tweets / antwoorden / retweets: afbeeldingen kunnen niet vergroot worden & originele post + media is verdwenen bij retweets en antwoorden (enkel tekst). look&feel wel behouden
      • vind-ik-leuks: berichten met enkel tekst. media is verdwenen. ook datum + profielfoto en naam van degene die de tweets postte is verdwenen
      • privéberichten: alle berichten behouden maar geen naam erbij
      • veiligheid: wie werd geblokkeerd en genegeerd
      • personalisatie: de personalisatiegegevens die twitter van de gebruiker heeft (privacygevoelig?)
      • adverteerders: lijst van adverteerders die gebruiker gezien zou kunnen hebben
      • lijsten
      • momenten
    • https://help.twitter.com/nl/managing-your-account/accessing-your-twitter-data
  • instagram download is ook mogelijk. gebeurt via e-mailadres en wachtwoord (dus ook als je je account via facebookaanmelding gebruikt)
    • na een bepaalde tijd ontvang je een mail met locatie naar download
    • itt facebook en twitter heb je hier geen overzicht in html, maar allemaal losse json-bestanden
    • er zijn ook mappen photos, stories en videos. deze zijn geordend in een folder per datum. je krijgt geen instagramposts te zien, maar losse foto's en video's etc. ook de stories zijn geen geheel. je krijgt een mp4 of jpg per deel dat toegevoegd werd aan de story.
    • beschrijvingen van een post staan vermoedelijk in een json. er zijn verschillende jsons, o.a. wat je gezien hebt, wat je geliket hebt, comments die je geplaatst hebt. referentie naar de post gebeurt door een datum en naam van het account. niet eenvoudig te linken dus.
    • er is ook privacygevoelige informatie zoals account_history waarin onder meer je login geschiedenis staat, naam en e-mailadres van contacten, etc.
    • itt facebook en twitterdownload mss toch geen goede manier om archiveren.

Interessante informatie

T1.2: Opzetten van captatieworkflow en technische infrastructuur

Voorlopig voorstel workflow

!!!BELANGRIJK: tweestapsverificatie moet uitgeschakeld zijn wanneer het nodig is om in te loggen!!!

  1. organisatie maakt account om te archiveren op betreffend sociale media kanaal
    • waarom? bij het capteren wordt ook de profielfoto gecapteerd
    • eventueel andere privacy zaken kunnen in het archief terchtkomen
  2. indien stream niet publiek: account moet toegang krijgen tot sociale media stream (bv. fbgroep)
  3. keuze voor tool afhankelijk van use case
    • is enkel de inhoud belangrijk, bv. voor research --> tools die gegevens verzamelen in gestructureerde tekstformaten
    • is het belangrijk om in een mooie layout te tonen --> tools die geheel in WARC-file verzamelen en presenteerbaar maken
  4. validatie --> hoe? alvast bekijken in ReplayWeb.page of Webrecorder Player

Samenvoegen van WARC-bestanden met warcat: python3 -m warcat --output your-warc.warc.gz --force-read-gzip --gzip --progress concat your-folder-with-warc.gz-files/*

Handleidingen


Fase 3: Tools voor ontsluiting en onderzoek

Uit te checken:

Warclight

Gebaseerd op project blacklight. Discovery van webarchieven in WARC en ARC formaat.

Features:

  • faceted full-text search
  • record view

Vereisten

  • Ruby 2.6 < 3.0
  • Bundler < 2.2
  • Rails 5.1 < 6.2
  • Solr <9

Nadelen:

  • verouderde Ruby (ondertussen v3.2)
  • Verouderde Rails (ondertussen v7.0)
  • verouderde solr
  • Moeilijk op te zetten, onder meer door de verouderde packages
  • ook https://github.com/ukwa/webarchive-discovery lijkt een vereiste te zijn.
  • Documentatie is niet zo helder
  • Al lang geleden dat er nieuwe features toegevoegd geweest zijn. Lijken vooral gebruik te maken van bots die dependency updates doen.

Eigen ervaringen

  • het is moeilijk te installeren door de oude ruby versies
  • eerst heb ik rvm geïsntalleerd en daar dan ruby 2.7.2 en rails 6.0
  • daarmee kon ik warclight installeren
  • naat solr_wrapper opgezet werd, kwam er een crash die voorlopig nog niet opgelost geraakt
  • ook bleek dat webpack niet geïnstalleerd was, waardoor ik warclight niet kon runnen met rails s.
  • ik moest rails webpacker:install doen, maar dat ging ook niet , want eerst moest ik yarnnog installeren
  • na npm install -g yarn, kon ik dan toch webpack installeren via rails webpacker:install
  • helaas blijkt de solr server maar steeds te crashen, waardoor ik de applicatie niet kan wil runnen...
  • de solr server crasht omwille van een java probleem: Caused by: java.lang.ClassNotFoundException: solr.XSLTResponseWriter. issue ingegeven op GitHub, maar de repository van solr_wrapper lijkt niet meer opgevolgd te worden.

Solrwayback

https://github.com/netarchivesuite/solrwayback

Vereisten

  • Tomcat moet geïnstalleerd worden
  • Solr server moet geïnstalleerd worden

Voordelen

  • Er blijkt ook een compleet package te zijn waarin al solr, de warc-indexer en tomcat zitten. maakt het veel eenvoudiger om te installeren. Een nadeel aan dat package is dat je het dan wel de lay-out van het Deense Netarchive hebt. Als je dit voor productie wil uitrollen, zul je het toch van source moeten installeren en zelf wat custom aanpassingen doen.
  • bovenstaand package zou ook op Windows moeten werken, maar dat kan ik niet testen.
  • Het ziet er mooi en overzichtelijk uit, met veel statistieken en een goede search functie. Ook administratieve metadata, zoals de verschillende crawl dates van een domein, worden gevisualiseerd: https://github.com/netarchivesuite/solrwayback
  • Het wordt ook nog steeds opgevolgd. Binnenkort wordt er definitief overgegaan naar java11.
  • Amsab gebruikt Solrwayback, dus er is ook kennis van binnen de collegagroep.
  • als er op foto's tekst staat, lijkt het dat die tekst in een meta-veld staat (niet duidelijk of het zo uit twitter komt of dat solrwayback dit gedaan heeft)

Nadelen

  • Zoekt enkel op hoofddomein. Het is dus niet zo interessant voor sociale media, want daar is het hoofddomein twitter.com, facebook.com, etc. Lijkt dus vooral goed voor websites te werken, al is het ook een nadeel dat het niet op subdomein kan zoeken. Voor meemoo is dat bv. vervelend (bv. archief.meemoo.be, portaal.meemoo.be, nieuwsvandegrooteoorlog.meemoo.be hebben hetzelfde domein).
  • Als je op een zoekresultaat drukt, is er geen knop om terug te gaan naar de vorige pagina (of ik vind hem niet). Als je op de returnknop van de browser drukt, wordt de query opnieuw uitgevoerd en krijg je de resultaten in een andere volgorde terug te zien.

Vaststellingen

  • In lijn 184 van het script warc-indexer zit een fout &>> moet &> worden.
  • Voor de rest lijkt alles goed te werken.
  • de graphs beginnen altijd vanaf 1999 of 1998. niet echt interessant als je nog maar pas begonnen bent met crawlen.
  • de graphs werken vooral op domeinnaam. Bij sociale media is dat misschien minder interessant.

WACZ

WACZ is een package formaat voor WARC collecties. je kan een collectie maken voor 1 website (bv. de verschillende crawls) of voor verschillende websites die een collectie vormen (bv. rond een thema). Het leuke aan WACZ is dat er ook extra gegevens bewaard worden: de tekst van de websites, zodat die full-text doorzoekbaar is, en de pagina's van de website, zodat je niet langer op basis van URL, maar op basis van titels van pagina's kunt zoeken. Het is met andere woorden een mappenstructuur met daarin o.a. de WARC-files, een index-bestand, een jsonl bestand met de tekst een jsonl bestand met de pagina's. Meer info over WACZ: https://specs.webrecorder.net/wacz/1.1.1/. Het overzicht van de mappenstructuur vind je hier: https://specs.webrecorder.net/wacz/1.1.1/#directory-layout

WACZ kan je openen in replayweb.page, dus je hoeft zelf geen infrastructuur te hosten. WACZ kunnen gemaakt worden via py-wacz of rechtstreeks via archiveweb.page. https://github.com/webrecorder/py-wacz

py-wacz werd op volgende manier gebruikt: wacz -o [outputfile] -t --detect-pages [path-naar-WARC-file(s)]

uitleg:

  • wacz: het commando
  • -o [output-file]: staat voor outputfile, erachter plaats je het path voor de nieuw gecreëerde wacz, bv. myfile.wacz
  • -t: extraheer tekst
  • --detect-pages: zoek naar pagina's en sla ze op in een pages.jsonl

Nog testen

  • Archives unleashed notebooks
  • Archives unleashed toolbox