Publicatie:Twitter archiveren met Twarc

Uit Cultureel Erfgoed Standaardentoolbox
Naar navigatie springen Naar zoeken springen


Samenvatting

In het kader van het project Best practices voor de archivering van sociale media in Vlaanderen en Brussel werden verschillende tools getest om verschillende sociale media platformen te archiveren. Deze publicatie beschrijft de open source tool twarc. De code van websites en de code van de tools veranderd constant, het is daarom mogelijk dat op een bepaald moment bepaalde workflows niet meer werken.


Referentie
Titel Twitter archiveren met Twarc (Voorkeurstitel)
Locatie
Uitgever
Jaar van uitgave 2020
Rechten CC-BY-SA
Persistent ID


Twarc is een open source tool en python bibliotheek. Ontwikkeld 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. Twarc is gelimiteerd tot het archiveren van tweets die maximum zeven dagen oud zijn. Het is mogelijk om tegen betaling toegang te krijgen tot de Premium Search Api van twitter en dit maximum aantal dagen uit te breiden tot dertig. Snscrape kan bijvoorbeeld langer terug gaan in de tijd maar maakt geen gebruik van de Twitter API, de data is dus minder uitgebreid.


Voorbereiding

Vereisten:

  • Python 2 of 3 geïnstalleerd.

Basis kennis van de terminal is vereist voor het gebruik van de tool.

Toegang krijgen tot de Twitter API.

Doel selectie van de nieuwe twitter applicatie.jpg










  • Klik op "Next"
Overzicht van gegevens twitter dev.jpg









  • Beschrijf hoe je de Twitter data en toegang tot de Twitter API gaat gebruiken in minimum 200 woorden. En vink de opties aan die van toepassing zijn, beschrijf waar nodig. Ga verder door op "Next" te klikken.
beschrijving doel Twitter API















  • Verifier of alle gegevens naar wens zijn. klik vervolgens op "Looks Good!" om verder te gaan.
Verifieer gegevens ingevoerd voor Twitter API .png

















  • Lees en aanvaard de ontwikkelaarsovereenkomst, om verder te gaan, klik op "Submit Application".
Submit Twitter developer application.png










  • Klik op de link in de e-mail van Twitter om je e-mailadres te verifiëren.
Bevestig je e-mailadres .png









  • Twitter gaat nu de applicatie beoordelen, en een e-mail sturen wanneer dit proces klaar is.
Applicatie onder beoordeling.png









Opmerkingen: Het beoordelen kan enige tijd duren, wanneer het een relatief nieuw Twitter account is waarmee je ontwikkelaars toegang aanvraagt is de kans groter dat deze geweigerd wordt door Twitter. Geef genoeg volledige informatie over wat het doel is van de aanvraag.

Installatie

  • pip install twarc

Configuratie Twarc

Twarc heeft twee sleutels nodig, de API key / Consumer key en de API key secret / Consumer secret.

  • Open een nieuwe terminal venster.
  • Typ twarc configure gevolgd door ENTER.
  • Twarc heeft het over een "Consumer key" hier wordt de API key verwacht van Twitter, kopieer de sleutels te vinden op de "Keys and Tokens" pagina onder Projects.
  • Plak de API key in de terminal met ctrl + shift + v of cmd + v op Mac.

Configuratie Twarc.jpg





  • Doe hetzelfde met de API key secret of "consumer secret" volgens Twarc, gevolgd door enter.
Consumer secret .jpg





  • In de volgende stap selecteer optie 1, druk weer op enter.
kaderloos







  • Volg de instructies, ctrl + klik op de link of kopieer en plak de link in een browser waar je op Twitter bent ingelogd. Gebruik het Twitter account waar je de keys voor hebt aangemaakt.
Optie 1 bij het toevoegen van het authoriseren van Twarc bij Twitter.jpg







  • Klik op "Authorize App".
Autoriseer Twarc URL.jpg













  • Als laatste stap geef de 8 cijferige pin in de terminal, gevolgd door enter.
Auth pin Twitter Twarc.jpg







Twitter Twarc auth pin input Twarc.jpg








  • Happy Twarcing, Twarc is nu geconfigureerd om te starten met het archiveren.
Happy twarcing.jpg




Gebruik

De Twarc tool wordt gebruikt via de terminal, het commando begint altijd met twarc gevolgd door een van de volgende opties.

Users / gebruikers

De optie users haalt metadata op van twitter accounts op basis van ID of schermnaam. Het is ook mogelijk om twarc een tekstbestand van ids te laten uitlezen en zo meerdere gebruiker metadata op te halen in een commando.

Voorbeelden:

