Skip to content

Instantly share code, notes, and snippets.

@Brawl345
Last active September 3, 2024 06:40
Show Gist options
  • Save Brawl345/d7807f30b2fdcf03333136f1214d6114 to your computer and use it in GitHub Desktop.
Save Brawl345/d7807f30b2fdcf03333136f1214d6114 to your computer and use it in GitHub Desktop.
Tagesschau v2 API Dokumentation (inoffiziell)

Tagesschau v2 API

API-URL: https://www.tagesschau.de/api2

TODO

  • Responses fehlen
  • Nicht alle Parameter dokumentiert (?)
  • Weitere Endpunkte? (/channels)

1. Homepage

Endpunkt: /homepage

1.1 Parameter

N/A (keine bekannt)

Endpunkt liefert von der Tagesschau kuratierte News, die auch auf der Startseite der App zu sehen sind (inkl. Eilmeldungen)

2. News

Endpunkt: /news/

Antwort: RegionalNews

2.1 Parameter

Parameter Wert Bedeutung
N/A Alle Resorts und Länder
regions 1 bis 16 (kombinierbar, durch Komma abgetrennt) Bundesland (s. unten)
ressort inland, ausland, wirtschaft, sport, video Themengebiet

2.1.1 regions

Wert Bundesland Lieferant
1 Baden-Württemberg SWR
2 Bayern BR24
3 Berlin RBB24
4 Brandenburg RBB24
5 Bremen buten un binnen
6 Hamburg NDR
7 Hessen Hessenschau
8 Mecklenburg-Vorpommern NDR
9 Niedersachsen NDR
10 Nordrhein-Westfalen WDR
11 Rheinland-Pfalz SWR
12 Saarland SR
13 Sachsen MDR
14 Sachsen-Anhalt MDR
15 Schleswig-Holstein NDR
16 Thüringen MDR

3. Suche

Endpunkt: /search/

3.1 Parameter

Parameter Wert Bedeutung
searchText str Suchbegriff
resultPage int: totalItemCount / pageSize Seite der Suchergebnisse
pageSize int: 1 bis 30 (empfohlen: 10) Anzahl der Suchergebnisse pro Seite

Ab einer pageSize von 30 wird die Suche instabil und liefert weniger Ergebnisse zurück.

Tagesschau v2 API Elemente

Haupt-Elementnamen (wie "RegionalNews") sind frei erfunden.

TODO

  • Alles

RegionalNews

Beschreibt regionale News

story

Feld Typ Beschreibung
sophoraId String ID des Beitrags; wird auch für URL verwendet (Sophora = CMS)
externalId String
title String Titel des Beitrags
teaserImage Image Teaser-Bild
date String Veröffentlichungszeitpunkt (Datum, Zeit, Zeitzone +00:00 oder +01:00)
tracking Array mit Tracking Array mit Tracking-Daten
tags Array mit Tags Array mit Tags
updateCheckUrl String URL zu JSON mit true/false, ob sich seit dem letzten state etwas geändert hat (TODO)
regionId Integer Regions-ID (siehe 2.1.1)
details String URL zu Beitrags-JSON
detailsweb String URL zum Beitrag im Web (intern)
shareURL String URL zum Beitrag im Web (ohne /ardimport)
geotags Array mit Geotags Array mit Geotags
ressort String Beitrags-Ressort (siehe 2.1)
brandingImage BrandingImage Optional: Anstalt-Branding (bspw. NDR)
type String story

VideoWeb

Bild - eigentlich als Standbild für Videos gedacht.

Feld Typ Beschreibung
imageurl String URL zum Bild

Tag

Feld Typ Beschreibung
tag String Tag

Geotag

Gibt den Ort der News an.

Feld Typ Beschreibung
tag String Ort der News

BrandingImage

Branding-Bild der öffentlichen Anstalt.

Feld Typ Beschreibung
title String Titel des Bildes ("Logo" + Anstalt)
copyright String (c) Text
alttext String Alternativer Text (entspricht title)
type String image
videowebm VideoWeb Link zum Bild
videowebs VideoWeb Link zum Bild (entspricht videowebm)
@foxgreek
Copy link

foxgreek commented Mar 3, 2022

@Brawl345 da hast du schon recht. Der /homepage Endpunkt funktioniert auch noch. Aber der /news Endpunkt hat keine neuen Beiträge mehr seit dem 28.02.
Ich habe jetzt übergangsweise auf den /homepage Endpunkt umgestellt.

@atticus-sullivan
Copy link

Hi,
ich probier auch grad n bissl mit der tagesschau-api rum, aber da es mir auch mehr um Eilmeldungen geht, sind auf https://www.tagesschau.de/api2/ etwas arg viele Nachrichten dabei.

