-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Die Module in diesem Repo sind Teil eines Projekts zur automatisierten Erfassung, Analyse und Visualisierung von Nutzungsdaten.
Das Gesamtprojekt nutzt dazu zwei Komonenten:
- Der "Intelligence Layer": Ein System, das Daten aus unterschiedlichen Quellen (Instagram, Youtube, Spotify, Webserver-Statistiken, etc.) ausliest, in ein nutzbares Format bringt und in einer Datenbank bereitstellt
- Die Daten-Visualisierung: Eine Reihe von Visualisierungen und Auswertungen in chart.io, die auf der Datenbank des Intelligence Layer basieren.
In diesem Repo befindet sich der Intelligence Layer.
Der Intelligence Layer verbindet die folgenden drei Elemente:
- Indiviuell angepasste Scraper für die einzelnen Datenquellen (Instagram, Youtube, Spotify, Webserver-Statistiken, etc.)
- Datenbank-Modell zum Speichern der Daten
- Django-basiertes CMS zum Anlegen und Editieren von Datenquellen
Die Scraper des Intelligence Layer machen externe Datenquellen für die weitere Analyse nutzbar. Für jede Datenquelle existiert ein individuell angepasstes Scraping-Modul.
Im Moment nutzt der Intelligence Layer Daten für folgende Formate:
- Instagram-Accounts (über die Quintly-API)
- Youtube-Accounts (über die Quintly-API)
- Podcasts (über die APIs von Spotify, Podstat, Mediatrend und Webtrekk)
Sämtliche Daten des Intelligence Layer befinden sich in einer SQLite-Datenbank. Die Tabellen der Datenbank lassen sich vier Gruppen zuordnen:
-
Instagram TBD
-
Youtube TBD
-
Podcast
Tabellen-Name: podcast
Enthält Daten zu den einzelnen Podcast-Reihen.
Name Typ NOT NULL Beschreibung id (primary key) integer X ID des Podcasts name varchar (200) X Name des Podcasts author varchar (200) X Autor des Podcasts image varchar (1024) X URL zum Coverbild des Podcasts description text X Beschreibungstext des Podcasts last_updated datetime X Datum der letzten Aktualisierung spotify_id varchar (32) Spotify ID, falls vorhanden feed_url varchar (1024) X URL des RSS-Feeds des Podcasts Tabellen-Name: podcast_data_spotify
Enthält zusätzliche Daten zu den einzelnen Podcast-Reihen, die auf Spotify verfügbar sind.
Name Typ NOT NULL Beschreibung id (primary key) integer X ID des Eintrags date date X Erstellungsdatum des Datenpunkts followers integer X Anzahl der Follower des Podcasts podcast_id (foreign key) integer X ID des Podcasts last_updated datetime X Datum der letzten Aktualisierung listeners integer X Hörer listeners_all_time integer X Hörer insgesamt listeners_monthly integer X Hörer pro Monat listeners_weekly integer X Hörer pro Woche Tabellen-Name: podcast_data_spotify_hourly
Enthält Daten über die stündliche Nutzung der Podcast-Reihen, die auf Spotify verfügbar sind.
Name Typ NOT NULL Beschreibung id (primary key) integer X ID des Eintrags date_time datetime X Datum und Uhrzeit starts integer X Anzahl der Starts streams integer X Anzahl der Streams podcast_id (foreign key) integer X ID des Podcasts Tabellen-Name: podcast_episode
Enthält Daten zu den einzelnen Folgen der Podcasts
Name Typ NOT NULL Beschreibung id (primary key) integer X ID des Eintrags title varchar(400) X Titel der einzelnen Folge description text X Beschreibungstext der Folge publication_date_time datetime X Datum der Veröffentlichung media varchar (1024) X URL der Mediendatei zmdb_id integer X ZMDB ID der Mediendatei podcast_id (foreign key) integer X ID des Podcasts duration bigint X Länge der Mediendatei last_updated datetime X Letzte Aktualisierung spotify_id varchar (32) Spotify ID, falls vorhanden -
Django-CMS und User-Management TBD
"Unsere Inhalte, unser Wissen und unsere Entwicklungen gehören allen." WDR Geschäftsbericht 2016, S.23