Publicatie:Workflows voor de captatie van individuele sociale media accounts
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.
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 |
handleiding | rapport | archiefcollecties | digitaal archiveren | tekst | bewegende beelden | rasterbeelden | Standaard:WARC | Standaard:JSON | Standaard:JSON Lines | Standaard:HTML | Software:Browsertrix-crawler | Software:Snscrape | Software:Twarc | Software:Instaloader | Software:ReplayWeb.page | Software:Webrecorder
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.
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:
- 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.
- 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.
- 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.
- 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.
- open een terminalvenster
- 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. Veranderbasis_URL
in de basis-URL enmap_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
- Voor Windows:
- Het bestand kan nu geopend worden in een WARC-player, zoals ReplayWeb.page of pywb (zie Stap 4).
Strategie 2: crawling met behoud van look-and-feel
Voor het crawlen met behoud van look & feel zijn er twee opties beschikbaar:
- Archiveweb.page;
- 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:
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
- een account voor het socialemediaplatform
- Docker
- Docker-Compose
- Python 3.8 of hoger
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:
- snscrape;
- facebook-scraper;
- 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
- Een Twitter developer account.
- Python 3
Geschikt voor:
- Tweets archiveren
- Twitter-profielen archiveren
- Verrijken en strippen van Twitter-data
Beperkingen:
- Onderhevig aan de Twitter API-regels.
Outputformaat
Workflow
Strategie 4: Download
Ook voor de download zijn er verschillende opties beschikbaar:
- Instaloader
- Youtube-dl
- Tartube
- 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.
- Ga naar https://replayweb.page en selecteer het WARC-bestand dat je wil openen.
- Klik vervolgens op Load.
- Het WARC-bestand zal nu geladen worden.
- Via een lijst van URL’s kan je kiezen welke pagina je wil openen.
- En dan de gearchiveerde pagina in de browser bekijken.
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
. Vervangpad/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
- voor Windows:
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) enurl
de URL van de webpagina die je gearchiveerd hebt - als alles goed gegaan is, zie je nu een gearchiveerde versie van de webpagina
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.
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/