The GDELT Project

Tracking Putin, Trump, Biden And Zelenskyy Across A Year Of Russian Television News Totaling A Quarter-Billion Seconds Of Airtime

This week we demonstrated tracking all appearances of Tucker Carlson across the 7 Belarusian, Russian and Ukrainian channels over the past year monitored by the Internet Archive's TV News Archive. Today we'll repeat that analysis, searching for all appearances of Biden, Putin, Trump and Zelenskyy's faces across Russia Today (1/1/2022 – present), 1TV and NTV and Russia 1 (3/26/2022 – present), Espreso and Russia 24 (4/26/2022 – present) and BelarusTV (5/16/2022 – present) using the Visual Explorer's every-4-seconds preview images computed from the Internet Archive's TV News Archive.

The chart below shows the total seconds of airtime in which each of the four current and former heads of state appeared on the channels over the past year. Espreso unsurprisingly is dominated by Zelenskyy, While Russia 24 stands out among the Russian channels for the sheer ubiquity of Putin's face across its coverage, totaling nearly three times the airtime of the other four Russian channels examined here. Russia Today, on the other hand, actually shows Biden's face slightly more often than Putin's, with Zelenskyy also appearing heavily. Belarus24 shows the four leaders the least, reflecting that Belarusian television has covered the war far less than its neighbors.

The combined 7-channel timeline for each of the four leaders can be seen below. Zelenskyy has remained a steadfast fixture, while Biden appearances are more uneven. Putin appearances are the most bursty, appearing in singular massive surges that are extremely brief, before sharply falling again:

You can see the final montages of their matches in the following four movies:

Joe Biden

Download Full MP4.
Embed From Internet Archive.

Donald Trump

Download Full MP4.
Embed From Internet Archive.

Vladimir Putin

Download Full MP4.
Embed From Internet Archive.

Volodymyr Zelenskyy

Download Full MP4.
Embed From Internet Archive.

For those interested in replicating this analysis yourself, you can find the complete technical workflow below.

We used the same technical workflow as the Tucker Carlson analysis, but to make our search more efficient, we searched for all four leaders at the same time, so here we'll extract their individual matches:

grep --no-filename '"face": "JoeBiden"' *-MATCHES.json > RUS-UKR-BLR-20220101-20230430-JoeBiden-match.json
grep --no-filename '"face": "DonaldTrump"' *-MATCHES.json > RUS-UKR-BLR-20220101-20230430-DonaldTrump-match.json
grep --no-filename '"face": "VladimirPutin"' *-MATCHES.json > RUS-UKR-BLR-20220101-20230430-VladimirPutin-match.json
grep --no-filename '"face": "VolodymyrZelenskyy"' *-MATCHES.json > RUS-UKR-BLR-20220101-20230430-VolodymyrZelenskyy-match.json

You can download the final extracted matches here:

wget https://storage.googleapis.com/data.gdeltproject.org/blog/2022-tv-news-visual-explorer/RUS-UKR-BLR-20220101-20230430-JoeBiden-match.json
wget https://storage.googleapis.com/data.gdeltproject.org/blog/2022-tv-news-visual-explorer/RUS-UKR-BLR-20220101-20230430-DonaldTrump-match.json
wget https://storage.googleapis.com/data.gdeltproject.org/blog/2022-tv-news-visual-explorer/RUS-UKR-BLR-20220101-20230430-VladimirPutin-match.json
wget https://storage.googleapis.com/data.gdeltproject.org/blog/2022-tv-news-visual-explorer/RUS-UKR-BLR-20220101-20230430-VolodymyrZelenskyy-match.json

And make their timelines from these matches:

wget https://storage.googleapis.com/data.gdeltproject.org/blog/2022-tv-news-visual-explorer/faceembeddings_maketimeline.pl
chmod 755 faceembeddings_maketimeline.pl
time ./faceembeddings_maketimeline.pl RUS-UKR-BLR-20220101-20230430-JoeBiden-match.json
time ./faceembeddings_maketimeline.pl RUS-UKR-BLR-20220101-20230430-DonaldTrump-match.json
time ./faceembeddings_maketimeline.pl RUS-UKR-BLR-20220101-20230430-VladimirPutin-match.json
time ./faceembeddings_maketimeline.pl RUS-UKR-BLR-20220101-20230430-VolodymyrZelenskyy-match.json

And to make their clip montage movies (see the Tucker Carlson analysis for the script installation and prerequisites):

time ./faceembeddings_makemovie.pl RUS-UKR-BLR-20220101-20230430-DonaldTrump-match.json
rm -rf IMAGESANNOT; mkdir IMAGESANNOT
time find ./IMAGES/ -depth -name '*.jpg' | parallel --eta "convert {} -gravity northeast -fill white -stroke black -strokewidth 0.25 -pointsize 20 -annotate +5+5 \"{/.}\" ./IMAGESANNOT/{/.}.jpg"
rm IMAGES.LST; time find ./IMAGESANNOT/ -depth -name '*.jpg' | sort > IMAGES.LST
time xargs -a IMAGES.LST cat | ffmpeg -framerate 5 -i - -vcodec libx264 -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" -y ./RUS-UKR-BLR-20220101-20230430-DonaldTrump.mp4

To upload all of the videos to the Archive, we wrap their uploads inside of "screen" to protect them from terminal disconnections:

apt-get -y install screen
screen -S trump -d -m ./ia upload RUS-UKR-BLR-20220101-20230430-DonaldTrump RUS-UKR-BLR-20220101-20230430-DonaldTrump.mp4 --metadata="mediatype:movies"
screen -S biden -d -m ./ia upload RUS-UKR-BLR-20220101-20230430-JoeBiden RUS-UKR-BLR-20220101-20230430-JoeBiden.mp4 --metadata="mediatype:movies"
screen -S zelenskyy -d -m ./ia upload RUS-UKR-BLR-20220101-20230430-VolodymyrZelenskyy RUS-UKR-BLR-20220101-20230430-VolodymyrZelenskyy.mp4 --metadata="mediatype:movies"&
screen -S putin -d -m ./ia upload RUS-UKR-BLR-20220101-20230430-VladimirPutin RUS-UKR-BLR-20220101-20230430-VladimirPutin.mp4 --metadata="mediatype:movies"&
#list inflight uploads..
screen -list
#connect to a given upload to check on it
screen -r trump
#and detach again from it via: ctrl-a (lower-case "a") then type lower-case "d"... it will exit automatically when complete

We hope this seeds new ideas for how these massive new dataset can be used to understand the portrayals of world leaders and how they are used and contextualized by the media environment to tell society's narratives.