twarc users meemoo_be > meemoo_metadata.jsonl

  • > : "Redirect", stuur uitvoer van command naar file.
  • meemoo_metadata.jsonl: Schrijf de ids naar een bestand met als naam "meemoo_metadata.jsonl".

Metadata ophalen aan de hand van de gebruikers id's.

twarc users 3147722223 > meemoo_metadata.jsonl

Metadata ophalen aan de hand van meerdere gebruikers ids.
twarc users 31477222231652541,759251,428434894 > meemoo_metadata.jsonl

  • twarc users 31477222231652541,759251,...: ids moeten worden gescheiden door een ,.

metadata ophalen aan de hand van tekstbestand

twarc users id.txt > metadata_gebruikers.jsonl

Enkel het ID opslaan van een specifiek Twitter account.
Voor dit commando is een installatie van [jq] vereist. twarc users meemoo_be | jq '.id' > ids.txt

  • | : "pipe", uitvoer van commando 1 (twarc) naar commando 2 (jq).
  • jq '.id': instrueert jq om enkel de inhoud van de tag "id" op te halen uit de json data.
  • ids.txt: Schrijf de ids naar een bestand met als naam "ids.txt".

IDs opslaan van meerdere Twitter accounts.
twarc users meemoo_be,amsabisg,felixarchief,faronet,beeldengeluid | jq '.id' > ids.txt

  • meemoo_be,amsabisg,felixarchief,...: Accountnamen dienen gescheiden te worden door een ,.

Search / Zoek

De search functie gaat de Twitter API gebruiken om te zoeken naar bestaande tweets, tot maximum zeven dagen terug, aan de hand van de ingegeven zoekopdracht. De zoekopdracht kan een woord of hashtag zijn, de zoekopdrachten zijn niet hoofdlettergevoelig. Wanneer de zoekopdracht bestaat uit een zin of een combinatie van woorden gescheiden door spaties "zet de zoekopdracht tussen aanhalingstekens".

Voorbeelden:
Zoeken naar tweets rond de term "erfgoed":
twarc search erfgoed > erfgoedtweeets.jsonl

  • twarc: Start twarc
  • search: de optie om naar de opgegeven termen te zoeken in tweets van maximaal zeven dagen terug.
  • erfgoed: De zoekterm die Twarc moet gebruiken
  • > : Redirect operator, output van het twarc commando zal naar een bestand geschreven worden.
  • erfgoedtweets.jsonl : Specifieer de locatie en de bestandsnaam.jsonl.

Zoeken naar hashtags en filteren op taal:
twarc search '#PID OR #PURL --lang=nl > /twarc/search/pidpurltweetsnaarmeemo.jsonl

  • search: de optie om naar de opgegeven termen te zoeken in tweets van maximaal zeven dagen terug.
  • '#PID OR #PURL': Zoeken naar de hastags "PID" OR/OF "PURL", zoeken naar beide termen in een tweet kan met de AND operator.
  • --lang=nl: Twitter gaat proberen om de taal van de tweet vast te stellen. Het is mogelijk om de zoekopdracht te limiteren tot enkel Tweets in een bepaalde taal. Specifier de taal volgens de ISO 639-1 standaard
  • pidpurltweetsnaarmeemo.jsonl: Specifieer de locatie en de bestandsnaam.jsonl.

Zoeken naar Tweets op basis van locatie aan de hand van coördinaten:
Gebruik een website zoals mijncoordinaten.nl om coördinaten van een plaats te vinden.

twarc search 'twarc search '("art nouveau" OR "art deco")' --geocode 50.8465573,4.351697,60km > /home/lode/twarc/artnord.jsonl

  • search: de optie om naar de opgegeven termen te zoeken in tweets van maximaal zeven dagen terug.
  • '("art nouveau" OR "art deco")': De manier om te zoeken naar of Art nouveau OF naar Art Deco. Het is belangrijk om te weten dat wanneer de twee termen niet op de juiste manier worden opgevraagd de resultaten een van de vier woorden gaan bevatten.
  • --geocode 50.8465573,4.351697,60km: --geocode gevolgd door lengte- en breedtegraden van een plaats gevolgd door de radius vanuit het punt aangegeven door de coördinaten in dit geval ,60km.
  • artnord.jsonl: Specifieer de locatie en de bestandsnaam.jsonl.

Filter

Met de filter optie gaat twarc meteen starten met het verzamelen van tweets zoals ze worden gepubliceerd. Deze optie gaat geen tweets verzamelen van voor het het moment waarop het commando is gestart. Twarc zal blijven tweets ophalen tot het process wordt gestopt. In tegenstelling tot search is de filter optie niet gelimiteerd tot 1 week, maar kan een twarc filter process zo lang als nodig lopen.

