As the Flash sunset nears the horizon, I thought now would be a good time to look back and reflect upon the golden days of the Flash-lit past. At the moment, I'm sure one question is burning a hole into the top of everyone's mind: was Snoop Dogg in the Megaupload song? What better way to honor Flash's memory than to investigate this riveting question?
Background
I'm sure you're all deeply familiar with the Megaupload song, but for those who've been living under a rock, let me illuminate you. We need to head all the way back to 2011, to the reign of Kim Dotcom. Many of you may know Kim Dotcom as the top Call of Duty player in the world. He was so in tune with the game, he could even tell when the New Zealand spy agency was tapping his internet by detecting the lag introduced.
Kim Dotcom also ran a little website called megaupload.com . Megaupload allowed users to upload files for other people to download later. As tends to happen on the Internet, people uploaded files they didn't quite own the rights to. A lot of the files were songs, and this made the music industry quite angry. Kim Dotcom was accused of aiding and abetting pirates, which is the reason for the aforementioned internet tapping.
It's a hit!
With the Megaupload vs. music industry feud in full swing, Kim Dotcom needed to plan his next move. He decided to beat them at their own game: he would release a song!
While most of the music industry hated Megaupload, there were a few members who either had never heard of it or didn't care. Among those defectors were some famous artists. Kim Dotcom managed to wrangle up a few such artists and put together a collab song to promote Megaupload. While most of the music industry was hating on Megaupload, here were stars literally singing its praises. And of course the song wouldn't be complete without a little performance from Kim Dotcom himself.
Of course the record labels were furious. They quickly sent a takedown request to YouTube, which took it down, but then put it back up. There were disputes about whether there were DMCA requests, copyright violations, contract violations, and who agreed to what. It's all very complicated, but that's not what I want to investigate.
Snoop Dogg
While reading the Wikipedia account of the incident, something didn't add up. Wikipedia claims Snoop Dogg appeared in an earlier version of the video, but I don't remember seeing Snoop Dogg.
This single sentence has three citations on Wikipedia. That means it's true right? Triply true? Doubleplus true? Or maybe it means it's controversial, and the citations are there to fend off Wikipedians intent on deleting the sentence.
I've definitely run into a number of false things on Wikipedia, but before this they've always been uncited. Obviously it's time to investigate those citations.
Megaupload posted a promo video for its online hosting and file transfer service on YouTube on Friday, and Universal Music Group quickly had it removed for alleged copyright violation. The video features Kanye West, Puff Daddy, Snoop Dogg, Jamie Foxx, Mary J. Blige, and others voicing, and even singing, their praise for the service.
-- CNET
So, it seems noteworthy, as TorrentFreak has revealed, that a large group of the biggest RIAA music stars have all performed on a song/video endorsing MegaUpload and how useful it is:
Among the stars taking part: P Diddy, Will.i.am, Alicia Keys, Kanye West, Snoop Dogg, Chris Brown, The Game, Mary J Blige , Kim Kardashian, Floyd Mayweather and Jamie Foxx.
Snoop Dogg, signed to EMI-owned Priority, uses it “…because it keeps the kids off the street,”
-- Techdirt
"Mega Song" went viral last week and and [sic] a number of other hip-hop stars like Will.i.am, Snoop Dogg, Kanye and, for some reason, Kim Kardashian singing the praises of the file-sharing site.
Kanye calls MegaUpload, "the fastest and safest way to send files," and Snoop says, "it keeps the kids off the street."
-- The Atlantic
CNET says Snoop Dogg was in the video. Techdirt says Snoop Dogg was in the song/video, and the wording could be interpreted to mean he was only in the song, not the video, or vice versa. The Atlantic has a typo, which I assume is supposed to actually say "and had". If I'm right about the typo, they say he was singing, but not necessarily in the video.
One hypothesis is that Snoop Dogg is in the song, but not the video. I don't hear him though. Then again I'm not a super fan.
Vanishing video?
So far I've been glossing over the phrase "earlier versions" in the quote from Wikipedia. One curious thing about this is that it's not directly supported by the citations. None of the citations mention there being an earlier version of the video. So when Wikipedia claims there was an earlier version, that is borderline original research, which is against Wikipedia's policies. It appears to me to fall under the synthesis category of banned behavior.
Was there an earlier version? This video was uploaded to YouTube on December 7. Wikipedia says the video was published December 9. I assume the YouTube video was private before December 9. Since the YouTube video was uploaded before it went public, it seems to me impossible for there to have been an earlier version.
That video has a 16:9 aspect ratio. There is a second version (called HD) of the video uploaded on December 17 with a 2.35:1 aspect ratio. Neither have Snoop Dogg. They're essentially the same, just cropped differently, with a different outro length, and occasionally slightly different colors.
I scoured the Internet for signs of this rumored earlier version, to no avail. I even ventured into the depths of Dailymotion! I did find tons of videos mentioning Snoop Dogg in the description, and even the title, but none with him actually in the video. These were all just reuploads of one of the previously mentioned two versions.
There are some references to YouTube videos that are now down. The Techdirt article and its archive.org archive (but not its archive.is archive) link to this video (archive.org archive). This article from The Guardian links to this video (archive.org archive). Both the archives of the YouTube pages contain "length_seconds": 253
in the source code, indicating the videos are 4:13 in length. That's the same length as the original video (technically the player says 4:12, but the source code says "lengthSeconds":"253"
).
Is it possible for an immensely popular "viral" video, discussed in many news articles, to just disappear from the Internet? It seems unbelievable. There are countless reuploads of the two known versions, how could there be no reuploads of the Snoop Dogg version? This is literally a song about downloading and uploading stuff, and no one downloaded it and reuploaded it? "The Internet never forgets" is a common refrain. Does the missing Snoop Dogg video disprove it?
The Wikipedia talk page has an intriguing discussion on the topic. Besides some confusion over whether Lil Jon is actually Snoop Dogg, some users are skeptical Snoop Dogg was ever there, while others say he was edited out.
The original video included a segment where Snoop Dogg (yes, Snoop Dogg) says something really (in my opinion) stupid, like "Megaupload, it keeps the kids off the streets". (Off the top of my head, might have slightly different wording) The later video re-uploaded onto Youtube by Kim Dotcom after the numerous takedowns no longer had that few-second segment. This might have been because the Youtube takedown agreements involved all videos that included a certain list of artists, including Snoop Dogg.
And here's a goldmine of pages which confirm Snoop (originally) saying that "kids off the street" line in the video: [18]
-- 李博杰
BTW, I looked at several versions of the song on YouTube and Vimeo, and none had the line "Megaupload, it keeps the kids off the streets" in it. A barnstar goes to anyone who can find a version with this line.
-- ♦IanMacM♦
Not only is Snoop Dogg missing, there's a bounty on his head!
The idea that Snoop Dogg was originally in it then edited out due to a takedown request as 李博杰 suggests is interesting. On the other hand, TorrentFreak wrote a series of articles following the song, the takedowns, the lawsuit, and other disputes surrounding the video. They don't mention Snoop Dogg being edited out. TorrentFreak is rabidly anti-censorship. They wouldn't stand idly by while Snoop Dogg is edited out from under their noses.
A closer look
In the first TorrentFreak article they have a Flash embed of http://www.megavideo.com/v/NFS30PZO3af1d1b1b22525c82e46ad07a24fd7612
. This won't load for ~three reasons:
-
Megaupload/Megavideo was shut down by the US DOJ.
-
It's an
http://
embed in anhttps://
page (mixed content!) -
The Flash sunset may mean you don't have Flash installed or enabled.
I checked out the archive.org archive of the Megavideo URL. That redirected here which downloaded an SWF file. Googling the end of that URL, I found references to this URL which is archived and links to an archived SWF file. I tried decompiling the two SWF files (mv_player2.swf
and mv_player3.swf
) as well as googling various strings I found. I didn't make much progress there. Interestingly for a "piracy" site, the SWF files had what almost looked like some simple DRM.
Then I got the idea to check the archive of the Megaupload homepage from December 10. Jackpot! The source contains a long list of celebrity images and video files that are fed into a Flash file.
carouselimages[1] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0000_kim_kardashian.png');
carouselimages[2] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0001_p_diddy.png');
carouselimages[3] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/MegaBadge.png');
carouselimages[4] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0002_will_i_am.png');
carouselimages[5] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0003_alicia_keys.png');
carouselimages[6] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0004_snoop_dog.png');
carouselimages[7] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0005_chris_brown.png');
carouselimages[8] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0006_kanye_west.png');
carouselimages[9] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0007_lil_john.png');
carouselimages[10] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0008_jamie_fox.png');
carouselimages[11] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0009_serena_williams.png');
carouselimages[12] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0010_russel_simmons.png');
carouselimages[13] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0011_bret_rattner.png');
carouselimages[14] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0012_floyd_mayweather.png');
carouselimages[15] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0013_estelle.png');
carouselimages[16] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0014_carmello_anthony.png');
carouselimages[17] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0015_ciara.png');
carouselimages[18] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0016_the_game.png');
carouselimages[19] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0017_mary_j_blige.png');
carouselimages[20] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0018_swizz_beatz.png');
carouselimages[21] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0019_kim_dotcom.png');
carouselimages[22] = newImage('https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/muimg/profiles/_0020_mini_kim.png');
flashvars.celebs = "1;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0000_kim_kardashian.png;Kim%20Kardashian;http%3A%2F%2Fcdn.megaupload.com%2FKim_Kardashian_HD.mov_high.flv|2;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0001_p_diddy.png;P%20Diddy;http%3A%2F%2Fcdn.megaupload.com%2FDiddy_HD.mov_high.flv|3;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2FMegaBadge.png;Mega%20Song;http%3A%2F%2Fcdn.megaupload.com%2FMegaTheme.flv;1|4;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0002_will_i_am.png;Will.i.am;http%3A%2F%2Fcdn.megaupload.com%2Fwill_i_am_HD.mov_high.flv|5;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0003_alicia_keys.png;Alicia%20Keys;http%3A%2F%2Fcdn.megaupload.com%2FAlicia_Keys_HD.mov_high.flv|6;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0004_snoop_dog.png;Snoop%20Dogg;http%3A%2F%2Fcdn.megaupload.com%2FSnoop_HD.mov_high.flv|7;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0005_chris_brown.png;Chris%20Brown;http%3A%2F%2Fcdn.megaupload.com%2FChris_Brown_HD.mov_high.flv|8;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0006_kanye_west.png;Kanye%20West;http%3A%2F%2Fcdn.megaupload.com%2FKanye_West_HD.mov_high.flv|9;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0007_lil_john.png;Lil%20John;http%3A%2F%2Fcdn.megaupload.com%2FLil_John_HD.mov_high.flv|10;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0008_jamie_fox.png;Jamie%20Foxx;http%3A%2F%2Fcdn.megaupload.com%2FJamie_Foxx_HD.mov_high.flv|11;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0009_serena_williams.png;Serena%20Williams;http%3A%2F%2Fcdn.megaupload.com%2FSerena_Williams_HD.mov_high.flv|12;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0010_russel_simmons.png;Russel%20Simmons;http%3A%2F%2Fcdn.megaupload.com%2FRussell_Simmons_HD.mov_high.flv|13;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0011_bret_rattner.png;Brett%20Rattner;http%3A%2F%2Fcdn.megaupload.com%2FBrett_Ratner_HD.mov_high.flv|14;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0012_floyd_mayweather.png;Floyd%20Mayweather;http%3A%2F%2Fcdn.megaupload.com%2FFloyd_Mayweather_HD.mov_high.flv|15;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0013_estelle.png;Estelle;http%3A%2F%2Fcdn.megaupload.com%2FEstelle_HD.mov_high.flv|16;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0014_carmello_anthony.png;Carmello%20Anthony;http%3A%2F%2Fcdn.megaupload.com%2FCarmelo_Anthony_HD.mov_high.flv|17;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0015_ciara.png;Ciara;http%3A%2F%2Fcdn.megaupload.com%2FCiara_HD.mov_high.flv|18;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0016_the_game.png;The%20Game;http%3A%2F%2Fcdn.megaupload.com%2FGame_HD.mov_high.flv|19;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0017_mary_j_blige.png;Mary%20J%20Blidge;http%3A%2F%2Fcdn.megaupload.com%2Fmaryj.mov.mp4_high.flv|20;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0018_swizz_beatz.png;Swizz%20Beatz;http%3A%2F%2Fcdn.megaupload.com%2FSwizzbeats.mp4_high.flv|21;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0019_kim_dotcom.png;Kim%20Dotcom;http%3A%2F%2Fcdn.megaupload.com%2FKimDotcom.flv|22;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0020_mini_kim.png;Kim%20Junior;http%3A%2F%2Fcdn.megaupload.com%2FKimmo.flv";
Split on | :
1;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0000_kim_kardashian.png;Kim%20Kardashian;http%3A%2F%2Fcdn.megaupload.com%2FKim_Kardashian_HD.mov_high.flv
2;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0001_p_diddy.png;P%20Diddy;http%3A%2F%2Fcdn.megaupload.com%2FDiddy_HD.mov_high.flv
3;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2FMegaBadge.png;Mega%20Song;http%3A%2F%2Fcdn.megaupload.com%2FMegaTheme.flv;1
4;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0002_will_i_am.png;Will.i.am;http%3A%2F%2Fcdn.megaupload.com%2Fwill_i_am_HD.mov_high.flv
5;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0003_alicia_keys.png;Alicia%20Keys;http%3A%2F%2Fcdn.megaupload.com%2FAlicia_Keys_HD.mov_high.flv
6;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0004_snoop_dog.png;Snoop%20Dogg;http%3A%2F%2Fcdn.megaupload.com%2FSnoop_HD.mov_high.flv
7;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0005_chris_brown.png;Chris%20Brown;http%3A%2F%2Fcdn.megaupload.com%2FChris_Brown_HD.mov_high.flv
8;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0006_kanye_west.png;Kanye%20West;http%3A%2F%2Fcdn.megaupload.com%2FKanye_West_HD.mov_high.flv
9;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0007_lil_john.png;Lil%20John;http%3A%2F%2Fcdn.megaupload.com%2FLil_John_HD.mov_high.flv
10;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0008_jamie_fox.png;Jamie%20Foxx;http%3A%2F%2Fcdn.megaupload.com%2FJamie_Foxx_HD.mov_high.flv
11;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0009_serena_williams.png;Serena%20Williams;http%3A%2F%2Fcdn.megaupload.com%2FSerena_Williams_HD.mov_high.flv
12;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0010_russel_simmons.png;Russel%20Simmons;http%3A%2F%2Fcdn.megaupload.com%2FRussell_Simmons_HD.mov_high.flv
13;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0011_bret_rattner.png;Brett%20Rattner;http%3A%2F%2Fcdn.megaupload.com%2FBrett_Ratner_HD.mov_high.flv
14;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0012_floyd_mayweather.png;Floyd%20Mayweather;http%3A%2F%2Fcdn.megaupload.com%2FFloyd_Mayweather_HD.mov_high.flv
15;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0013_estelle.png;Estelle;http%3A%2F%2Fcdn.megaupload.com%2FEstelle_HD.mov_high.flv
16;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0014_carmello_anthony.png;Carmello%20Anthony;http%3A%2F%2Fcdn.megaupload.com%2FCarmelo_Anthony_HD.mov_high.flv
17;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0015_ciara.png;Ciara;http%3A%2F%2Fcdn.megaupload.com%2FCiara_HD.mov_high.flv
18;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0016_the_game.png;The%20Game;http%3A%2F%2Fcdn.megaupload.com%2FGame_HD.mov_high.flv
19;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0017_mary_j_blige.png;Mary%20J%20Blidge;http%3A%2F%2Fcdn.megaupload.com%2Fmaryj.mov.mp4_high.flv
20;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0018_swizz_beatz.png;Swizz%20Beatz;http%3A%2F%2Fcdn.megaupload.com%2FSwizzbeats.mp4_high.flv
21;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0019_kim_dotcom.png;Kim%20Dotcom;http%3A%2F%2Fcdn.megaupload.com%2FKimDotcom.flv
22;http%3A%2F%2Fwwwstatic.megaupload.com%2Fmuimg%2Fprofiles%2F_0020_mini_kim.png;Kim%20Junior;http%3A%2F%2Fcdn.megaupload.com%2FKimmo.flv
Archive.org has the image of Snoop Dogg archived:
but unfortunately not the video of him (Snoop_HD.mov_high.flv
). The png image has a transparent background. It's funny now Megaupload misspelled "Dogg".
When loading the archived homepage, it loads all the images from the archive (because Javascript loads them), as well as carousel.swf
. When I then tell Chrome to "Run Flash this time" (Chrome blocks Flash by default) it attempts to load carousel_player.swf
which isn't in the archive and thus 404s. I don't understand why carousel_player.swf
doesn't load immediately, because both are loaded by very similar Javascript code, and the code loading carousel_player.swf
runs first. I think it might be due to visibility of the embeds in the html. carousel_player.swf
starts off 1x1 while carousel.swf
starts off 975x280.
I decompiled carousel.swf
with JPEXS. I didn't find anything amazing, but there is code to parse an XML file from a Flash param:
var request:URLRequest = new URLRequest();
request.url = this.root.loaderInfo.parameters.xmlurl == undefined?"carousel.xml":this.root.loaderInfo.parameters.xmlurl;
var loader:URLLoader = new URLLoader();
The source of the page shows what the param is:
var flashvars = {};
flashvars.xmlurl = "xml/carousel.php?r=132347953";
flashvars.header = "muimg/en/carousel_txt.png";
var params = {};
var attributes = {};
attributes.id = "carouselswf";
params.wmode = "transparent";
params.allowscriptaccess = "always";
swfobject.embedSWF("https://web.archive.org/web/20111210053056/http://wwwstatic.megaupload.com/carousel.swf", "carouselswf", "975", "280", "0", false, flashvars, params,attributes);
I couldn't find an archive of that exact xmlurl
, but there are actually a ton of archived URLs just differing in the number. The number seems to just be a cache buster, because the pages appear to have generally the same content, namely a list of URLs, celebrity names, and ids. I don't know why they would need a cache buster though. The number in fact appears to be a Unix timestamp divided by 10.
<celebs>
<celeb id="1" image="http://wwwstatic.megaupload.com/muimg/profiles/_0000_kim_kardashian.png" name="Kim Kardashian"></celeb>
<celeb id="2" image="http://wwwstatic.megaupload.com/muimg/profiles/_0001_p_diddy.png" name="P Diddy"></celeb>
<celeb id="3" image="http://wwwstatic.megaupload.com/muimg/profiles/MegaBadge.png" name="Mega Song"></celeb>
<celeb id="4" image="http://wwwstatic.megaupload.com/muimg/profiles/_0002_will_i_am.png" name="Will.i.am"></celeb>
<celeb id="5" image="http://wwwstatic.megaupload.com/muimg/profiles/_0003_alicia_keys.png" name="Alicia Keys"></celeb>
<celeb id="6" image="http://wwwstatic.megaupload.com/muimg/profiles/_0004_snoop_dog.png" name="Snoop Dogg"></celeb>
<celeb id="7" image="http://wwwstatic.megaupload.com/muimg/profiles/_0005_chris_brown.png" name="Chris Brown"></celeb>
<celeb id="8" image="http://wwwstatic.megaupload.com/muimg/profiles/_0006_kanye_west.png" name="Kanye West"></celeb>
<celeb id="9" image="http://wwwstatic.megaupload.com/muimg/profiles/_0007_lil_john.png" name="Lil Jon"></celeb>
<celeb id="10" image="http://wwwstatic.megaupload.com/muimg/profiles/_0008_jamie_fox.png" name="Jamie Foxx"></celeb>
<celeb id="11" image="http://wwwstatic.megaupload.com/muimg/profiles/_0009_serena_williams.png" name="Serena Williams"></celeb>
<celeb id="12" image="http://wwwstatic.megaupload.com/muimg/profiles/_0010_russel_simmons.png" name="Russell Simmons"></celeb>
<celeb id="13" image="http://wwwstatic.megaupload.com/muimg/profiles/_0011_bret_rattner.png" name="Brett Ratner"></celeb>
<celeb id="14" image="http://wwwstatic.megaupload.com/muimg/profiles/_0012_floyd_mayweather.png" name="Floyd Mayweather"></celeb>
<celeb id="15" image="http://wwwstatic.megaupload.com/muimg/profiles/_0013_estelle.png" name="Estelle"></celeb>
<celeb id="16" image="http://wwwstatic.megaupload.com/muimg/profiles/_0014_carmello_anthony.png" name="Carmelo Anthony"></celeb>
<celeb id="17" image="http://wwwstatic.megaupload.com/muimg/profiles/_0015_ciara.png" name="Ciara"></celeb>
<celeb id="18" image="http://wwwstatic.megaupload.com/muimg/profiles/_0016_the_game.png" name="The Game"></celeb>
<celeb id="19" image="http://wwwstatic.megaupload.com/muimg/profiles/_0017_mary_j_blige.png" name="Mary J Blige"></celeb>
<celeb id="20" image="http://wwwstatic.megaupload.com/muimg/profiles/_0018_swizz_beatz.png" name="Swizz Beatz"></celeb>
<celeb id="21" image="http://wwwstatic.megaupload.com/muimg/profiles/_0019_kim_dotcom.png" name="Kim Dotcom"></celeb>
<celeb id="22" image="http://wwwstatic.megaupload.com/muimg/profiles/_0020_mini_kim.png" name="Kim Junior"></celeb>
</celebs>
I also found an archive of carousel_txt.png
.
carousel.swf
also contains some code to load the celebrities' images, and when they're clicked, to dispatch play requests externally (apparently to carousel_player.swf
). There are also some embedded graphics with Megaupload-themed colors.
private function containerClickHandler(e:MouseEvent) : void
{
var cc:ContainerContent = ContainerContent(Sprite(e.currentTarget.getChildByName("contentHolder")).getChildAt(0));
if(ExternalInterface.available)
{
try
{
ExternalInterface.call("openvideo",cc.getID());
}
catch(e:Error)
{
}
}
}
On the first TorrentFreak article there are two interesting images:
These appear to be screenshots of the carousel.swf
. We can see the same image of Snoop Dogg, and the transparent background allowed it to be placed on top of embedded graphics. The difference between the two images is that the second one (counterintuitively named megaartist1.jpg
) has been scrolled right five times, while the first one is at the default scroll position. Also interesting to see is that the song itself is considered a "celebrity".
The two images have the sizes 475x100 and 475x98. Since `carousel.swf had the dimensions 975x280, the screenshots apparently were overaggressively vertically cropped, then scaled down to about half (or a little smaller).
A theory might be that only audio files were played (with the .flv
files having just audio, and openvideo
referring to some API rather than a visible video). I think it's clear it's actually video from this Javascript:
function openvideo(id)
{
document.getElementById('carouselplayerswf').width = '975';
document.getElementById('carouselplayerswf').height = '568';
document.getElementById('carousel_player_div').style.display='';
posPlayer();
// document.getElementById('fadeout3').style.display='';
document.getElementById('flashclosebtn').style.display='';
document.playerwindow=true;
document.getElementById('carouselplayerswf').openvideo(id);
document.getElementById('carouselswf').width='1';
document.getElementById('carouselswf').height='1';
}
That shows that when a celebrity was clicked, carousel_player.swf
opened with size 975x568, which is much too tall for a simple audio player; it must have played video. It's a good aspect ratio for video (~16:9, with 20 vertical pixels for a progress bar).
We can also see that Megaupload mixed spaces and tabs in their codebase (yuck!) and that they had commented out code in prod.
Conclusion
I believe there was never any song or music video with Snoop Dogg, but there was a Flash object (carousel.swf
) that let you click on Snoop Dogg's face to play a little video of him (Snoop_HD.mov_high.flv
through carousel_player.swf
) saying he likes Megaupload because it keeps kids off the street.
Since we know there was a video dedicated to Snoop Dogg, and a video dedicated to the song, and videos dedicated to a bunch of other celebrities, it seems clear to me the song video is the one we have around today. There never was a video with both Snoop Dogg and the song. All the news articles were confused because both videos were loaded from the same Flash object, although they had to be clicked on individually.
Now to see if the Wikipedia article will be changed. If it cites this blog post, I'll call that "inverse citogenesis". It's inverse because instead of Wikipedia citing an article citing an error from Wikipedia, it would be Wikipedia citing an article pointing out an error on Wikipedia.
Lessons learned
1. Donate to archive.org
This blog post is heavily indebted to archive.org for providing historical web pages. Please donate to archive.org. At the time of publication, there are still a few hours left in 2020 in the US so you can still get this into your 2020 tax deductions! If you have employer matching available, also avail yourself of that.
Interestingly, archive.org seemed to archive stuff loaded by Javascript (_0004_snoop_dog.png
), but not stuff loaded by Flash (Snoop_HD.mov_high.flv
). With Flash on its last breath this might bode well for future archiving. On the other hand, complex Javascript in websites seems to be getting more complicated over time, which is likely bad for archiving (such as cache busters). You win some you lose some. Although confusingly carousel.swf
is archived but not carousel_player.swf
. I think possibly archive.org simply doesn't save everything, they might just ignore some stuff. The archives are incomplete. They need money to store everything.
2. Stay off the street?
Snoop Dogg's favorite thing about Megaupload is that it keeps kids off the street. What else is keeping kids off the street these days? COVID. That's right, this wouldn't be a 2020 blog post without a mention of COVID.
Staying off the street to some degree is good. It prevents COVID transmission. Just make sure you get enough vitamin D. 41.6% of people in the US have vitamin D deficiency. If you made it this far into the blog post, you may be at high risk of vitamin D deficiency. There's a bit of evidence that vitamin D deficiency makes COVID worse. Vitamin D is pretty cheap so you might as well take some. Don't take too much though because it doesn't take much to start having negative health effects.
3. The Internet sometimes forgets
The Internet didn't forget the main video (and there are numerous reuploads), nor did it forget that Snoop Dogg was somehow involved.
The Internet did forget how Snoop Dogg was involved (prior to this blog post), and the video of him actually saying the quote has been lost.
To be safe, you should assume anything you want forgotten won't be forgotten and thus be careful what you write online (why am I writing this blog post?) You should also assume anything you don't want forgotten will be forgotten, so make backups (and donate to archive.org). This is a do what I say, not what I do moment, because my backups are not quite up to snuff.
4. FAKE NEWS!
ON THE INTERNET! Thought you ought to know.
I'm half joking. But it is a good idea to have a bit of skepticism, because some of what you read will be wrong. The Gell-Mann amnesia effect is something to keep in mind.
I should be extra careful saying the news articles are wrong, because I don't have definitive evidence Snoop Dogg wasn't in a video with the song. But I think there's a preponderance of the evidence.