Publicatie:Workflows voor de captatie van individuele sociale media accounts

Uit Meemoo Kennisbank
Naar navigatie springen Naar zoeken springen


Samenvatting

Dit is de eerste deliverable (D1) van het project Best practices voor de archivering van sociale media in Vlaanderen en Brussel van KADOC en meemoo met steun van de Vlaamse Overheid. Het is het resultaat van WP1: voorbereiding van de captatie van individuele accounts waarin verschillende tools en API's getest werden voor de captatie van sociale media accounts.

In dit document vind je een aantal workflows om sociale media te archiveren. Let op! De code van socialemediaplatformen wijzigen regelmatig. Het is daarom mogelijk dat op een bepaald moment bepaalde workflows niet meer werken.


Referentie
Titel Workflows voor de captatie van individuele sociale media accounts (Voorkeurstitel)

D1: Workflows voor de captatie van individuele accounts (Alternatieve titel)

Locatie
Uitgever
Jaar van uitgave 2021
Rechten CC-BY-SA
Persistent ID


Auteurs

Nastasia Vanderperren en Lode Scheers m.m.v. Rony Vissers (meemoo)

Stap 1: Creëer een account

Het is aangeraden om een institutioneel account aan te maken dat je enkel zal gebruiken om sociale media te archiveren. Dit voorkomt dat persoonlijke informatie, bijvoorbeeld notificaties, je naam en profielfoto, en namen van vrienden die het account volgen, terecht komt in het webarchief.

Persoonlijke informatie in het webarchief

Zorg ook dat tweestapsauthenticatie of two factor authentication uitgeschakeld is, zodat je met archiveringstools kan inloggen in het account.

Stap 2: Capteer het sociale media account

Er zijn vier strategieën om individuele sociale media accounts te archiveren:

  1. Zelfarchivering: Deze workflows maken gebruik van de exportfuncties binnen de socialemediaplatformen. Dit is de meest eenvoudige manier om alle content van het account te bewaren. Gedeelde berichten en opmerkingen van derden worden hierbij echter niet geëxporteerd en zullen ontbreken in het archief. Exportfuncties resulteren meestal in een ZIP-bestand met HTML-bestanden. Dit kan enkel uitgevoerd worden door de eigenaar van het account. De inhoud van het ZIP-bestand kan omgezet worden naar het WARC-formaat.
  2. Crawling met behoud look-and-feel: Deze workflows maken gebruik van externe tools om alle content van een account te archiveren, inclusief berichten en opmerkingen van derden. In veel gevallen ontbreekt er echter content omdat het socialemediaplatform opmerkingen of berichten verbergt die het beoordeelt als irrelevant of doordat de pagina van het socialemediaplatform niet meer wil laden. Het webarchief wordt bewaard in een WARC-bestand.
  3. Data scraping: Het afhalen van content van socialemediaplatformen in de vorm van gestructureerde data. Deze tools zijn stabieler en slagen er beter in om alle tekstuele content van een socialemediaplatform af te halen. De data wordt doorgaans bewaard in een JSON-bestand.
  4. Download: Deze strategie bestaat uit het downloaden van video’s en afbeeldingen van het socialemediaplatform. Opmerkingen en captions worden bewaard in de vorm van gestructureerde data of in een tekstbestand.

Strategie 2 - Crawling met behoud van look-and-feel is de meest foutgevoelige strategie. Het kan daarom interessant zijn om deze strategie aan te vullen met Strategie 3 - Data scraping. Het is ook veel eenvoudiger om te zoeken in de gestructureerde tekstbestanden dan in een WARC-bestand. De gestructureerde tekst kan je als een index op het webarchief gebruiken. Bij een WARC-bestand moet je daarentegen meestal eindeloos scrollen om het juiste bericht te vinden.

Strategie 1: zelfarchivering

Zelfarchivering kan enkel uitgevoerd worden door de archiefvormer en wordt uitgelegd in D2 Handleidingen voor zelfarchivering van individuele accounts. Als je als archiefinstelling zo’n zelfgearchiveerd webarchief ontvangt, gebruik dan de tool warcit om van het webarchief een WARC-bestand te maken. Om warcit te gebruiken, heb je Python 3 nodig.

  • installeer warcit: pip3 install warcit
  • decomprimeer het webarchief indien het nog een zipbestand is.
  • zoek de basis-URL van het sociale media account. Dit is https://www.facebook.com/, https://twitter.com/ of https://www.instagram.com/ met de naam van het account achter de ‘/’. Enkele voorbeelden:
    • de basis-URL voor de Facebook-pagina van meemoo is: https://www.facebook.com/meemoo.be
    • de basis-URL voor het Twitter-account van meemoo is: https://twitter.com/meemoo_be
    • de basis-URL voor het Instagram-account van het Vlaams Parlement is: https://www.instagram.com/vlaparl
  • gebruik het commando warcit basis_URL/ map_met_webarchief om het webarchief om te zetten naar een WARC-bestand. Verander basis_URL in de basis-URL en map_met_webarchief naar het pad van het webarchief. Stel dat het gaat om het Twitter-account van Nastasia waarvan de gedecomprimeerde ZIP op de Desktop staat, dan is het commando:
    • Voor Windows: warcit https://twitter.com/nvanderperren/ c:\Users\(username)\Desktop\nastasia-twitter (verander ‘(username)’ in je gebruikersnaam)
    • Voor macOS: warcit https://www.twitter.com/nvanderperren/ ~/Desktop/nastasia-twitter

Warcit commando.png

  • Het bestand kan nu geopend worden in een WARC-player, zoals ReplayWeb.page of pywb (zie Stap 4).

Zelfarchivering warc.png

Strategie 2: crawling met behoud van look-and-feel

Voor het crawlen met behoud van look & feel zijn er twee opties beschikbaar:

  1. Archiveweb.page;
  2. snscrape en Browsertrix.

Deze opties verschillen onderling op het vlak van o.a. moeilijkheidsgraad, vereisten, socialemediaplatformen waarvoor ze geschikt zijn, beperkingen en workflow.

1. ArchiveWeb.page

ArchiveWeb.page is de opvolger van Webrecorder. Het is een Chrome extensie waarmee je via de browser websites en sociale media accounts kan archiveren.

Moeilijkheid

Geen

Vereisten

  • een account voor het socialemediaplatform
  • Chrome als browser

Geschikt voor:

  • Facebook
  • Twitter
  • Instagram

Outputformaat

Beperkingen

  • socialemediaplatformen (vooral Facebook) bepalen wat voor jouw account relevant is, waardoor niet alle comments zichtbaar zijn. Wil je alles archiveren, dan zul je de posts één voor één moeten openklikken.
  • Facebook schermt bepaalde elementen, zoals het openklikken van afbeeldingen; deze functionaliteit ontbreekt bijgevolg in het webarchief.

Workflow

Sociale media accounts archiveren met ArchiveWeb.page

2. Snscrape en browsertrix

Snscrape is software waarmee de URL van iedere resource (post, video, afbeelding) op een socialemediaplatform opgehaald kan worden om ze op te slaan in een tekstbestand.

Browsertrix is een webcrawler die via een lijst van URL’s webpagina’s kan archiveren. De tool is voornamelijk geschikt voor het capteren van dynamische websites of webpagina’s waarvoor je je moet inloggen, zoals sociale media.

Moeilijkheid

Voeling hebben met de command line

Vereisten

Geschikt voor:

  • Twitter: publiek account en hashtag
  • Instagram: publiek account en hashtag

Beperkingen:

  • Enkel geschikt voor publieke accounts
  • Facebook blokkeert deze tool; de ontwikkelaars zoeken nog naar een oplossing.

Outputformaat

  • WARC

Workflow

Individuele sociale media posts archiveren met snscrape en browsertrix

Strategie 3: data scraping

snscrape en facebook-scraper werken echter niet meer en Twarc vereist betaling/goedkeuring om de API van X/Twitter te gebruiken waardoor het effectie onbruikbaar is geworden.

Voor de data scraping zijn er verschillende opties beschikbaar:

  1. snscrape;
  2. facebook-scraper;
  3. Twarc.

Zij verschillen onderling op het vlak van o.a. moeilijkheidsgraad, vereisten, socialemediaplatformen waarvoor je geschikt zijn, beperkingen en workflow.

1. Snscrape

Snscrape is open source software om de tekstuele inhoud van sociale media binnen te halen in een gestructureerd tekstformaat.

Moeilijkheid

Gebruik van de command line

Vereisten

Geschikt voor:

  • Twitter: publiek account en hashtag
  • Instagram: publiek account en hashtag

Beperkingen:

  • Enkel geschikt voor publieke accounts;
  • Enkel tekstuele content wordt opgehaald, geen afbeeldingen of andere media.

Outputformaat

Workflow

Sociale media accounts als gestructureerde tekst opslaan met snscrape

2. Facebook-scraper

Facebook-scraper is open source software om de tekstuele inhoud van facebook posts binnen te halen in een gestructureerd tekstformaat.