Voorbeelden:

Verzamel alle toekomstige tweets rond het onderwerp "public domain" vanaf het moment dat het command gestart wordt.
twarc filter 'public domain' > publicdomain_tweets.jsonl

  • filter: Start twarc met de filter optie.
  • public domain: Zoekterm, zet meerder woorden tussen '.
  • publicdomain_tweets.jsonl: Specifieer de locatie en de bestandsnaam.jsonl.

Tweets ophalen op basis van meerdere termen.

twarc filter parlement,brexit > /twarc/filter/poli-tweets.json

  • parlement,brexit: Meerdere termen moeten worden gescheiden door een ,.
  • publicdomain_tweets.jsonl: Specifieer de locatie en de bestandsnaam.jsonl.

Tweets ophalen op basis van meerdere termen en filteren op taal
Het identificeren van de taal gebeurd aan de hand van de ISO 639-1 codes, meer informatier [hier.]

twarc filter parlement,brexit --lang fr > /twarc/filter/fr/poli-tweets.json

  • parlement,brexit: Meerdere termen moeten worden gescheiden door een ,.
  • --lang: Optie om te filteren op ISO 639-1

fr: ISO 639-1 code voor Frankrijk.

Verzamel tweets van een specifiek account

Gebruik het --follow om tweets te verzamelen van een specifiek Twitter account zoals ze worden gepubliceerd aan de hand van een gebruikers id. Dit is inclusief retweets.

twarc filter --follow idvantwitteraccount > tweets.jsonl

  • Ga naar het [Users] onderdeel voor meer informatie over hoe gebruikers ids kunnen worden opgehaald met twarc.

Verzamel alle tweets van meerdere accounts
twarc filter --follow idvantwitteraccount1,idvantwitteraccount2,idvantwitteraccount3 > tweets.jsonl

  • --follow:
  • idvantwitteraccount1,idvantwitteraccount2,idvantwitteraccount3: Ids moeten worden gescheiden door een ,.

Haal alle toekomstige tweets op gebaseerd op locatie
Gebruik [boundingbox.klokantech.com] om een bounding box te maken rond een bepaalde locatie, selecteer de "CSV" optie. In dit voorbeeld een selectiekader rond België. Wanneer de coordinaten beginnen met een - dient dit ontsnapt te worden met een \ voor bijvoorbeeld: twarc filter --locations "\-51,86,-53,62" > tweets.jsonl

CSV output












twarc filter --locations "2.3897,49.432,6.4758,51.5589" > BE-tweets.json

Deze optie kan ook gecombineerd worden met de --lang xx

twarc filter --locations "2.3897,49.432,6.4758,51.5589" --lang fr > BE-tweets.json

Verrijken en strippen van Twitter data

Verrijken of strippen, hydrate of dehydrate data met Twarc. De data verkregen via Twarc en de Twitter API is initieel zeer uitgebreid. Het is echter belangrijk om te weten dat gearchiveerde tweets niet zomaar mogen gepubliceerd worden. Volgens de servicevoorwaarden van de Twitter API is enkel het publiceren van de unieke tweet ID's toegestaan. De opgehaalde twitter data kan met Twarc terug gebracht worden (dehydrate) naar enkel de unieke Tweet ID's. Deze datasets worden meestal gepubliceerd als een simpel tekstbestand. Het is mogelijk om met Twarc aan de hand van deze tekstbestanden van id's terug een verrijkte dataset op te bouwen(hydrate).

Strippen / Dehydrate:

twarc dehydrate /pad/naar/twitter-data.json > /pad/naar/twitter-ids.txt

  • dehydrate: Twarc optie om Twitter dataset te ontdoen van data die niet mag gepubliceerd worden.
  • /pad/naar/twitter-data.json:Verwijs naar de locatie van de jsonl met de rijke twitter data.
  • > /pad/naar/twitter-ids.txt: Verwijs naar de locatie waar het tekstbestand met enkel de unieke ids moet worden opgeslagen.txt.

Verrijken / hydrate:

twarc hydrate /pad/naar/twitter-ids.txt > hydrated-tweets.jsonl

  • hydrate: Hydrate, de Twarc optie om aan de hand van de unieke tweet id lijst de rest van de twitter data op te halen.
  • /pad/naar/twitter-ids.txt: Verwijs naar de locatie van het tweet id tekstbestand.
  • hydrated-tweets.jsonl: Geef een locatie of enkel de bestandsnaam van waar de verrijkte twitter data moet worden opgebouwd. /pad/naar/bestand.jsonl of bestandsnaam.jsonl.