The GDELT Project

GCP Timeseries API Explorations: Detecting Distinctive Television News Chyron Framing Through The GCP Timeseries API

Last June we explored how Google Cloud’s new Timeseries Insights API, coupled with the GCP Cloud Video AI API, could be used to perform powerful trend analysis over television news. As we prepare to release a series of new tutorials showcasing how the Timeseries Insights API can be used for realtime trend detection over the news, here's a fascinating example we found that showcases the potential for such timeseries analysis to flag distinctive news framings via chyrons.

In the screen capture above from the 5:00pm-6:00pm PST MSNBC broadcast of "All In With Chris Hayes" on February 11, 2022, the chyron includes the highly distinctive framing of former president Donald Trump as "The Criminal Ex-President." This appears for a total of 404 seconds (6.7 minutes) throughout the broadcast. It also appears twice earlier in the 24 hours prior, at 1AM and 8AM UTC on the 11th. In all, the chyron appeared for 2,960 seconds (49.3 minutes) over that 24 hour period, accounting for more than 3.4% of MSNBC's entire airtime for the day. Importantly, it is a highly distinctive phrase that had not appeared regularly on MSNBC in the days prior.

Thus, when looking for trending phrases in the onscreen text on the 11th by searching for chyron phrases that were outliers that day compared with the previous week, this phrase leaps to the top. You can see the raw output below, showing that the phrase had not appeared at all in the previous days before appearing for almost an hour that day, making it a very strong anomaly.

This example showcases the powerful ways in which timeseries analyses of television news chyrons can go beyond simply flagging the emergence of major stories, towards understanding the distinctive framings applied by channels to the events of the day.

     {
        "dimensions": [
          {
            "name": "Ngram",
            "stringVal": "Criminal Ex-President"
          }
        ],
        "result": {
          "holdoutErrors": {},
          "trainingErrors": {},
          "forecastStats": {},
          "history": {
            "point": [
              {
                "time": "2022-02-11T00:00:00Z",
                "value": 2541
              }
            ]
          },
          "forecast": {
            "point": [
              {
                "time": "2022-02-11T00:00:00Z"
              }
            ]
          },
          "detectionPointActual": 2541,
          "label": "ANOMALY"
        },
        "status": {}
      }