Ich sehe @Brawl345, du hast nen anderen Endpoint/andere API gefunden, die dir nur die Eilmeldungen ausspuckt (https://www.tagesschau.de/ipa/v1/web/headerapp/). Rein interessehalber, wie hast du den/die gefunden? (auf die normale API stößt man ja recht schnell, wenn man allgemein nach Tagesschau API im Internet sucht)
Und kleine weitere Frage (bin kein go Experte), soweit ich das sehe fragst du die API jede Minute einmal an oder? (war mir bisher unsicher bzgl der Zeit, die man warten sollte zwischen den Requests)

@Brawl345
Copy link
Author

Brawl345 commented Apr 12, 2022

@atticus-sullivan: Die API findest du wenn du auf tagesschau.de gehst und alle XHR-Requests in den Browser-Devtools filterst. Wird auch periodisch immer wieder abgefragt, dadurch ist es mir mal ins Auge gestochen. Jup, die API ruf ich jede Minute ab. So viele wie tagesschau.de sicher lesen und wenn da eh im Hintergrund dann immer ein Request gemacht wird sollte das für die kein Problem sein.

EDIT: Du findest hier in dem Issue: Brawl345/tagesschau-eilbot#3 zwei beispiel-JSONs mit und ohne Eilmeldung falls du was zum Testen brauchst.

@atticus-sullivan
Copy link

Ah verstehe 👍 Danke dir

@ml-eds
Copy link

ml-eds commented Apr 5, 2023

@Brawl345
Copy link
Author

Brawl345 commented Apr 5, 2023

Überholt von

http://tagesschau.api.bund.dev

github.com/bundesAPI/tagesschau-api

Cool, hab das Gist mal aktualisiert und den Link eingefügt 👍

@atticus-sullivan
Copy link

Bekomm seit heute auf https://www.tagesschau.de/ipa/v1/web/headerapp/ 404er. Der Endpoint scheint auf https://www.tagesschau.de/json/headerapp umgezogen zu sein

@Brawl345
Copy link
Author

Stimmt, scheint heute um ca. 9:35 Uhr umgestellt worden zu sein da ich ab da 404er bekam. Danke dir!

@atticus-sullivan
Copy link

Und hat jetz bissl gedauert bis ichs mir richtig angeschaut hab, die struktur der breakingNews im headerapp endpoint scheint sich in dem Zuge auch geändert zu haben. Hab dazu das hier als Beispiel "aufgezeichnet":

{
  "breakingNews": [
    {
      "headline": "Bürgermeisterwahl in Berlin: Wegner im 1. Wahlgang gescheitert",
      "text": "Der CDU-Politiker Kai Wegner ist bei der Wahl zum neuen Regierenden Bürgermeister von Berlin im ersten Wahlgang gescheitert. Der 50-Jährige verpasste bei der Abstimmung im Abgeordnetenhaus die erforderliche absolute Mehrheit.",
      "url": "/eilmeldung/eilmeldung-7196.html",
      "date": "Stand: 27.04.2023 12:53 Uhr",
      "id": "54ec4992-8048-4308-b5e4-4541e79dfc2f",
      "linkText": "Eilmeldung"
    }
  ]
}

Konkret ist das Datumsformat ein anderes geworden und die breakingNews sind jetzt eine Liste (soweit zumindest von den Infos die ich verwende, sonst sieht die url glaub noch bissl anders aus)

Altes aufgezeichnetes Formatsbeispiel zum Vergleich
{
  "breakingNews": {
    "headline": "Finnland ist offiziell NATO-Mitglied",
    "text": "Finnland ist offiziell der NATO beigetreten. Der finnische Außenminister Haavisto überreichte die Beitrittsurkunde seines Landes an US-Außenminister Blinken und schloss damit den Aufnahmeprozess ab.\r\n",
    "url": "https://www.tagesschau.de/ausland/europa/finnland-nato-mitglied-101.html",
    "date": "04.04.2023 - 15:13 Uhr",
    "id": "c9668947-9a8a-43c6-8fcd-228c36a068f6",
    "linkText": "Eilmeldung"
  }

@NerdyPiglin123
Copy link

Ich will einen newsticker auf dem Pi pico machen. Hat irgendwer eine Ahnung ob man dafür das Tagesschau API nutzen kann?

@IngwiePhoenix
Copy link

@NerdyPiglin123 Könntest in nem Intervall dir die News aus einigen Kategorien suchen und diese in eine chronologische Liste einpflegen, nach zeit sortieren und dann alles aus einer bestimmten reichweite durchlaufen lassen ($nachrichten[ $nachrichten[-1].zeit - $intervall] ) ... würd ich ma vermuten.

@NerdyPiglin123
Copy link

Ah okay danke

@NerdyPiglin123
Copy link

Weiß jemand wie man in Python die schriftgröße ändert?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment