Publicatie:Twitter archiveren met Twarc
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.
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.
- Command line tutorial voor beginners, Linux, Mac, Windows(Engels)
- Command line tutorial voor beginners, Linux (Nederlands)
Toegang krijgen tot de Twitter API.
- Ga naar www.developer.twitter.com.
- Selecteer het doel van de applicatie.
- Klik op "Next"
- 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.
- Verifier of alle gegevens naar wens zijn. klik vervolgens op "Looks Good!" om verder te gaan.
- Lees en aanvaard de ontwikkelaarsovereenkomst, om verder te gaan, klik op "Submit Application".
- Klik op de link in de e-mail van Twitter om je e-mailadres te verifiëren.
- Twitter gaat nu de applicatie beoordelen, en een e-mail sturen wanneer dit proces klaar is.
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
ofcmd + v
op Mac.
- Doe hetzelfde met de API key secret of "consumer secret" volgens Twarc, gevolgd door enter.
- In de volgende stap selecteer optie 1, druk weer op enter.
- 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.
- Klik op "Authorize App".
- Als laatste stap geef de 8 cijferige pin in de terminal, gevolgd door enter.
- Happy Twarcing, Twarc is nu geconfigureerd om te starten met het archiveren.
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 twarcsearch
: 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 deAND
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 standaardpidpurltweetsnaarmeemo.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
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
ofbestandsnaam.jsonl
.