Moeilijkheid

Gebruik van de command line

Vereisten

Geschikt voor:

  • Facebook: zowel publieke als private groepen, pagina's en persoonlijke accounts

Beperkingen:

  • Moeilijk om volledige accounts te scrapen
  • Enkel tekstuele content wordt opgehaald, geen afbeeldingen of andere media

Outputformaat

Workflow

Facebookaccounts als gestructureerde tekst opslaan via Facebook-scraper

3. Twarc

Twarc is een open source tool en Python bibliotheek die ontwikkeld werd in het kader van het project Documenting The Now. De tool maakt het mogelijk om via de Twitter API, tweets en trends te archiveren net zoals verrijkte twitter-data te converteren naar gestripte data voor publicatie.

Moeilijkheid?

Gebruik van de command line

Vereisten

Geschikt voor:

  • Tweets archiveren
  • Twitter-profielen archiveren
  • Verrijken en strippen van Twitter-data

Beperkingen:

  • Onderhevig aan de Twitter API-regels.

Outputformaat

Workflow

Twitter archiveren met Twarc

Strategie 4: Download

Ook voor de download zijn er verschillende opties beschikbaar:

  1. Instaloader
  2. Youtube-dl
  3. Tartube
  4. Youtube-comment-downloader

Deze opties verschillen onderling op het vlak van o.a. moeilijkheidsgraad, vereisten, socialemediaplatformen waarvoor je geschikt zijn, outputformaat, beperkingen en workflow.

1. Instaloader

Instaloader wordt gebruikt om content van Instagram te archiveren, zoals onder andere privéprofielen, hashtags, gebruikersverhalen, feeds en opgeslagen media, reacties, geotags en bijschriften van elk bericht.

Moeilijkheid

Gebruik van de command line

Vereisten

Geschikt voor:

  • Downloaden van publieke en private profielen, hashtags, gebruikersverhalen, feeds en opgeslagen media.
  • Downloaden van reacties, geotags en bijschriften van elk bericht.

Beperkingen:

  • Geen mogelijkheden tot het archiveren van live content

Workflow

Instagram archiveren met Instaloader

2. Youtube-dl

Youtube-dl is een open source command line programma dat vooral gebruikt wordt om video’s en data van YouTube te downloaden.

Moeilijkheid

Gebruik van de command line

Vereisten

  • Python 3.2 of hoger

Geschikt voor:

  • Downloaden van video's, YouTube-kanalen, afspeellijsten en livestreams.
  • Downloaden van video’s in verschillende formaten
  • Downloaden van data, zoals thumbnails, ondertitels
  • Downloaden van video metadata
  • Geschikt voor het automatiseren van archiveringsacties

Beperkingen:

  • Geen mogelijkheden om comments te downloaden

Workflow

YouTube videos archiveren met youtube-dl

3. Tartube

Tartube is een open source grafische user interface tool dat vooral gebruikt wordt om video’s en data van YouTube te downloaden.

Moeilijkheid

  • Installatie op macOS is complex

Vereisten

  • Python 3.2 of hoger

Geschikt voor:

  • Downloaden van video's, YouTube-kanalen, afspeellijsten en livestreams.
  • Downloaden van video’s in verschillende formaten
  • Downloaden van data, zoals thumbnails, ondertitels
  • Downloaden van video metadata
  • Geschikt voor het automatiseren van archiveringsacties

Beperkingen:

  • Geen mogelijkheden om comments te downloaden

Workflow

YouTube video's archiveren met Tartube

4. Youtube-comment-downloader

Youtube-comment-downloader is een open source command line programma dat gebruikt wordt om YouTube comments te downloaden.

Moeilijkheid

Gebruik van de command line

Vereisten

  • Python 2.7 of hoger

Geschikt voor:

  • Downloaden van comments op YouTube-video's

Beperkingen:

  • Geen

Workflow

YouTube comments archiveren met youtube-comment-downloader

Stap 3: Kwaliteitscontrole

Visuele controle van het webarchief in ReplayWeb.page

ReplayWeb.page is een zeer eenvoudige open source tool waarmee webarchieven bekeken kunnen worden in de browser zonder dat je software moet installeren. Het is de opvolger van Webrecorder Player. Je kan er WARC-bestanden mee openen die lokaal op je computer, Google Drive, Amazon S3 of een webserver (via HTTP of HTTPS) staan. Tevens kan je WARC-bestanden die geladen zijn in ReplayWeb.page delen met anderen, tenzij het om een WARC-bestand gaat dat lokaal op je computer staat. Lees hierover meer in de documentatie over de tool.

