I’ve seen screenshots of YouTube modifying dislikes of White House videos. I decided I would do a thorough analysis myself. I wrote a script to check video stats every 80 seconds for 24 hours – for all videos on White House’s YouTube channel.
The collected data is archived here and here. The format is space-separated “CSV”, as follows:
VideoURL UnixTimestamp Date,Time Views Likes Dislikes
Here is a sample of the most egregious manipulation:
Some videos were delisted in minutes!:
https://www.youtube.com/watch?v=2bpSkdYUtNU 1611771197 01/27/2021,13:13:17 1227 437 2963
https://www.youtube.com/watch?v=2bpSkdYUtNU 1611771285 01/27/2021,13:14:45 1463 441 2999
https://www.youtube.com/watch?v=2bpSkdYUtNU 1611771372 01/27/2021,13:16:12 1763 449 3030
https://www.youtube.com/watch?v=2bpSkdYUtNU 1611771459 01/27/2021,13:17:39 2476 455 3060
https://www.youtube.com/watch?v=2bpSkdYUtNU 1611771546 01/27/2021,13:19:06 2640 459 3098
https://www.youtube.com/watch?v=2bpSkdYUtNU 1611771720 01/27/2021,13:22:00 3588 470 3183
https://www.youtube.com/watch?v=Fxo3OHKjfxs 1611699362 01/26/2021,17:16:02 918 405 4942
https://www.youtube.com/watch?v=Fxo3OHKjfxs 1611699448 01/26/2021,17:17:28 1202 412 4976
https://www.youtube.com/watch?v=Fxo3OHKjfxs 1611699534 01/26/2021,17:18:54 1375 415 5026
https://www.youtube.com/watch?v=juqHZYKzyx0 1611766646 01/27/2021,11:57:26 255 375 1771
https://www.youtube.com/watch?v=juqHZYKzyx0 1611766733 01/27/2021,11:58:53 455 380 1823
https://www.youtube.com/watch?v=juqHZYKzyx0 1611766819 01/27/2021,12:00:19 455 383 1852
https://www.youtube.com/watch?v=juqHZYKzyx0 1611766906 01/27/2021,12:01:46 819 387 1886
https://www.youtube.com/watch?v=juqHZYKzyx0 1611766992 01/27/2021,12:03:12 1148 393 1932
https://www.youtube.com/watch?v=juqHZYKzyx0 1611767079 01/27/2021,12:04:39 1462 397 1971
https://www.youtube.com/watch?v=juqHZYKzyx0 1611767166 01/27/2021,12:06:06 1830 398 2019
https://www.youtube.com/watch?v=ucvgAZG_IT4 1611770591 01/27/2021,13:03:11 1587 83 2040
https://www.youtube.com/watch?v=ucvgAZG_IT4 1611770764 01/27/2021,13:06:04 3014 95 2114
Likes+Dislikes was greater than views in some cases. Although that seems impossible, Youtube updates views slower, so they do not reflect real views at the time. For example:
https://www.youtube.com/watch?v=jw1_00uI02U 1611720090 01/26/2021,23:01:30 44404 924 8099
https://www.youtube.com/watch?v=jw1_00uI02U 1611720176 01/26/2021,23:02:56 44404 924 8118
https://www.youtube.com/watch?v=jw1_00uI02U 1611720260 01/26/2021,23:04:20 44404 925 8132
https://www.youtube.com/watch?v=jw1_00uI02U 1611720345 01/26/2021,23:05:45 44404 925 8151
https://www.youtube.com/watch?v=jw1_00uI02U 1611720429 01/26/2021,23:07:09 44404 925 8168
https://www.youtube.com/watch?v=jw1_00uI02U 1611720514 01/26/2021,23:08:34 44556 925 8184
https://www.youtube.com/watch?v=jw1_00uI02U 1611720599 01/26/2021,23:09:59 44556 925 8199
https://www.youtube.com/watch?v=jw1_00uI02U 1611720683 01/26/2021,23:11:23 44556 928 8219
https://www.youtube.com/watch?v=jw1_00uI02U 1611720768 01/26/2021,23:12:48 44556 928 8237
So it’s possible for likes and dislikes to accumulate while views stays the same. Eventually, views jumps up to better reflect reality.
The record of every time dislikes were removed is archived at https://pastebin.com/raw/F4ELDc4R
Grand Total -130321
130 Thousand dislikes were removed in a 24hr period!
And this is for the most popular US President of all time!
Enjoy 🙂 -Zoe
Update
This research was featured in a youtube video.
Code wh.sh:
# Zoe Phin, 2021/01/26
require() { sudo apt-get install -y curl gnuplot; }
stats() {
list=$(curl -s 'https://www.youtube.com/c/WhiteHouse/videos' | grep -o 'watch?v=[^"]*')
for i in $list; do
link="https://www.youtube.com/$i"
date=$(date +"%s %x,%R:%S" | tr -d '\n')
curl -s $link | tr -d ',' | tr '}' '\n' > new
grep -m 1 -o '[0-9,]* views' new > .views
grep -m 1 -o '[0-9,]* likes' new > .likes
grep -m 1 -o '[0-9,]* dislikes' new > .dislikes
paste .views .likes .dislikes | awk -vL=$link -vD="$date" '
NF==6{printf "%s %s %9s %9s %9s\n", L, D, $1, $3, $5}'
done
}
collect() {
while true; do
stats; sleep 75
done | tee -a data.csv
}
dislikes() {
list=$(cut -c1-44 data.csv | sort -u)
for vid in $list; do
echo $vid
grep ^$vid data.csv | awk '{
DiffD=$6-D
if (DiffD < 0) {
printf "%s %+7d\n", $3, DiffD
DLost+=DiffD
}
D=$6
} END {
printf "%-19s %7d\n", "Total", DLost
}'
echo
done | awk '{ print } $1=="Total" { GT+=$2 }
END { printf "%-17s %9d\n", "Grand Total", GT
}'
}
plot() {
list=$(cut -c1-44 data.csv | sort -u)
let n=0
for vid in $list; do
let n++
awk -vV=$vid '$1==V {print $2" "$4" "$5" "$6}' data.csv > plot.csv
echo "set term png size 740,740
set key top left
set grid xtics ytics
set title '$vid'
set timefmt '%s'
set xdata time
set xtics format '%Hh'
plot 'plot.csv' u 1:2 t 'Views' w lines lc rgb 'black' lw 2,\
'' u 1:3 t 'Likes' w lines lc rgb 'green' lw 2,\
'' u 1:4 t 'Dislikes' w lines lc rgb 'red' lw 2
" | gnuplot > example${n}.png
done
}
Run:
$ source wh.sh; require
Collect data:
$ collect
( press Ctrl-C when you're done )
Record of dislike drops:
$ dislikes
Generate charts:
$ plot
Version 2.0: Cleaner and grabs stats at random 60 to 120 second interval.
# Zoe Phin, v2.0 - 2021/02/20
require() { sudo apt-get install -y gnuplot; }
collect() {
url="https://www.youtube.com"
while true; do
for vid in $(wget -qO- "$url/c/WhiteHouse/videos" | grep -o 'watch?v=[^"]*'); do
wget -qO- $url/$vid | egrep -o '[0-9,]* (views|likes|dislikes)' |\
sed -n 1~2p | tr -d '[:alpha:],\n' |\
awk -vL=$url/$vid -vD="$(date +"%s %x,%R:%S" | tr -d '\n')" '
NF==3 { printf "%s %s %9s %9s %9s\n", L, D, $1, $2, $3 }'
done
sleep $(seq 60 120 | shuf | head -1)
done | tee -a data.csv
}
dislikes() {
for vid in $(cut -c1-44 data.csv | sort -u); do
awk -vv=$vid 'BEGIN { print v } $1==v {
Diff=$6-Last
if (Diff < 0) printf "%s %+7d\n", $3, Lost+=Diff
Last=$6
} END {
printf "%-19s %7d\n\n", "Total", Lost
}' data.csv
done | awk '{ print } $1=="Total" { GT+=$2 }
END { printf "%-17s %9d\n", "Grand Total", GT
}'
}
plot() { n=0
for vid in $(cut -c1-44 data.csv | sort -u); do let n++
awk -vv=$vid '$1==v {print $2" "$4" "$5" "$6}' data.csv > plot.csv
echo "set term png size 740,740
set key top left
set grid xtics ytics
set title noenhanced '$vid'
set xdata time
set timefmt '%s'
set xtics format '%Hh'
plot 'plot.csv' u 1:2 t 'Views' w lines lc rgb 'black' lw 2,\
'' u 1:3 t 'Likes' w lines lc rgb 'green' lw 2,\
'' u 1:4 t 'Dislikes' w lines lc rgb 'red' lw 2
" | gnuplot > example${n}.png
done
}
Thanks, I shall.
LikeLiked by 1 person
I would like to start by saying thank you VERY MUCH!!!!!.I printed out your graphs and use them religiously can you email the links on how to follow you everywhere across the board 😀 PLEASE
LikeLike
Thank you
LikeLike
This is some great info. I’ve noticed that 81M.org stopped tracking. Do you happen to know why? thanks again for the great info.
LikeLike
No idea. Maybe YT API stopped reportage? Maybe just for him?
LikeLike
Are you able to use the new extension that re-enables the dislikes? Return YouTube Dislike extension
LikeLike
If there is such an extension, it could only work by looking at published data. That means my code works, despite the HTML element’s visibility status.
LikeLike
Zoe,
I noticed that recently Quora stopped showing Up and Down votes. They now say that “X” people reacted to this topic.
The new meme “Make Orwell fiction again” is becoming more appropriate every day.
LikeLiked by 1 person
World wars happened after every telecommunications advance. Radio. TV. Internet? I hope it won’t be as violent this time around.
All these Big Tech firms are sowing the seeds of their own demise. The public will not tolerate partisan operators, and will abandon them en masse.
LikeLike
Dear Zoe, I just wanted to drop you a note. You are spunky! I really like that. Not only for this particular article, but for your abiotic arguments in the comments on the 2 yr old “Climate Scientists Try to Rescue Renewable Energies from ‘Planet of the Humans’” on WUWT. Fantastic. I’m not qualified to rebut the subject but I thought you made some great logical points. Responses were all “don’t you know?” , and I generally respect those commenters. It made me think of this gentleman:
https://en.wikipedia.org/wiki/Giordano_Bruno
Stay out of the flames! You know, the literal ones, It seems you are good with the metaphoric ones. lol.
Don’t go changin’. I’d love to see you on WUWT more.
I’ve added you to my bookmarks
LikeLiked by 1 person
Thank you for the entertaining comment.
LikeLike