API-Access – Reddit

Digital behavioral data - Session 06

30.11.2022

Seminarplan

Sitzung Datum Thema Referent*Innen
1 26.10.2022 Kick-Off Session Christoph Adrian
2 02.11.2022 DBD: Einführung und Überblick Christoph Adrian
3 09.11.2022 DBD: Datenerhebung Christoph Adrian
4 16.11.2022 API-Access (I): Twitter Falk
5 23.11.2022 API-Access (II): YouTube Denisov
6 30.11.2022 API-Access (II): Reddit Landauer
7 07.12.2022 Webscraping: TikTok Brand & Kocher
8 14.12.2022 Exkurs: DBD Analyse mit R Christoph Adrian
WEIHNACHTSPAUSE
9 12.01.2023 ESM: m-path Dörr
10 19.01.2023 Data Donations Hofmann & Wierzbicki
11 26.01.2023 PUFFER
12 02.02.2023 Guest Lecture: Linking DBD & Survey data Johannes Breuer
13 09.02.2023 Semesterabschluss & Evaluation Christoph Adrian

Agenda

  1. 👥 Group Activity
  2. Beispielhafte Auswertungen
  3. Verständnis- & Diskussionsfragen

👥 Group Activity

Gruppenarbeit zu 4CAT: Capture and Analysis Toolkit

What is it & who made it?

Hintergrundinformationen 4CAT (Peeters & Hagen, 2022)

  • Tool zur Analyse und Verarbeitung von Daten aus sozialen Online-Plattformen

  • Ziel ist es, die Erfassung und Analyse von Daten aus diesen Plattformen über eine Webschnittstelle zugänglich zu machen, ohne dass Programmier- oder Web-Scraping-Kenntnisse erforderlich sind.

Soziale Medien sind Quelle für Nachrichten

Medienkonsum in Wandel

Und ? (Noch) Nicht in Deutschland!

Nutzung sozialer Medien als Nachrichtenquelle in Deutschland & USA

And now … you: Reddit als Newsfeed

Group activity: Scrape Reddit mit 4CAT

Ziel der Group Activity

Durchsuchen Sie die Subreddits r/news und r/worldnews nach Posts zu einem bestimmten Thema/Begriff und analysieren Sie diese mit Hilfe von 4CAT

  1. Überlegen Sie (in Gruppen), welches Thema Sie untersuchen wollen und mit welchen Begriffen Sie Beiträge zu diesem Thema identifizieren könnten.
  1. Öffnen Sie 4CAT ➡️Create dataset ➡️ Data source: Reddit
  1. Geben Sie news, worldness an beim Feld Subreddit(s)
  1. Geben Sie Ihre(n) Suchbegriff(e) im Feld Message search ein.
  1. Wählen Sie (maximal) die letzten zwei Wochen als Date range
  1. Benennen Sie ihrem Datensatz im Feld Dataset name
  1. Optional: Probieren Sie verschiedenen Analysemöglichkeiten aus

Beispielhafte Auswertungen

Im Fokus: News über 🤡Elon Musk

Quarto Document Binder RStudio Binder Google Colab

2 Tools, 2 Analysen

Beispiele für Auswertung mit 🐈🐈4CAT🐈🐈 & RStudio

Zwei (einfache) Szenarien:

  1. Visualisierung der Anzahl der Beiträge im Zeitverlauf

  2. Erstellung einer Wordcloud mit den meistgenannten Named Entities

Beiträge mit Keyword “musk” im Zeitverlauf

Visualisierung mit 🐈🐈4CAT🐈🐈

Beiträge im Zeitverlauf nach Subreddit

Visualisierung mit 🐈🐈4CAT🐈🐈

Wordcloud mit Named Entities

Visualisierung mit 🐈🐈4CAT🐈🐈

Back to RStudio

Kurzer Überblick über die eingelesenen Datensätze