In het voorbeeld hieronder leggen we uit hoe je een lokaal WARC-bestand kan openen. Voor het openen van een online WARC-bestand (via S3, Google Drive of webserver) verwijzen we door naar de documentatie.

Replayweb 1.png

  • Klik vervolgens op Load.

Replayweb 2.png

  • Het WARC-bestand zal nu geladen worden.

Replayweb 3.png

  • Via een lijst van URL’s kan je kiezen welke pagina je wil openen.

Replayweb 4.png

  • En dan de gearchiveerde pagina in de browser bekijken.

Replayweb 5.png

Visuele controle van het webarchief in pywb met Chrome-extensies

Een webarchief grondig visueel controleren vraagt veel tijd. Er bestaan extensies voor de browser Chrome die een aantal handelingen kunnen automatiseren, zoals verschillende URL’s in één keer openen, wisselen van tab en controleren of de links werken op een webpagina.

De chrome extensies werken niet bij webarchieven die geopend zijn met ReplayWeb.page, daarom gebruiken we hier pywb als tool om webarchieven te openen. Pywb staat voor Python Wayback en werd eind 2020 door IIPC (International Internet Preservation Coalition) verkozen als de beste software om webarchieven af te spelen.[1] Met pywb worden webarchieven rechtstreeks in de browser getoond.

Pywb wordt aangestuurd via de command line.

Stap 1: installeer de software

  • zorg dat Python geïnstalleerd is op je computer
  • open een terminalvenster
  • gebruik het commando pip install pywb om pywb te installeren
  • pywb is nu geïnstalleerd

Stap 2: maak een collectie

In dit voorbeeld maken we een webcollectie met de naam my-archive. Je mag een eigen naam kiezen voor het webarchief.

  • open een terminalvenster
  • gebruik het commando wb-manager init my-archive om de collectie my-archive te maken
  • voeg je WARC-bestand toe aan de collectie my-archive via het commando wb-manager add my-archive pad/naar/warc.gz. Vervang pad/naar/warc.gz in het pad van je WARC-bestand. Als bijvoorbeeld het WARC-bestand archief.warc.gz op de Desktop staat, dan is het commando:
    • voor Windows: wb-manager add my-archive c:\Users\(username)\Desktop\archief.warc.gz (vervang (username) door je gebruikersnaam)
    • voor macOS: wb-manager add my-archive ~/Desktop/archief.warc.gz

Stap 3: open je webarchief

Ga verder in het terminalvenster van de vorige stap.

  • voer het commando wayback uit in de terminal om pywb op te starten
  • open een venster in Google Chrome en surf naar http://localhost:8080/my-archive/url waar my-archive de naam van je collectie is (zie stap 2) en url de URL van de webpagina die je gearchiveerd hebt
  • als alles goed gegaan is, zie je nu een gearchiveerde versie van de webpagina

Pywb QC 1.png

Stap 4: installeer Chrome-extensies

Er bestaan verschillende extensies in Chrome waarmee je sneller kwaliteitscontrole kan doen. Deze lijst zal verder aangevuld worden tijdens het verloop van het project Best practices voor de archivering  van sociale media in Vlaanderen en Brussel.

  • Open multiple URL’s: kan gelijktijdig verschillende URL’s openen. Deze extensie is handig als je de archiveringsmethode gebruikt hebt met snscrape en browsertrix. Je kan deze extensie gebruiken om te controleren of de lijst van URL’s die je via snscrape ontvangen hebt, aanwezig zijn in het WARC-bestand. Pas hiervoor wel de URL’s aan. Voor iedere URL moet http://localhost:8080/collection/ geplakt worden, waarbij collection overeenkomt met de naam van je collectie (bv. my-archive).
  • Revolver - Tabs: deze extensie zorgt ervoor dat Chrome geautomatiseerd van tab naar tab gaat.
  • Check My Links: controleert of links werken in een pagina.

Pywb QC 2.png

Kwaliteitscontrole bij data scraping

Open het JSON-bestand in Teksteditor, Kladblok of Notepad++ en kijk naar de datum van de eerste lijn (meest recente post of vastgezette post) en de datum van de laatste lijn (oudste post). Als het oudste bericht in het JSON-bestand overeenkomt met de oudste post op het socialemediaplatform, dan is de kans groot dat alle posts meegekomen zijn.

Vind je een JSON Lines-bestand lastig? Zet het om naar CSV- of Excel-formaat via deze online tool: https://json-csv.com/

Referenties