musk_hash %>% glimpse()
Rows: 4,838
Columns: 16
$ thread_id      <chr> "fa3188370daf15e630f9121ab7e1ff76", "e00fff6599660fbfd7…
$ id             <chr> "0427331b4ed6b36be917779e839c732f", "9465790a781133af6b…
$ timestamp      <dttm> 2022-11-14 00:13:59, 2022-11-14 01:11:53, 2022-11-14 0…
$ body           <chr> "a82402045c5afcce8e1e20c9d3d7978a", "f07ff47103d975865a…
$ subject        <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
$ author         <chr> "736bbd33d9055a81d41f1f0aa12859c2", "89a6bdaaa7351e189a…
$ author_flair   <chr> "9c63023a4dad721af7dc04902c9ddecb", "9c63023a4dad721af7…
$ post_flair     <chr> "9b09f05e8ca418b2b85266625985528b", "9b09f05e8ca418b2b8…
$ domain         <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
$ url            <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
$ image_file     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
$ image_md5      <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
$ subreddit      <chr> "worldnews", "news", "news", "news", "news", "news", "n…
$ parent         <chr> "e1ef5b33cbd8891c1a005cf5521d1408", "e342d97798ff809247…
$ score          <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
$ unix_timestamp <dbl> 1668384839, 1668388313, 1668391383, 1668391676, 1668391…
musk_entities %>% glimpse()
Rows: 3,633
Columns: 3
$ word   <chr> "musk", "twitter", "twitter", "elon musk", "tesla", "trump", "t…
$ entity <chr> "PERSON", "PERSON", "PRODUCT", "PRODUCT", "ORG", "ORG", "GPE", …
$ count  <dbl> 1147, 861, 479, 404, 345, 273, 222, 218, 205, 187, 154, 132, 13…

Beiträge mit Keyword “musk” im Zeitverlauf

Betrachtung von beiden Subreddits (news & worldnews )

musk %>% 
  mutate(date  = as.factor(date(timestamp))) %>%
  plot_frq(date,
           title = "Post including 'musk' on Reddit") +
  labs(subtitle = "Subreddits 'news' & 'worldnews' between 14-11 and 26-11-2022")

Beiträge mit Keyword “musk” im Zeitverlauf

Unterschieden nach Subreddits (news & worldnews )

musk %>%
  mutate(date  = as.factor(date(timestamp)),
         across(subreddit, as.factor)) %$% 
  plot_grpfrq(date, subreddit,
              title = "Post including 'musk' on Reddit") +
  labs(subtitle = "Between 14-11 and 26-11-2022")

Verständnis- & Diskussionsfragen

Ihre Fragen aus MS Teams

Vielen Dank für Ihre Fragen!

Die Reddit API erlaubt nur bis 500 Kommentare pro Post über ein automatisches Tool zu ‘extrahieren’. Manuell ist es jedoch möglich über diese Grenze hinaus zu gehen. Wie kann das sein? Das würde ja bedeuten, dass man die Regeln der Reddit API manuell umgehen kann?

In dem Paper wird darauf hingewiesen, dass die Verwendung der API von Reddit ein möglicher Verstoß gegen die Nutzungsvereinbarungen ist. Wann würde so ein Fall eintreten bzw. wann spricht man von einem Verstoß und was wäre dann die Bestrafung?

Wie kann es sein, dass Reddit eine kostenlose API zur verfügung stellt, die Nutzung dieser dann aber teilweise nicht legal sein kann?

Es wird erwähnt, dass viele Nutzer mehrere Accounts haben und dementsprechend Diskussionen in bestimmten Subreddits stärker beeinflussen können. Besteht die Möglichkeit solche Accounts zu erkennen und angemessen in der Studie zu berücksichtigen ohne die Datenschutzrichtlinien zu verletzen?

Let’s discuss

Viele Social Media Plattformen, wie Instagram, Facebook und Twitter beschränken ihren API Zugang. Weshalb legt Reddit den API Zugang im Gegensatz zu den anderen Plattformen so offen dar?

Viele der Reddit-Daten basierenden Publikationen enthielten nur unvollständige oder zweideutige Beschreibungen ihrer Datensätze. Auch die Methoden der Datenerhebung bleiben teilweise verschleiert. Warum ist das so und welche ethischen Gründe liegen hier möglicherweise zu Grunde?

Wie stark sind Reddit-Daten (evtl. auch im Vergleich zu Twitter) generalisierbar, wenn die Struktur von Reddit doch Diskussionen und Gespräche in gewisser Weise leitet (z.B. durch Sichtbarkeit von Themen)?

Time for questions

Bis zur nächsten Sitzung!

Literatur

Peeters, S., & Hagen, S. (2022). The 4CAT Capture and Analysis Toolkit: A Modular Tool for Transparent and Traceable Social Media Research. Computational Communication Research, 4(2), 571–589. https://doi.org/10.5117/ccr2022.2.007.hage