




if (typeof(disqus_iframe_css) == 'undefined') {
	disqus_iframe_css = '';
}
if (typeof(disqus_def_name) == 'undefined') {
	disqus_def_name = '';
}
if (typeof(disqus_def_email) == 'undefined') {
	disqus_def_email = '';
}
if (typeof(disqus_skip_auth) == 'undefined') {
	disqus_skip_auth = false;
}
if (typeof(disqus_default_text) == 'undefined') {
	disqus_default_text = 'Type your comment here.';
}

(function(){
	
	var ie = document.uniqueID
		&& document.compatMode
		&& !window.XMLHttpRequest
		&& document.execCommand ;

	try {
		if(!!ie) {
			document.execCommand("BackgroundImageCache", false, true);
		}
	} catch(e) {};
})();

var Dsq = new function() {
	this.container = document.getElementById('dsq-content');
	this.jsonData = {"reactions": [], "has_more_reactions": false, "users": {"5252612e599e80ae4d3c250689940571": {"username": "Dilbert", "tumblr": "", "display_name": "Dilbert", "url": "http://disqus.com/guest/5252612e599e80ae4d3c250689940571/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "506a28794cbb277390b511969b3b45ef": {"username": "lindsay", "tumblr": "", "display_name": "lindsay", "url": "http://disqus.com/guest/506a28794cbb277390b511969b3b45ef/", "registered": false, "linkedin": "", "blog": "http://myspace.com", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "7c4455626754e1b9bc3be232b1024136": {"username": "Anonymous", "tumblr": "", "display_name": "Anonymous", "url": "http://disqus.com/guest/7c4455626754e1b9bc3be232b1024136/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "c7dd80a0709e989b6007e3ac0d2ac973": {"username": "dododo", "tumblr": "", "display_name": "dododo", "url": "http://disqus.com/guest/c7dd80a0709e989b6007e3ac0d2ac973/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "41bc84a0b8e386813b5e385decbdc58a": {"username": "Tobi", "tumblr": "", "display_name": "Tobi", "url": "http://disqus.com/guest/41bc84a0b8e386813b5e385decbdc58a/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "9578e85f0ae7891fa2eba7166740a65a": {"username": "pimpsaucekrew", "tumblr": "", "display_name": "pimpsaucekrew", "url": "http://disqus.com/guest/9578e85f0ae7891fa2eba7166740a65a/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "968ad15c0fbffb041a0e62fbe43891f2": {"username": "Techie-In-Distress", "tumblr": "", "display_name": "Techie-In-Distress", "url": "http://disqus.com/guest/968ad15c0fbffb041a0e62fbe43891f2/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "d139995df889ddf3351455f7c6573ca9": {"username": "PreScripted", "tumblr": "", "display_name": "PreScripted", "url": "http://disqus.com/guest/d139995df889ddf3351455f7c6573ca9/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "fed82ddf31aa42a4fe825ad3a9c366fd": {"username": "EdiciusTsaf", "tumblr": "", "display_name": "EdiciusTsaf", "url": "http://disqus.com/guest/fed82ddf31aa42a4fe825ad3a9c366fd/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "b350038b5854221d54d97d804f3863ff": {"username": "Hack_Vista", "tumblr": "", "display_name": "Hack_Vista", "url": "http://disqus.com/guest/b350038b5854221d54d97d804f3863ff/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "3a89412565787187af4b703f62e11a8c": {"username": "c0d3ster", "tumblr": "", "display_name": "c0d3ster", "url": "http://disqus.com/guest/3a89412565787187af4b703f62e11a8c/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "jeannea": {"username": "jeannea", "tumblr": "", "display_name": "jeannea", "url": "http://disqus.com/jeannea/", "registered": true, "linkedin": "", "blog": "", "remote_domain": null, "points": 1, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "be4cb43768194ba1ecf6045594f61f9a": {"username": "Pitchy", "tumblr": "", "display_name": "Pitchy", "url": "http://disqus.com/guest/be4cb43768194ba1ecf6045594f61f9a/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "f5a7de7614edf5f4d9ff6b43e539cb1b": {"username": "m44", "tumblr": "", "display_name": "m44", "url": "http://disqus.com/guest/f5a7de7614edf5f4d9ff6b43e539cb1b/", "registered": false, "linkedin": "", "blog": "http://myspace.com/m44rcis", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "99a3547faec3804bd52e212bef92df19": {"username": "Lore", "tumblr": "", "display_name": "Lore", "url": "http://disqus.com/guest/99a3547faec3804bd52e212bef92df19/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "27fa9e7401ade34c8d33153a285b5477": {"username": "May", "tumblr": "", "display_name": "May", "url": "http://disqus.com/guest/27fa9e7401ade34c8d33153a285b5477/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "81f6226787cdb3090ca128c780626c12": {"username": "BMacBionix", "tumblr": "", "display_name": "BMacBionix", "url": "http://disqus.com/guest/81f6226787cdb3090ca128c780626c12/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "cc7ff46ebf343b8276fdbb4c68e78ece": {"username": "Tormentid", "tumblr": "", "display_name": "Tormentid", "url": "http://disqus.com/guest/cc7ff46ebf343b8276fdbb4c68e78ece/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "919722a89eb1c65acfd1a3765b433fa4": {"username": "thealia", "tumblr": "", "display_name": "thealia", "url": "http://disqus.com/guest/919722a89eb1c65acfd1a3765b433fa4/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "357a20e8c56e69d6f9734d23ef9517e8": {"username": "lolwut", "tumblr": "", "display_name": "lolwut", "url": "http://disqus.com/guest/357a20e8c56e69d6f9734d23ef9517e8/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar32.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}}, "forum": {"use_media": false, "name": "Tech-Recipes", "streaming_realtime": false, "url": "tech-recipes", "allow_anon_post": true, "reactions_enabled": true, "reply_position": 0, "show_avatar": true, "allow_anon_votes": false, "disqus_auth_disabled": false}, "realtime_enabled": false, "request": {"username": "", "is_global_moderator": false, "sharing": {}, "sort": 4, "forum": "tech-recipes", "is_initial_load": true, "is_authenticated": false, "timestamp": "2009-12-18_12:55:48", "remote_domain": "", "page": 1, "is_moderator": false, "display_username": "", "points": null, "subscribe_on_post": 2, "moderator_can_edit": false, "is_remote": false, "is_verified": false, "missing_perm": null}, "realtime_paused": false, "posts": {"2770048": {"up_voted": false, "ip": "", "has_replies": false, "message": "Don't expect a reply on these forums quickly, your the first person to speak in this thread for over months lol<br><br>As in my thread upi there^^^^^^^^^^<br><br>i want someone with good computer knoiwledge to find the download path of the files, i went in and found some base url's which they could work with, i posted up there^^^ but i dunno which ones real:((<br><br>so plz help out pplz:)", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-04-01_13:45:20", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770049": {"up_voted": false, "ip": "", "has_replies": false, "message": "GoldWave does work! I believe it is the most convient way to record the music from <a href=\"http://MySpace.com\" rel=\"nofollow\">MySpace.com</a> that you like without all that XML hassle. First of all, download the program from <a href=\"http://goldwave.com\" rel=\"nofollow\">goldwave.com</a>. It is a free software. Next, open a new file. A window pops up showing you: number of channels, sample rating and file length. Make sure you know the length of the song and write it in. Then click \"ok\". Once that's over, go to options -&gt; control properties -&gt; select Stereo Mix. What this does is records music that plays on your computer and only that. Nothing else. So once that's over with, play the song you want from <a href=\"http://Myspace.com\" rel=\"nofollow\">Myspace.com</a> and then press the record button on your GoldWave. Wait until it's done and save the file as .wav or .mp3. It's that easy. Hope I was of help to you guys!<br><br>Bye!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-04-11_20:37:50", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770050": {"up_voted": false, "ip": "", "has_replies": false, "message": "&lt;ul id=\"quote\"&gt;&lt;h6&gt;Random wrote:&lt;/h6&gt;GoldWave does work! I believe it is the most convient way to record the music from <a href=\"http://MySpace.com\" rel=\"nofollow\">MySpace.com</a> that you like without all that XML hassle. First of all, download the program from <a href=\"http://goldwave.com\" rel=\"nofollow\">goldwave.com</a>. It is a free software. Next, open a new file. A window pops up showing you: number of channels, sample rating and file length. Make sure you know the length of the song and write it in. Then click \"ok\". Once that's over, go to options -&gt; control properties -&gt; select Stereo Mix. What this does is records music that plays on your computer and only that. Nothing else. So once that's over with, play the song you want from <a href=\"http://Myspace.com\" rel=\"nofollow\">Myspace.com</a> and then press the record button on your GoldWave. Wait until it's done and save the file as .wav or .mp3. It's that easy. Hope I was of help to you guys!<br><br>Bye!&lt;/ul&gt;<br><br>won't that just give you an mono recording? as you just record something that's played?<br>but anyways, anyone got some updates on how to capture the stream/files from myspace?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-05-10_11:02:07", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770027": {"up_voted": false, "ip": "", "has_replies": false, "message": "Wow! Great Recipe. I am 13, and fairly computer savvy and I have figured this out easily. Thank you so much!<br><br>This has made like a bit easier for me..", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-03_13:55:24", "killed": false, "user_key": "3a89412565787187af4b703f62e11a8c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770052": {"up_voted": false, "ip": "", "has_replies": false, "message": "Using Ethereal while listening to an mp3 on myspace, I was able to determine that their mp3s are stored on <a href=\"http://myspaceflash.vitalstreamcdn.com\" rel=\"nofollow\">myspaceflash.vitalstreamcdn.com</a><br><br>I was also able to find out the filename of the mp3 that was played: 46/10/37030164/37030164_f28dcd72.mp3<br><br>Now the problem is connecting the two together.  I was able to telnet to vitalstream port 80 but it disconnects me as soon as I try to issue a command. Perhaps it checks for referrer?  I'd be interested to know if anyone figures this out.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-05-13_22:07:04", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770053": {"up_voted": false, "ip": "", "has_replies": false, "message": "&lt;ul id=\"quote\"&gt;&lt;h6&gt;kraked wrote:&lt;/h6&gt;Using Ethereal while listening to an mp3 on myspace, I was able to determine that their mp3s are stored on <a href=\"http://myspaceflash.vitalstreamcdn.com\" rel=\"nofollow\">myspaceflash.vitalstreamcdn.com</a><br><br>I was also able to find out the filename of the mp3 that was played: 46/10/37030164/37030164_f28dcd72.mp3<br><br>Now the problem is connecting the two together.  I was able to telnet to vitalstream port 80 but it disconnects me as soon as I try to issue a command. Perhaps it checks for referrer?  I'd be interested to know if anyone figures this out.&lt;/ul&gt;<br>i was doing the same thing but make sure you look at the ports they used <br>i found that some were not port 80 standard for http<br><br>also i got the same info using artmoney and searching the memory of ie explorer...just look for key words like http or filename or be creative", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-05-25_19:34:06", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770054": {"up_voted": false, "ip": "", "has_replies": false, "message": "this is alot  work but im am sure this will work or not<br><br><br>go into drivers/etc/host<br>and modify by adding this<br><a href=\"http://01.presence.userplane.com\" rel=\"nofollow\">01.presence.userplane.com</a> 127.0.0.1<br>i got this as a the adress of where the xml file is located for downloading<br>this adress may change so i got it from an etheral pcap dump<br>like this<br>GET /crossdomain.xml HTTP/1.1<br><br>Host: <a href=\"http://01.presence.userplane.com\" rel=\"nofollow\">01.presence.userplane.com</a><br><br><br>ok now set up a web server on your machine ...<br>i usualy get one from planet source code<br>place a modifyed /crossdomain.xml <br>modify it to say the songs are downloadable..and this might work<br>considering the mp3's are on a difrent server", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-05-25_19:47:59", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770055": {"up_voted": false, "ip": "", "has_replies": false, "message": "okay so i go to <code>http&#58;//www.myspace.com/astaticlullaby</code><br> for  the song Hang em High.<br><br>let the page load before i start snooping/sniffing.<br><br>then, i enable my snooper/sniffer proggie<br><br>and click \"Standalone Player\"<br><br>the URLS i recieve are:<br><br><code>http&#58;//music.myspace.com/music/popup.cfm?num=0&amp;time=undefined&amp;fid=1394953&amp;uid=1<br>http&#58;//lads.myspace.com/music/player_popup.swf?d=MTM5NDk1M14xMTQ5MzM5NTE0&amp;n=aHR0cDovL211c2ljLm15c3BhY2UuY29tLw==&amp;u=LTE=&amp;s=MA==&amp;t=dW5kZWZpbmVk&amp;p=<br>http&#58;//music.myspace.com/crossdomain.xml<br>http&#58;//flash.vitalstream.com/crossdomain.xml<br>http&#58;//flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_<br>http&#58;//www.myspace.com/crossdomain.xml<br>http&#58;//www.myspace.com/services/media/mediaxmlprovider.ashx?b=1394953</code><br><br><br>i decide to go to <code>http&#58;//lads.myspace.com/music/player_popup.swf?d=MTM5NDk1M14xMTQ5MzM5NTE0&amp;n=aHR0cDovL211c2ljLm15c3BhY2UuY29tLw==&amp;u=LTE=&amp;s=MA==&amp;t=dW5kZWZpbmVk&amp;p=</code><br><br><br>and that makes the player only show up. i guess that narrows down what i actually need. heres what comes up:<br><br><code>http&#58;//flash.vitalstream.com/crossdomain.xml<br>http&#58;//flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_<br>http&#58;//www.myspace.com/crossdomain.xml<br>http&#58;//www.myspace.com/services/media/mediaxmlprovider.ashx?b=1394953</code><br><br><br>i then preceed to download those 4 urls in flashget<br><br>_definst_ contains:<br><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;FlashStream&gt;&lt;streamName&gt;test.flv&lt;/streamName&gt;&lt;appURL&gt;rtmp&#58;//69.88.137.51/myspace_vitalstream_com/_definst_&lt;/appURL&gt;&lt;/FlashStream&gt;</code><br><br><br>crossdomain(1).xml contains:<br><code>&lt;cross-domain-policy&gt;&lt;allow-access-from domain=&quot;*&quot; /&gt;&lt;/cross-domain-policy&gt;</code><br><br><br>crossdomain(2).xml contain:<br><code>&lt;cross-domain-policy&gt;<br>  &lt;allow-access-from domain=&quot;lads.myspace.com&quot; /&gt;<br>  &lt;allow-access-from domain=&quot;creative.myspace.com&quot; /&gt;<br>\t&lt;allow-access-from domain=&quot;pc-agranick.mscorp.com&quot; /&gt;<br>&lt;/cross-domain-policy&gt;</code><br><br><br>mediaxmlprovider.ashx contains:<br><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;iso-8859-1&quot;?&gt;<br>&lt;profile&gt;<br>&lt;timestamp&gt;&lt;!&#91;CDATA&#91;1149339161&#93;&#93;&gt;&lt;/timestamp&gt;<br>&lt;name&gt;&lt;!&#91;CDATA&#91;A Static Lullaby&#93;&#93;&gt;&lt;/name&gt;<br>&lt;playstoday&gt;&lt;!&#91;CDATA&#91;1589&#93;&#93;&gt;&lt;/playstoday&gt;<br>&lt;downloadedtoday&gt;&lt;!&#91;CDATA&#91;0&#93;&#93;&gt;&lt;/downloadedtoday&gt;<br>&lt;totalplays&gt;&lt;!&#91;CDATA&#91;827837&#93;&#93;&gt;&lt;/totalplays&gt;<br>&lt;autoplay&gt;&lt;!&#91;CDATA&#91;False&#93;&#93;&gt;&lt;/autoplay&gt;<br>&lt;allowadd&gt;&lt;!&#91;CDATA&#91;1&#93;&#93;&gt;&lt;/allowadd&gt;<br>&lt;playlist&gt;&lt;song bsid=&quot;14545455&quot; title=&quot;Hang 'Em High&quot; songid=&quot;0&quot; plays=&quot;1267&quot; comments=&quot;&quot; rate=&quot;&quot; downloadable=&quot;&quot;<br>imagename=&quot;http&#58;//x.myspace.com/images/music/musicblack.jpg&quot; imagedesc=&quot;&amp;lt;br&amp;gt; &quot; filename=&quot;35/94/1394953/1394953_64ee9697.mp3&quot; url=&quot;http&#58;//home.myspace.com/Services/Media/mediaHitCounter.ashx?i=MIGdBgorBgEEAYI3WAPloIGOMIGLBgorBgEEAYI3WAMBoH0wewIDAgABAgJmAwICAMAECGRW0t3CYwRlBBDDjpnmTlFvNGCTLm7ffJW6BFALMxprYlnGTCFAKbvNAoSUeukYzv39g%2bhE1FXp0z9VXtMX0y0Q3wSd3pDZZB8yJcdIG18aeQ1bpxQQv0gBXetIMcAsNXifpLZ9YBt5HQGZTA%3d%3d&quot; lyrics=&quot;&quot; purl=&quot;&quot;/&gt;&lt;song bsid=&quot;10505458&quot; title=&quot;The Art of Sharing Lovers&quot; songid=&quot;0&quot; plays=&quot;80264&quot; comments=&quot;&quot; rate=&quot;&quot; downloadable=&quot;&quot;<br>imagename=&quot;http&#58;//x.myspace.com/images/music/musicblack.jpg&quot; imagedesc=&quot;&amp;lt;br&amp;gt; &quot; filename=&quot;35/94/1394953/1394953_977ff610.mp3&quot; url=&quot;http&#58;//home.myspace.com/Services/Media/mediaHitCounter.ashx?i=MIGdBgorBgEEAYI3WAPloIGOMIGLBgorBgEEAYI3WAMBoH0wewIDAgABAgJmAwICAMAECN0vpkyGLUrSBBDFbxuUgNTBHHClRpclbWh6BFClfmpVmrpZFN%2f4YTP%2bPaDDvimhABMYRmuzJzKV%2b5PMFd0jQvS%2fVN949p44ToVOD%2b8GsZZMPdmHa1or0fnOeazo%2bvBsO5X5iqCkb2cczChlHw%3d%3d&quot; lyrics=&quot;&quot; purl=&quot;&quot;/&gt;&lt;song bsid=&quot;2646751&quot; title=&quot;Lipgloss And Letdown&quot; songid=&quot;0&quot; plays=&quot;85022&quot; comments=&quot;&quot; rate=&quot;&quot; downloadable=&quot;&quot;<br>imagename=&quot;http&#58;//c.myspace.com/BandSongs/35/94/1394953/bs2646751_m.jpg&quot; imagedesc=&quot;...And Don't Forget to Breathe&amp;lt;br&amp;gt;2003 Ferret Music&quot; filename=&quot;35/94/1394953/1394953_77784632.mp3&quot; url=&quot;http&#58;//home.myspace.com/Services/Media/mediaHitCounter.ashx?i=MIGdBgorBgEEAYI3WAPloIGOMIGLBgorBgEEAYI3WAMBoH0wewIDAgABAgJmAwICAMAECP7jTgOVGlGwBBAsJOegf1tCWI3XPFIKAU2pBFCTEEhff4bPlju0krYqLL%2fTtxYjT17ghk84IvM4e1EE9WPIzkqAI%2foZO5HAEBcgl6KvC5TecAWpqVSkrihvFjGuKOwol0ecwSp6WpIthcGR6g%3d%3d&quot; lyrics=&quot;&quot; purl=&quot;&quot;/&gt;&lt;song bsid=&quot;2646906&quot; title=&quot;The Shooting Star That&quot; songid=&quot;0&quot; plays=&quot;102815&quot; comments=&quot;&quot; rate=&quot;&quot; downloadable=&quot;&quot;<br>imagename=&quot;http&#58;//c.myspace.com/BandSongs/35/94/1394953/bs2646906_m.jpg&quot; imagedesc=&quot;...And Don't Forget to Breathe&amp;lt;br&amp;gt;2003 Ferret Music&quot; filename=&quot;35/94/1394953/1394953_8677fdc3.mp3&quot; url=&quot;http&#58;//home.myspace.com/Services/Media/mediaHitCounter.ashx?i=MIGdBgorBgEEAYI3WAPloIGOMIGLBgorBgEEAYI3WAMBoH0wewIDAgABAgJmAwICAMAECBOUOumliD88BBCsiwEN8TLRXzFyy%2bkanGSXBFBrU%2fJm%2fWNMItDJRA3fL0HirgcvtCIrcTVk1l9CQryW3%2f7t5ZBXgBah6pdGiaj5ntQRmU7Kw0LzKIMOQMo97OoKzQNK7Sh6W4Bf6fvStYyIKQ%3d%3d&quot; lyrics=&quot;&quot; purl=&quot;&quot;/&gt;<br>&lt;/playlist&gt;<br>&lt;/profile&gt;</code><br><br><br>so the song name is: <code>35/94/1394953/1394953_64ee9697.mp3</code><br><br><br>i try various urls like:<br><code><br>mms&#58;//69.88.137.51/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>rtsp&#58;//69.88.137.51/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>http&#58;//69.88.137.51/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>mms&#58;//flash.vitalstream.com/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>rtsp&#58;//flash.vitalstream.com/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>http&#58;//flash.vitalstream.com/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>mms&#58;//listen-02i.sitestream.cc/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>rtsp&#58;//listen-02i.sitestream.cc/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>http&#58;//listen-02i.sitestream.cc/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>http&#58;//myspaceflash.vitalstreamcdn.com/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>rtsp&#58;//myspaceflash.vitalstreamcdn.com/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>mms&#58;//myspaceflash.vitalstreamcdn.com/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>mms&#58;//myspacem-026.vo.llnwd.net/35/94/1394953/1394953_64ee9697.mp3<br>35/94/1394953/1394953_64ee9697.mp3<br>http&#58;//myspacem-026.vo.llnwd.net/35/94/1394953/1394953_64ee9697.mp3<br>35/94/1394953/1394953_64ee9697.mp3<br>http&#58;//flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>mms&#58;//flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>rtsp&#58;//flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br></code><br><br><br>and the only one that works is:<br><br><code>http&#58;//flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3</code><br><br><br>it gives me a small file mp3 file that contains no mp3 or anything but has:<br><br><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;FlashStream&gt;&lt;streamName&gt;test.flv&lt;/streamName&gt;&lt;appURL&gt;rtmp&#58;//69.88.133.139/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3&lt;/appURL&gt;&lt;/FlashStream&gt;</code><br><br><br>i don't know if this means anything. so now i am messing around with:<br><br><code>rtmp&#58;//69.88.133.139/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3</code><br><br><br>and nothing works...im stuck.....anyone have any ideas! plz help us all!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-06-03_09:09:59", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770056": {"up_voted": false, "ip": "", "has_replies": false, "message": "i  followed everything you outlined to a small T and it no workey, possibly this doors been closed?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-06-13_19:39:23", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770057": {"up_voted": false, "ip": "", "has_replies": false, "message": "Yeah, I've not been able to get this to work for a while now.<br><br><strong>buckley</strong> exploration is some strong work.  I'm just sorry that it has yielded anything yet.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-06-14_00:15:39", "killed": false, "user_key": "b350038b5854221d54d97d804f3863ff", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770058": {"up_voted": false, "ip": "", "has_replies": false, "message": "can someone help me?? both methods aren't working for me and i need to download 2 songs from my space, can someone do it for me??<br><br><a href=\"http://www.myspace.com/alexbandmusic\" rel=\"nofollow\">www.myspace.com/alexbandmusic</a>  &lt; the songs are please and tonight<br><br><a href=\"mailto:angyroach@gmail.com\" rel=\"nofollow\">angyroach@gmail.com</a><br><br>i believe the song paths are these:<br><br>83/88/83918838/83918838_219cfd65.mp3<br><br>83/88/83918838/83918838_d7fc07f0.mp3<br><br>but y'all know <a href=\"http://musicstream.myspace.com\" rel=\"nofollow\">musicstream.myspace.com</a> isn't working so please if ya found some method lemme know", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-06-28_10:32:18", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770059": {"up_voted": false, "ip": "", "has_replies": false, "message": "&lt;ul id=\"quote\"&gt;&lt;h6&gt;angyroach wrote:&lt;/h6&gt;can someone help me?? both methods aren't working for me and i need to download 2 songs from my space, can someone do it for me??<br><br><a href=\"http://www.myspace.com/alexbandmusic\" rel=\"nofollow\">www.myspace.com/alexbandmusic</a>  &lt; the songs are please and tonight<br><br><a href=\"mailto:angyroach@gmail.com\" rel=\"nofollow\">angyroach@gmail.com</a><br><br>i believe the song paths are these:<br><br>83/88/83918838/83918838_219cfd65.mp3<br><br>83/88/83918838/83918838_d7fc07f0.mp3<br><br>but y'all know <a href=\"http://musicstream.myspace.com\" rel=\"nofollow\">musicstream.myspace.com</a> isn't working so please if ya found some method lemme know&lt;/ul&gt;<br><br>I really want those songs too!<br>Can anyone help me too?<br>I would be so thankfull!<br><br><a href=\"mailto:willeke05@hotmail.com\" rel=\"nofollow\">willeke05@hotmail.com</a><br><br>Thanks.<br><br>Love,<br>Willeke.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-06-29_23:49:45", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770060": {"up_voted": false, "ip": "", "has_replies": false, "message": "Did you guys even bother to read posts?<br><br>Lore<br>Newbie<br><br><br><br>Joined: Dec 31, 2005<br>Posts: 7<br>\t\tPosted: Sat Jan 07, 2006 11:52 am    Post subject: \t <br><br>It appears that Myspace has now fixed the hole. I believe they switched over to an rtmp stream, which, as far as I know, cannot be captured.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-06-30_05:47:08", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770061": {"up_voted": false, "ip": "", "has_replies": false, "message": "Slightly advanced and also assuming you have the equipment and software the easiest and most direct way to get anysong from any player anytime is to just directly record it live from your soundcard. Using a software like cool-edit2.0 just hook a regular headphone stereo 1.8mm cable from your soundcard output to your mic input. Turn down the wave volume on your soundcard, hit record and then push play on whatever player is playing the music. Then slowly turn up the volume until u have a good level, (high as possible without clipping). To those who this makes any sense to probably already know this is primitive but it works, they also probably knew this, so I really don't know why I posted this.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-07-12_17:53:58", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770062": {"up_voted": false, "ip": "", "has_replies": false, "message": "i know this asking a lot, but i have no idea with computers and i want tis one song desperately, and if anyone can figure out how to do it for me, you wud be a heroe... i read all wat ppl have said, and i still dont understand, and/or don't have the available programs... <br><br>the song i want is on this page: <a href=\"http://www.myspace.com/chadfischermusic\" rel=\"nofollow\">http://www.myspace.com/chadfischermusic</a>  <br><br>and see the 1st one, motorcycle RideGard...<br><br>so if anyone could be able to do that and send to the email of <a href=\"mailto:justinallison@hotmail.com\" rel=\"nofollow\">justinallison@hotmail.com</a><br><br>please, please :)", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-07-13_03:38:44", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770063": {"up_voted": false, "ip": "", "has_replies": false, "message": "There's no such thing as closing all the doors.<br><br>1. Some mp3's end up in your browser's cache or the Flash application data directory, ready for the taking.<br><br>2. If they don't, using ethereal, start recording, then load the myspace player. It's pretty obvious which packets are the audio stream since there are a shitload of them from one IP. Filter out the rest and use ethereal's decode TCP stream option to dump the incoming packets to a file. Now you've got the mp3, but it's wrapped up in a Flash stream container. Still, it'll play, sort of, in any decent mp3 player (you'll hear lots of pops and clicks because of the extra shit that's part of the container). So now all you need to do is a bit of analysis of the dumped stream in a hex editor to strip out the container elements, leaving the pristine mp3. I did it once - took me a fucking day and a bunch of perl coding though, mostly because I taught myself perl to do it. I kept my perl scripts if anyone's interested, but you probably won't be able to use them.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-07-16_10:33:16", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770064": {"up_voted": false, "ip": "", "has_replies": false, "message": "to fubarbundy2<br><br>could you tell me how to filter tha packets in ethereal, I am a new ethereal user, so i couldn't really tell how to do it. Thanks", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-07-26_05:32:45", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770065": {"up_voted": false, "ip": "", "has_replies": false, "message": "is there anyway to increase my myspace music players play count?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-07-30_15:03:25", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770066": {"up_voted": false, "ip": "", "has_replies": false, "message": "Browsing around my temporary internet files, and looking at the mediaxmlprovider file, leads me to conclude that the mp3s are located at:<br><br><a href=\"http://myspacem-xxx.vo.llnwd.net/*.mp3?e=**&amp;h=***\" rel=\"nofollow\">http://myspacem-xxx.vo.llnwd.net/*.mp3?e=**&amp...</a><br><br>where xxx = a 3-digit number  and<br>* = the mp3 filename found in the mediaxmlprovider file.<br><br>But I don't know how e= and h= are determined.<br><br>For example, the link to download Dragonforce's \"Through the Fire and Flames\" (which is available on their myspace at <a href=\"http://myspace.com/dragonforce\" rel=\"nofollow\">http://myspace.com/dragonforce</a>) is:<br><code>http&#58;//myspacem-510.vo.llnwd.net/01/56/7326510/7326510_f505d1d9.mp3?e=1154425508&amp;h=a4ee13b3010fb6760c4966ec3fc148e2</code><br><br><br>whereas <code>http&#58;//myspacem-510.vo.llnwd.net/01/56/7326510/7326510_f505d1d9.mp3</code><br> doesn't work.<br><br>How would you figure out what e and h equal?  Of course, you would also have to figure out the 3-digit number, but there are only 1,000 different possibilities, and the correct one can be found easily (no matter how long it takes to go through all 1,000 possibilites).  This would need to be done after finding out what e and h equal.  Again, how would one go about doing that?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-07-31_06:26:00", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770051": {"up_voted": false, "ip": "", "has_replies": false, "message": "I've tried all of your methods to extract the audio from this one myspace site..but no luck..its like this artist has all the angles covered...none of the links work, u cant use save flash plug-ins to save the swf. file..and u cant save the page as when u use IE. The link is <a href=\"http://profile.myspace.com/index.cfm?fuseaction=user.viewprofile&amp;friendid=68853727\" rel=\"nofollow\">http://profile.myspace.com/index.cfm?fuseaction...</a><br><br>If you can somehow solve this, please let me know. Thanks!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-05-11_16:35:55", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770068": {"up_voted": false, "ip": "", "has_replies": false, "message": "those perl scripts would be nice...<br><br>someone posted a program to dump any data on port 1935 using libpcap library... to make it easier than using tcpdump... but you will need a compiler and stuff to make such program :)<br><br><a href=\"http://home.twmi.rr.com/compn/rtmp.cpp\" rel=\"nofollow\">http://home.twmi.rr.com/compn/rtmp.cpp</a><br>for the source code<br><br><a href=\"http://outflux.net/blog/archives/2005/02/16/hitchhikers-guide-to-reverse-engineering/\" rel=\"nofollow\">http://outflux.net/blog/archives/2005/02/16/hit...</a><br><br>and a streaming media recording forum<br><br><a href=\"http://p069.ezboard.com/fstreemeboxvcrfrm1\" rel=\"nofollow\">http://p069.ezboard.com/fstreemeboxvcrfrm1</a>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-08-08_15:46:17", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770069": {"up_voted": false, "ip": "", "has_replies": false, "message": "&lt;ul id=\"quote\"&gt;&lt;h6&gt;GVOLTT wrote:&lt;/h6&gt;Browsing around my temporary internet files, and looking at the mediaxmlprovider file, leads me to conclude that the mp3s are located at:<br><br><a href=\"http://myspacem-xxx.vo.llnwd.net/*.mp3?e=**&amp;h=***\" rel=\"nofollow\">http://myspacem-xxx.vo.llnwd.net/*.mp3?e=**&amp...</a><br><br>where xxx = a 3-digit number  and<br>* = the mp3 filename found in the mediaxmlprovider file.<br><br>But I don't know how e= and h= are determined.<br><br>For example, the link to download Dragonforce's \"Through the Fire and Flames\" (which is available on their myspace at <a href=\"http://myspace.com/dragonforce\" rel=\"nofollow\">http://myspace.com/dragonforce</a>) is:<br><code>http&#58;//myspacem-510.vo.llnwd.net/01/56/7326510/7326510_f505d1d9.mp3?e=1154425508&amp;h=a4ee13b3010fb6760c4966ec3fc148e2</code><br><br><br>whereas <code>http&#58;//myspacem-510.vo.llnwd.net/01/56/7326510/7326510_f505d1d9.mp3</code><br> doesn't work.<br><br>How would you figure out what e and h equal?  Of course, you would also have to figure out the 3-digit number, but there are only 1,000 different possibilities, and the correct one can be found easily (no matter how long it takes to go through all 1,000 possibilites).  This would need to be done after finding out what e and h equal.  Again, how would one go about doing that?&lt;/ul&gt;<br><br>Looking through my firefox logs, I think I found where to get the values<br>about:cache-entry?client=HTTP&amp;sb=1&amp;key=http://www.myspace.com/services/media/musicplayerxml.ashx?b=11017444&amp;s=15537382<br><br>however, adding that with the rest of the link you posted, still doesn't work.  Leaving me to believe the \"token\" id number plays a part in that in some way..  I didn't get e and h for my link, I got b and s.  So those values are different off the bat.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-08-10_03:43:29", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770070": {"up_voted": false, "ip": "", "has_replies": false, "message": "For Mac users, here\u2019s how to record any audio from any player into any recorder:<br>1. Get the free Soundflower and Detour, and install both. (I do not support piracy, so find them yourself.) Soundflower is a virtual audio device, and Detour is a program that lets you set different output devices and volume levels for each app.<br>2. Using Detour, set the player or web browser to output to Soundflower.<br>3. Set the recorder to record (input) from Soundflower.<br>4. Press play in the player and record in the recorder.<br>5. When the audio is done, stop recording. It may help to use Soundflowerbed to split the audio to your speakers/headphones, so you can hear it while recording.<br><br>Apologies if this has been suggested already, or if a better free method has been mentioned. I only read a few recent posts.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-08-14_17:33:31", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770071": {"up_voted": false, "ip": "", "has_replies": false, "message": "&lt;ul id=\"quote\"&gt;&lt;h6&gt;Frungi wrote:&lt;/h6&gt;For Mac users, here\u2019s how to record any audio from any player into any recorder:<br>1. Get the free Soundflower and Detour, and install both. (I do not support piracy, so find them yourself.) Soundflower is a virtual audio device, and Detour is a program that lets you set different output devices and volume levels for each app.<br>2. Using Detour, set the player or web browser to output to Soundflower.<br>3. Set the recorder to record (input) from Soundflower.<br>4. Press play in the player and record in the recorder.<br>5. When the audio is done, stop recording. It may help to use Soundflowerbed to split the audio to your speakers/headphones, so you can hear it while recording.<br><br>Apologies if this has been suggested already, or if a better free method has been mentioned. I only read a few recent posts.&lt;/ul&gt;<br><br><br>hey frungi i got i tryed all this but i got stuck on step 4.<br>press play in the player and record in the recorder??<br>is this on detour or sunflower cause i coudnt find it please help thanks", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-01_17:31:02", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770072": {"up_voted": false, "ip": "", "has_replies": false, "message": "&lt;ul id=\"quote\"&gt;&lt;h6&gt;smartuser wrote:&lt;/h6&gt;I decompiled the SWF of the Music player and analysied the actionscript code. <br><br>The 2 url's i found are -  rtmp://flash.myspace.com/mp3test (i think this would be were they store the music)<br><br>and - <a href=\"http://flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_\" rel=\"nofollow\">http://flash.vitalstream.com/flashgen.cgi?sname...</a>  (i doubght this is the one but may be)<br><br>So i think we have our url's and if im right a song (Im using One way ticket to hell and back - The darkness) would be located at somthin like -<br><br>rtmp://flash.myspace.com/84/94/8864948/8864948_620a6a27.mp3<br><br>There is a little program to play rtmp streams here - <a href=\"http://www.download.com/FLV-Player/3000-2139_4-10467082.html\" rel=\"nofollow\">http://www.download.com/FLV-Player/3000-2139_4-...</a><br><br>so we can test it to get a correct URL, then we'll find somthin to downlaod with, but we must find the right urls first!!!!!!!!<br>PLZPLZ HELP!!!&lt;/ul&gt;<br>I tried using the URL:<br><code>http&#58;//flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_/48/62/2102684/2102684_31af234e.mp3</code><br><br><br>which is to try and get the song \"My Chemical Romance - Welcome To The Black Parade\"<br><br>What happen when i entered it in my browser, it displayed an XML source that contained the text of annother url, an rtmp url, that begins with an ip number that changes every time I click refresh<br><br>for example, one of the urls that is dispalyed is<br>rtmp://69.88.153.68/myspace_vitalstream_com/_definst_/48/62/2102684/2102684_31af234e.mp3<br><br>I think I am on to something... but nothing will play, not even in VLC media player.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-02_14:17:51", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770073": {"up_voted": false, "ip": "", "has_replies": false, "message": "&lt;ul id=\"quote\"&gt;&lt;h6&gt;2rei wrote:&lt;/h6&gt;hey frungi i got i tryed all this but i got stuck on step 4.<br>press play in the player and record in the recorder??<br>is this on detour or sunflower cause i coudnt find it please help thanks&lt;/ul&gt;<br>You\u2019ve installed Detour and Soundflower, right? Let\u2019s say you\u2019re trying to record something that plays in a web browser. Set your recording program to take input from Soundflower instead of your microphone. Then using Detour, set the web browser to output to Soundflower instead of your speakers. Press play in the web browser and start recording.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-03_18:43:15", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770074": {"up_voted": false, "ip": "", "has_replies": false, "message": "A program has been compiled which downloads any mp3 from any MySpace artist.  Figuring out the RTMP protocol wouldn't be worth it.<br><br>The development page is here: <a href=\"http://www.mouseindustries.com/gopher/\" rel=\"nofollow\">http://www.mouseindustries.com/gopher/</a>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-09-05_20:59:51", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770075": {"up_voted": false, "ip": "", "has_replies": false, "message": "Thnaks a lot, works fine :)", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-10-16_19:13:56", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770076": {"up_voted": false, "ip": "", "has_replies": false, "message": "I just tried the mp3 gopher... It's broken right now...", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-05_02:05:52", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770077": {"up_voted": false, "ip": "", "has_replies": false, "message": ":x  Ugh. I did everything right, got the .mp3 thing. put the musicstream thing in the address bar.. then added the .mp3 thing to it, but all it says is this page cannot be displayed.. or just says page loading and never does shit. haha help meee??  :( <br><br><a href=\"mailto:hello_mr_matty@yahoo.com\" rel=\"nofollow\">hello_mr_matty@yahoo.com</a> &lt;&lt; my e-mail.  :P", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-11-08_11:47:20", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770078": {"up_voted": false, "ip": "", "has_replies": false, "message": "I've gotten to this point.<br><br><a href=\"http://cache03-music01.myspacecdn.com/22/std_68c16ef5dd40723bf21815f26ea56ff5.mp3\" rel=\"nofollow\">http://cache03-music01.myspacecdn.com/22/std_68...</a><br><br>The XML from the above poster even tells me that's the file name, and where to download it.  However, in the end, it says \"Access Denied.\"<br><br>Anything anyone can do?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-03-03_17:45:32", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770079": {"up_voted": false, "ip": "", "has_replies": false, "message": "I made a program that uses this method to get the files. its written in vb, code is included.<br><br><a href=\"http://rapidshare.com/files/40469128/mySpace.zip.html\" rel=\"nofollow\">http://rapidshare.com/files/40469128/mySpace.zi...</a><br><br>It doesnt recognize download links in the xml-files but its not hard to include this.<br><br>The Code is uncommented and i tried some other stuff before i got to this so there are probably some unused variables.<br><br>I hope someone can use it.<br><br>btw the program needs the mswinsck.ocx component (included) and downloads the files using wininet.dll . it won't work on vista.<br><br>sry4bad english etc.<br><br>EDIT: some parts of the programs are in german, sry 4 this, too", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-07-01_09:37:24", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770080": {"up_voted": false, "ip": "", "has_replies": false, "message": "Im trying to find this code for my band page the band page is <a href=\"http://www.myspace.com/whizdom\" rel=\"nofollow\">www.myspace.com/whizdom</a> and can't figure out how to get the \"D=\" because my code says N and keeps coming up undefined again my webpage is <a href=\"http://www.myspace.com/whizdom\" rel=\"nofollow\">www.myspace.com/whizdom</a> been trying to find this code for months can some one please help", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2007-09-05_01:13:41", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "4624174": {"up_voted": false, "ip": "", "has_replies": false, "message": "it was easier to use realplayer to download them but now you cant<br>best bet is to download free zilla music and that will get the new ones on the new player :)", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2008-12-25_03:33:34", "killed": false, "user_key": "81f6226787cdb3090ca128c780626c12", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "11 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "6896402": {"up_voted": false, "ip": "", "has_replies": false, "message": "great except FF gives random names to files in it's cache and where do I even find IE's cache...?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-03-05_04:09:23", "killed": false, "user_key": "f5a7de7614edf5f4d9ff6b43e539cb1b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "9 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "20354150": {"up_voted": false, "ip": "", "has_replies": false, "message": "Okay i just want to listen to my songs on myspace. But the thing says downlaod flash player and i do but it keeps like saying download failed and its making me really mad ive done it like Ten hundred times. i need something that will like help me listen to my music with out downloading anything...???", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-10-18_17:34:33", "killed": false, "user_key": "jeannea", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": false, "votable": true, "date": "2 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "10644640": {"up_voted": false, "ip": "", "has_replies": false, "message": "Because they changed something again and all the new files won\u00b4t download in HQ again ... someone figured a way yet?!?", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-06-09_03:48:26", "killed": false, "user_key": "41bc84a0b8e386813b5e385decbdc58a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 10429558, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770067": {"up_voted": false, "ip": "", "has_replies": false, "message": "&lt;ul id=\"quote\"&gt;&lt;h6&gt;GVOLTT wrote:&lt;/h6&gt;Browsing around my temporary internet files, and looking at the mediaxmlprovider file, leads me to conclude that the mp3s are located at:<br><br><a href=\"http://myspacem-xxx.vo.llnwd.net/*.mp3?e=**&amp;h=***\" rel=\"nofollow\">http://myspacem-xxx.vo.llnwd.net/*.mp3?e=**&amp...</a><br><br>where xxx = a 3-digit number  and<br>* = the mp3 filename found in the mediaxmlprovider file.<br><br>But I don't know how e= and h= are determined.<br><br>For example, the link to download Dragonforce's \"Through the Fire and Flames\" (which is available on their myspace at <a href=\"http://myspace.com/dragonforce\" rel=\"nofollow\">http://myspace.com/dragonforce</a>) is:<br><code>http&#58;//myspacem-510.vo.llnwd.net/01/56/7326510/7326510_f505d1d9.mp3?e=1154425508&amp;h=a4ee13b3010fb6760c4966ec3fc148e2</code><br><br><br>whereas <code>http&#58;//myspacem-510.vo.llnwd.net/01/56/7326510/7326510_f505d1d9.mp3</code><br> doesn't work.<br><br>How would you figure out what e and h equal?  Of course, you would also have to figure out the 3-digit number, but there are only 1,000 different possibilities, and the correct one can be found easily (no matter how long it takes to go through all 1,000 possibilites).  This would need to be done after finding out what e and h equal.  Again, how would one go about doing that?&lt;/ul&gt;<br><br>Weird; the first link worked in IE yesterday, but not in Firefox today.  So, in conclusion, this probably can only be achieved in IE.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-08-01_11:45:30", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "8768523": {"up_voted": false, "ip": "", "has_replies": false, "message": "This way is long (just use a packet sniffer, no need to open and browse your cache) and doesn't work. The directory Myspace stores mp3s on is protected. Myspace uses the rmtp (flash specific) protocol to retrieve the mp3 with it's player. http access is forbidden.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-04-28_04:48:53", "killed": false, "user_key": "357a20e8c56e69d6f9734d23ef9517e8", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "7 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "10429558": {"up_voted": false, "ip": "", "has_replies": true, "message": "Why so complicated? -  <a href=\"http://file2hd.com/\" rel=\"nofollow\">http://file2hd.com/</a>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-06-03_09:49:52", "killed": true, "user_key": "5252612e599e80ae4d3c250689940571", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "6 months ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "4932115": {"up_voted": false, "ip": "", "has_replies": false, "message": "hey i need some BIG help people.<br>Since myspace reformatted their whole music system and there's no download link to help you with the first step, i've been completely put in the dark to do any of the above, I cant find the XML file.<br>If anyone can help me, contact me at <a href=\"mailto:carlosemeza1@aol.com\" rel=\"nofollow\">carlosemeza1@aol.com</a><br>If not then can you take a look at myspace.com/hiscomingday<br>and see if you can find the XML file?<br>I've been at this for 6-7 hours and i'm gettting stressed out so if anyone can help just contact me or maybe send me a video on step by step procedure so for future references it's easier for all..<br><br><br>*I am using a MAC, so i have no idea if it'll work cause all the hacking programs run on windows only for some reason. Thanks for reading and hope someone tries to help.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-01-06_07:41:19", "killed": false, "user_key": "968ad15c0fbffb041a0e62fbe43891f2", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "11 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "6623740": {"up_voted": false, "ip": "", "has_replies": false, "message": "cool and sweet", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-02-25_17:01:24", "killed": false, "user_key": "506a28794cbb277390b511969b3b45ef", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "9 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "5136633": {"up_voted": false, "ip": "", "has_replies": false, "message": "THIS DOES NOT WORK!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2009-01-15_04:31:05", "killed": false, "user_key": "27fa9e7401ade34c8d33153a285b5477", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "11 months ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770012": {"up_voted": false, "ip": "", "has_replies": true, "message": "okay, everything worked out dandy, until... it didn't prompt me for the download. instead the quicktime player loaded the song in the browser and since i don't have qt pro, i couldn't save the song. how now?  :cry:", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-01_13:48:44", "killed": false, "user_key": "919722a89eb1c65acfd1a3765b433fa4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 1, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770013": {"up_voted": false, "ip": "", "has_replies": false, "message": "this way sucks... i've known a perfect way for some time on how to get all the info on downloading songs but for some reason on a select few with a digit short on the bsid they dont work", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-01_16:42:45", "killed": false, "user_key": "cc7ff46ebf343b8276fdbb4c68e78ece", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770014": {"up_voted": false, "ip": "", "has_replies": false, "message": "thealia, just go to File &gt; Save Page As", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-01_16:45:00", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770015": {"up_voted": false, "ip": "", "has_replies": false, "message": "Well I can access the songs... but where does the downloaded file go to!?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-01_20:12:54", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770016": {"up_voted": false, "ip": "", "has_replies": false, "message": "Tell IE to save the file instead of playing it.  Otherwise, it's as if it went into your cache.<br><br>Or use a tool like Download Accelerator Plus (or wget in *nix) and give it the URL.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-01_21:25:31", "killed": false, "user_key": "99a3547faec3804bd52e212bef92df19", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770017": {"up_voted": false, "ip": "", "has_replies": false, "message": "i cant find the xml files on my comp...hmmm.... I searched for the file name and get no results", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-02_00:56:53", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770018": {"up_voted": false, "ip": "", "has_replies": false, "message": "&lt;ul id=\"quote\"&gt;&lt;h6&gt;thealia wrote:&lt;/h6&gt;okay, everything worked out dandy, until... it didn't prompt me for the download. instead the quicktime player loaded the song in the browser and since i don't have qt pro, i couldn't save the song. how now?  :cry:&lt;/ul&gt;", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-02_03:01:27", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770019": {"up_voted": false, "ip": "", "has_replies": false, "message": "how do i clear my ceche?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-02_09:11:37", "killed": false, "user_key": "9578e85f0ae7891fa2eba7166740a65a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770020": {"up_voted": false, "ip": "", "has_replies": false, "message": "In Internet Explorer, go to Tools -&gt; Options.  Then in the middle of the dialog box there should be something that says Delete Files.  Click that.<br><br>After you do that, click on Settings, the View Files.  That will show you the cache directory.<br><br>Go to the MySpace music page that you want, let it load the player.  Then go back to your cache directory, hit F5 (refresh) and you should see the XML file I refer to.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-02_09:38:06", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770021": {"up_voted": false, "ip": "", "has_replies": false, "message": "Oooh...IE only eh? No wonder I didn't find it...does this work with firefox? Where are the files if it does...", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-02_10:22:26", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770022": {"up_voted": false, "ip": "", "has_replies": false, "message": "&lt;ul id=\"quote\"&gt;&lt;h6&gt;Anonymous wrote:&lt;/h6&gt;Oooh...IE only eh? No wonder I didn't find it...does this work with firefox? Where are the files if it does...&lt;/ul&gt;<br><br>No, it works with FireFox as it's just a regular download once you locate the URL.  You just have to find the XML file using IE first since the way FireFox organizes the cache is very odd.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-02_10:24:03", "killed": false, "user_key": "99a3547faec3804bd52e212bef92df19", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "6896359": {"up_voted": false, "ip": "", "has_replies": false, "message": "god! just select Save Page As?<br><br>I can't believe that his quicktime \"you need pro to save file\" bullshit works!", "is_last_child": true, "can_reply": true, "down_voted": false, "real_date": "2009-03-05_04:03:20", "killed": false, "user_key": "f5a7de7614edf5f4d9ff6b43e539cb1b", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "9 months ago", "approved": true, "num_replies": 0, "is_first_child": true, "email": "", "parent_post_id": 2770012, "depth": 1, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770024": {"up_voted": false, "ip": "", "has_replies": false, "message": "the couple of songs ive tried have come out to 96kbps...", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-02_13:34:23", "killed": false, "user_key": "c7dd80a0709e989b6007e3ac0d2ac973", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770025": {"up_voted": false, "ip": "", "has_replies": false, "message": "&lt;ul id=\"quote\"&gt;&lt;h6&gt;dododo wrote:&lt;/h6&gt;the couple of songs ive tried have come out to 96kbps...&lt;/ul&gt;<br><br>The first paragraph in the recipe says:<br><br>\"Bear in mind, however, that the streaming file is always of lesser quality than the one they allow you to download. (96kbit vs 192kbit)\"<br><br>The last paragraph in the recipe says:<br>\"The streaming file is always 96kbit quality, while their downloadable songs are at 192kbit. I tested this using <a href=\"http://www.myspace.com/monstersarewaiting\" rel=\"nofollow\">www.myspace.com/monstersarewaiting</a>, since they have a song available for download. Their downloaded one is 192 and their streamed one, once I grab it using the method described, is only 96. Just an FYI!\"", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-02_13:38:56", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770026": {"up_voted": false, "ip": "", "has_replies": false, "message": "yeah, i just got it, in a quick glance, the way its worded made it seem like that going about it in this method would make it 192", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-02_14:02:14", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770023": {"up_voted": false, "ip": "", "has_replies": false, "message": "oh sheesh. right.  :oops: <br><br>thanks! and happy new year  :)", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-02_12:31:17", "killed": false, "user_key": "919722a89eb1c65acfd1a3765b433fa4", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770028": {"up_voted": false, "ip": "", "has_replies": false, "message": "&lt;ul id=\"quote\"&gt;&lt;h6&gt;Anonymous wrote:&lt;/h6&gt;thealia, just go to File &gt; Save Page As&lt;/ul&gt;<br><br>How do I get IE 6 to prompt me to save the mp3 file?<br><br>I put <a href=\"http://musicstream.myspace.com/86/17/4627168/4627168_c51de306.mp3\" rel=\"nofollow\">http://musicstream.myspace.com/86/17/4627168/46...</a><br>into the address bar, but<br>File -&gt; Save As just prompts me save MP3_XML.cfm", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-06_09:31:23", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770029": {"up_voted": false, "ip": "", "has_replies": false, "message": "It appears that Myspace has now fixed the hole.  I believe they switched over to an rtmp stream, which, as far as I know, cannot be captured.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-06_12:59:26", "killed": false, "user_key": "99a3547faec3804bd52e212bef92df19", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770030": {"up_voted": false, "ip": "", "has_replies": false, "message": "I'm looking at IE 5.2 for MAC.<br><br>all I can see in my MS internet cache (after getting the song I want playing) are a couple of .waf files. A search for filenames anywhere on my local disks with \"MP3_XML.cfm?\" somewhere in the title came up blank. Anyone know why my IE doesn't seem to have the cache files I expect? Are they INSIDE the waf files or something? Clicking on them produces, at best, a blank IE window.<br><br>I guess the short answer is that it's IE for mac, eh?<br><br>If anyone has any better notions...", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-06_22:48:42", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770031": {"up_voted": false, "ip": "", "has_replies": false, "message": "If you just want it to know for this article: It doesn't work anymore", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-07_02:46:47", "killed": false, "user_key": "fed82ddf31aa42a4fe825ad3a9c366fd", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770032": {"up_voted": false, "ip": "", "has_replies": false, "message": "Heres an easy and simple way to save the song instead of listening on stream.  This should also save the song in FULL high quality.<br><br>Get the link from the file using the above method^<br><br>Then open a blank notepad page, type in this code...<br><br>&lt;html&gt;<br>&lt;body&gt;<br><a href=\"YOUR LINK HERE\" rel=\"nofollow\">Right click here and click save target as</a><br>&lt;/body&gt;<br>&lt;/html&gt;<br><br>you need to replace YOUR LINK HERE with your full link so for example it might look like..... <a href=\"http://myspace.com/34/3423/235.mp3\" rel=\"nofollow\"><br><br>then save the file to your desktop as a .htm document, so for example song.htm<br><br>Then go to your desktop and double click the htm file you just made.<br><br>It will be a web page, just do what it says......right click the text and click save target as, specify where you want to save your song, and OK and it will download! Simple!</a>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-07_05:15:48", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770033": {"up_voted": false, "ip": "", "has_replies": false, "message": "&lt;ul id=\"quote\"&gt;&lt;h6&gt;Anonymous wrote:&lt;/h6&gt;Heres an easy and simple way to save the song instead of listening on stream.  This should also save the song in FULL high quality.<br><br>Get the link from the file using the above method^<br><br>Then open a blank notepad page, type in this code...<br><br>&lt;html&gt;<br>&lt;body&gt;<br><a href=\"YOUR LINK HERE\" rel=\"nofollow\">Right click here and click save target as</a><br>&lt;/body&gt;<br>&lt;/html&gt;<br><br>you need to replace YOUR LINK HERE with your full link so for example it might look like..... <a href=\"http://myspace.com/34/3423/235.mp3\" rel=\"nofollow\"><br><br>then save the file to your desktop as a .htm document, so for example song.htm<br><br>Then go to your desktop and double click the htm file you just made.<br><br>It will be a web page, just do what it says......right click the text and click save target as, specify where you want to save your song, and OK and it will download! Simple!&lt;/ul&gt;<br><br>I don't think that works.  They're not hosting the file on <a href=\"http://myspace.com\" rel=\"nofollow\">http://myspace.com</a>, and it wouldn't be any higher quality than the one I originally linked to.  All you're doing is teaching people how to create a link that they can use the \"Save As\" function for.</a>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-07_10:46:37", "killed": false, "user_key": "99a3547faec3804bd52e212bef92df19", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770034": {"up_voted": false, "ip": "", "has_replies": false, "message": "Maybe someone can tell me what I'm doing wrong. I tried grabbing a Gorillaz song. I got the XML file, opened it, found the appropriate extension<br>\"80/20/13700208/13700208_1f292804.mp3\"<br>Attached it accordingly to <br>\"http://musicstream.myspace.com/80/20/13700208/13700208_1f292804.mp3\"<br>But all I got was Page Not Found. I even tried using the address I found in the xml<br>\"http://c.myspace.com/BandSongs/\"<br>But nothing seems to work.<br><br>Any ideas?", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-07_11:29:21", "killed": false, "user_key": "d139995df889ddf3351455f7c6573ca9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770035": {"up_voted": false, "ip": "", "has_replies": false, "message": "Nevermind, sorry about that. missed the previous posts.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-07_11:30:36", "killed": false, "user_key": "d139995df889ddf3351455f7c6573ca9", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770036": {"up_voted": false, "ip": "", "has_replies": false, "message": "&lt;ul id=\"quote\"&gt;&lt;h6&gt;Anonymous wrote:&lt;/h6&gt;Heres an easy and simple way to save the song instead of listening on stream.  This should also save the song in FULL high quality.<br><br>Get the link from the file using the above method^<br><br>Then open a blank notepad page, type in this code...<br><br>&lt;html&gt;<br>&lt;body&gt;<br><a href=\"YOUR LINK HERE\" rel=\"nofollow\">Right click here and click save target as</a><br>&lt;/body&gt;<br>&lt;/html&gt;<br><br>you need to replace YOUR LINK HERE with your full link so for example it might look like..... <a href=\"http://myspace.com/34/3423/235.mp3\" rel=\"nofollow\"><br><br>then save the file to your desktop as a .htm document, so for example song.htm<br><br>Then go to your desktop and double click the htm file you just made.<br><br>It will be a web page, just do what it says......right click the text and click save target as, specify where you want to save your song, and OK and it will download! Simple!&lt;/ul&gt;<br><br>That method doesnt work... Its still trying to connect to the music.myspace URL. They have changed their method obviously so if anyone could somehow hack it again... that would be very much appreciated.</a>", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-07_22:54:20", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770037": {"up_voted": false, "ip": "", "has_replies": false, "message": "After I found out this no longer worked, I opened the stand alone player, closed out my main browser... waited a few minutes for all connections to time out... refreshed the player, then went to a cmd prompt and did a netstat.<br><br>I had an active connection to <a href=\"http://ix.sitestream.net\" rel=\"nofollow\">ix.sitestream.net</a>  I don't know if this might be the direction to head in, but I will keep messing around and see what I can come up with.  The XML files haven't really changed.  Just wondering if you can maybe time it right with the timestamp, if you can edit the XML set the downloadable to 1 instead of 0 and refresh to reload the XML for the change.  This will be very tricky as each time you refresh, a new XML is created with a new timestamp... so maybe if you change the timestamp in the file name and  ahead of a few seconds and refresh, maybe it will load the one in cache that you edited instead of pulling in a new one.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-08_09:46:36", "killed": false, "user_key": "be4cb43768194ba1ecf6045594f61f9a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770038": {"up_voted": false, "ip": "", "has_replies": false, "message": "I guess I could always load up a packet sniffer and see where the music stream is coming from that way.  I also have a connection established with sitestream.cc", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-08_09:48:55", "killed": false, "user_key": "be4cb43768194ba1ecf6045594f61f9a", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770039": {"up_voted": false, "ip": "", "has_replies": false, "message": "I've tried the packet sniffer thing...but it won't help you decode the rtmp: format since that is a proprietary Macromedia format that they guard very carefully...<br><br>G'luck folks!  I'll take a look at it some more when I get a chance.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-01-10_13:53:10", "killed": false, "user_key": "99a3547faec3804bd52e212bef92df19", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770040": {"up_voted": false, "ip": "", "has_replies": false, "message": "so alot of people don't let you download there stuff. well some people i like there stuff and want the song now.<br><br>so i whip out goldwave wich is free (<a href=\"http://www.goldwave.com\" rel=\"nofollow\">www.goldwave.com</a>) switch the record source to stereo mix. adjust the volume and hit record.  =]", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-02-22_11:21:01", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770041": {"up_voted": false, "ip": "", "has_replies": false, "message": "im messing with this app called red5 which seems to be something along the lines of ripping rtmp streams. ill post here if it comes up with any results...", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-02-22_12:56:27", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770042": {"up_voted": false, "ip": "", "has_replies": false, "message": "Hi. Been working on  dl-ing hacks for awhile, and gave up. This is much easier. Use bittorrent or utorrent (available at <a href=\"http://download.com\" rel=\"nofollow\">download.com</a>) to get Replay Music. <a href=\"http://ts.searching.com/%3Cfont\" rel=\"nofollow\">http://ts.searching.com/&lt;font</a> color=\"red\"&gt;xxxxxxxxxxxxxxxxxxxxxx&lt;/font&gt;<br>The health isnt that great, but should increase. The quality on replay music is better than almost any recorder out there.<br><br>Once you dl it, Open the folder that says crack on it...  &lt;font color=\"red\"&gt;(clip)&lt;/font&gt;<br><br>Close your browser. Allow i-net access for replay if you use a firewall besides windows fireall (ie. zonealarm) Start replay music program. Now start your browser. Go to the page that contains the stream you want, and if the stream auto-starts, hit stop. Now hit the record button on replay music, and hit ok after entering any info. <br><br>Now start the stream and make sure the decible bar is oscilating in replay. hit stop record when the stream is over. <br><br>This should work. If it doesnt or if something isnt clear, reply and ill try to answer it within the same day! Good Luck with capturing ANY STREAMING music you want!<br><br>&lt;font color=\"red\"&gt;Moderator Edit:  Please don't point to cracks.  Users should pay for software.&lt;/font&gt;", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-02-23_10:04:14", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770043": {"up_voted": false, "ip": "", "has_replies": false, "message": "Sorry about that post. Didnt know there was a moderator. Dont use cracks. Pay for Replay Music, and you can use that. Because using Replay Music through a crack would be worse than giving directions to download songs illegally through loopholes in streaming........", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-02-25_12:08:45", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770044": {"up_voted": false, "ip": "", "has_replies": false, "message": "I decompiled the SWF of the Music player and analysied the actionscript code. <br><br>The 2 url's i found are -  rtmp://flash.myspace.com/mp3test (i think this would be were they store the music)<br><br>and - <a href=\"http://flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_\" rel=\"nofollow\">http://flash.vitalstream.com/flashgen.cgi?sname...</a>  (i doubght this is the one but may be)<br><br>So i think we have our url's and if im right a song (Im using One way ticket to hell and back - The darkness) would be located at somthin like -<br><br>rtmp://flash.myspace.com/84/94/8864948/8864948_620a6a27.mp3<br><br>There is a little program to play rtmp streams here - <a href=\"http://www.download.com/FLV-Player/3000-2139_4-10467082.html\" rel=\"nofollow\">http://www.download.com/FLV-Player/3000-2139_4-...</a><br><br>so we can test it to get a correct URL, then we'll find somthin to downlaod with, but we must find the right urls first!!!!!!!!<br>PLZPLZ HELP!!!", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-02-26_00:54:13", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770045": {"up_voted": false, "ip": "", "has_replies": false, "message": "When I use IE (v 6.0) the music artist list of songs wouldn't load and never would the song on the \"standalone player\".  So I can't find the \"MP3_XML.cfm?\" file out of the cache because the song never plays in IE.  The flash (the artist list of songs) just gets suck on the \"connecting...\" part.  <br><br>The thing is that everything works fine with Firefox.  So how do I find the link using Firefox?  And where is the exact location of the Firefox cache?  Is in the \"Temporary Internet Files\" under Local Settings or is it in the \"C:Documents and Settings*YourProfileName*Application DataMozillaFirefoxProfiles*(RandomLetters&amp;Numbers).Default*\" directory? <br><br>Thanks.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-04-01_08:35:25", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770046": {"up_voted": false, "ip": "", "has_replies": false, "message": "Nevermind.  I figured a way around it.  <br><br>I was able to find the \"mediaXML.xml\" file and get the url... but when I put \"http://musicstream.myspace.com/\" in front of the acquired url nothing happened.  <br><br>The page timed out.  <br><br>Is there something else I'm suppose to use rather than \"http://musicstream.myspace.com/\"?  I tried \"rtmp://flash.myspace.com/\" and that didn't work either.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-04-01_10:16:24", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "2770047": {"up_voted": false, "ip": "", "has_replies": false, "message": "&lt;ul id=\"quote\"&gt;&lt;h6&gt;werner wrote:&lt;/h6&gt;so alot of people don't let you download there stuff. well some people i like there stuff and want the song now.<br><br>so i whip out goldwave wich is free (<a href=\"http://www.goldwave.com\" rel=\"nofollow\">www.goldwave.com</a>) switch the record source to stereo mix. adjust the volume and hit record.  =]&lt;/ul&gt;  <br><br>Lol.  I have goldwave and that was the first thing I tried, but that didn't work.  Usually it does work, but not this time.  If it worked for you, what did you do?  I switched the source to WAV but like I said nothing happened.  <br><br>Anyway, everyone ignore my last two posts I didn't see the post about myspace fixing the loophole.  If someone discovers a new hole please post it?   Thanks again.", "is_last_child": false, "can_reply": true, "down_voted": false, "real_date": "2006-04-01_10:27:04", "killed": false, "user_key": "7c4455626754e1b9bc3be232b1024136", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "3 years ago", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}}, "integration": {"receiver_url": null, "theme": 1, "reply_position": false, "disqus_logo": false}, "timer": {"timer_url": "http://localhost:8005", "thread_id": "5204527", "user_id": "anonymous", "forum_id": "31023", "hash": -4014420944540790765}, "thread": {"total_posts": 0, "paginate": false, "per_page": 0, "slug": "myspace_hack_to_download_any_song_on_myspace_8212_xml_method_myspace_tech_recipes", "num_pages": 1, "days_alive": 0, "realtime_paused": true, "id": 5204527, "num_posts": 78, "closed": false, "queued": false, "killed": false}, "reactions_limit": 10, "context": {"show_reply": true, "use_fb_connect": true, "forum_facebook_key": "182ec83bf17a2b0a980f481978335d5b", "use_yahoo": false, "subscribed": false, "use_twitter_signin": true, "use_openid": false, "realtime_speed": 5000}, "reactions_start": 0, "settings": {"debug": false, "disqus_url": "http://disqus.com", "media_url": "http://media.disqus.com"}, "media_url": "http://media.disqus.com"};
	/* */ this.jsonData.cookie_messages = {"user_created": null, "post_has_profile": null, "post_twitter": null, "post_not_approved": null}; this.jsonData.session = {"url": null, "name": null, "email": null}; /* */

	
	this.curPageId = 'dsq-comments';

	this.frames = {};
};

var disqus_popup_reference = null;

if(typeof DsqLocal == 'undefined') {
	DsqLocal = {};
}



/**
 * Dsq.Strings: UI strings
 */
Dsq.Strings = new function() {
	this.ADD_NEW_COMMENT = "Add New Comment";
	this.LOG_INTO_DISQUS = "Log into DISQUS";
	this.USE_MEDIA = "Use Media";
	this.LOGOUT = "Logout";
	this.SHARING_OPTIONS = "Sharing options";
	this.SHARE_ON = "Share on";
	this.TWEET_THIS_COMMENT = "Tweet this comment";
	this.SHARE_ON_NEWSFEED = "Share on news feed";
	this.SEND_UPDATE_TO_YAHOO = "Send update to Yahoo!";
	this.REBLOG_ON = "Reblog on";
	this.CONFIGURE_OPTIONS = "Configure options";
	this.POST_AS = "Post as";
	this.SORT_BY = "Sort by";
	this.SUBSCRIBE_BY_EMAIL = "Subscribe by email";
	this.SUBSCRIBE_BY_RSS = "Subscribe by RSS";
	this.POPULAR_NOW = "Popular now";
	this.BEST_RATING = "Best Rating";
	this.NEWEST_FIRST = "Newest first";
	this.OLDEST_FIRST = "Oldest first";
	this.HIGHLIGHTED = "Highlighted";
	this.UNSUBSCRIBE = "Unsubscribe";
	this.REQUIRED = "Required";
	this.OPTIONAL = "Optional";
	this.YOU_ARE_COMMENTING_AS_A = "You are commenting as a";
	this.LOGIN_BELOW = "Login below";
	this.PLEASE_LOGIN_BELOW_TO_COMMENT = "Please login below to comment.";
	this.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL = "Subscribe to all comments by email";
	this.DO_NOT_SUBSCRIBE_TO_COMMENTS = "Do not subscribe to comments";
	this.REALTIME_UPDATING_IS = "Real-time updating is";
	this.ENABLED = "enabled";
	this.PAUSED = "paused";
	this.PAUSE = "Pause";
	this.RESUME = "Resume";
	this.SHOW = "Show";
	this.JUST_NOW = "Just now";
	this.REPLY = "Reply";
	this.EDIT = "Edit";
	this.FLAG = "Flag";
	this.MODERATE = "Moderate";
	this.CANCEL = "Cancel";
	this.REPLYING_TO = "Replying to";
	this.REPORT_MISSING_REACTIONS = "Report missing reactions";
	this.POST_A_COMMENT = "Post a comment";
	this.FLAG_INAPPROPRIATE_COMMENT = "Flag inappropriate comment";
	this.FLAGGED = "Flagged";
	this.NO = "No";
	this.YES = "Yes";
	this.NEVER_MIND = "Never mind";
	this.ARE_YOU_SURE_YOU_WOULD_LIKE_TO_REPORT_THIS_COMMENT_TO_A_MODERATOR = "Are you sure you would like to report this comment to a moderator";
	this.THIS_WILL_FLAG_COMMENTS_FOR_MODERATORS_TO_TAKE_ACTION = "This will flag comments for moderators to take action";
	this.TO_RATE_PLEASE_LOG_IN = "To rate, please log in";
	this.JUST_A_MOMENT = "Just a moment...";
	this.GUEST = "Guest";
	this.NAME = "Name";
	this.EMAIL = "Email";
  this.WEBSITE = "Website";
  this.SETTINGS = "Settings";
  this.MODERATOR_OPTIONS = "Moderator options: ";
  this.MODERATE_OPTIONS = "Moderate Options";

  // Thread moderator actions
  this.CLOSE_THREAD = "Close thread";
  this.OPEN_THREAD = "Open thread";
  this.REMOVE_THREAD = "Remove thread";
  this.RESTORE_THREAD = "Restore thread";
  this.ACTIONS = "Actions";
};
// Dsq.Strings

/**
 * Dsq.FmtStrings: functions that return interpolated UI strings
 */
Dsq.FmtStrings = new function() {
	// Seems we have to use named interpolation for Django to translate. Investigate more.
	this.LOGGED_IN_AS = function(username) {
		return Dsq.Utils.interpolate('Logged in as %(username)s', {username:username});
	};

	this.LOGOUT_FROM = function(disqus) {
		return Dsq.Utils.interpolate('Logout from %(disqus)s', {disqus:disqus});
	};

	this.SHOWING_COMMENTS_FULL = function(total, num) {
		if (num === 1) {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> of <span id='dsq-total-posts'>%(total)s</span> comment", {num:num, total:total});
		} else {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> of <span id='dsq-total-posts'>%(total)s</span> comments", {num:num, total:total});
		}
	};

	this.SHOWING_COMMENTS_WITHOUT_PAGINATION = function(num) {
		if (num === 1) {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> comment", {num:num});
		} else {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> comments", {num:num});
		}
	};

	this.NUMBER_OF_COMMENTS = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s comment'
				: '%(num)s comments'
			), {num:num});
	};

	this.NUMBER_OF_LIKES = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s like'
				: '%(num)s likes'
			), {num:num});
	};

	this.NUMBER_OF_POINTS = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s point'
				: '%(num)s points'
			), {num:num});
	};
};
// Dsq.FmtStrings





Dsq.CSRF_TOKEN = 'a2d140c59df8cd4ce27a20e0829cacd8';
Dsq.COMMENTS_RE = /(<li.*?id="?dsq-comment-(\d+)"?.*?>)((?:.|\s)*?)(<\/li>)/gim;
Dsq.POST_RE = /(<div.*?id="?dsq-comment-header-(\d+)"?.*?>)((?:.|\s)*?)(<\/div>)\s*(<div.*?class="?dsq-comment-body"?.*?>)((?:.|\s)*)(<\/div>)/gim;
Dsq.POST_BODY_RE = /\s*(<div.*?id="?dsq-comment-message-(\d+)"?.*?>)((?:.|\s)*)(<\/div>)/gim;
// HACK: Safari ends with "-->" while other browsers end with "--&gt;" as expected.
Dsq.MEDIA_POST_RE = /&lt;!--\[(.*?)\]--(?:>|&gt;)/gim;



// TODO: It might be faster to use string methods to find all <li (...) </li> blocks and pass to Dsq.PostHandler manually.
Dsq.CommentsHandler = function(str, head, post_id, content, tail, offset, s) {
	var prepend_post = Dsq.Templates.prependPost(post_id);
	var append_post = Dsq.Templates.appendPost(post_id);

	content = content.replace(Dsq.POST_RE, Dsq.PostHandler);
	Dsq.Templates.postLoopCounter++;
	head = Dsq.Templates.Filters.commentContainer(post_id, head);
	return prepend_post + head + content + tail + append_post;
};

Dsq.PostHandler = function(str, h_head, post_id, h_content, h_tail, b_head, b_content, b_tail, offset, s) {
	var prepend_header = Dsq.Templates.postPrependHeader(post_id);
	var append_header = Dsq.Templates.postAppendHeader(post_id);
	var prepend_body = Dsq.Templates.preBody(post_id);
	var append_body = Dsq.Templates.postBody(post_id);
	var append_footer = Dsq.Templates.postFooter(post_id);

	b_content = b_content.replace(Dsq.POST_BODY_RE, Dsq.PostBodyHandler);
	return h_head + prepend_header + h_content + append_header + h_tail + b_head + prepend_body + b_content + append_body + b_tail + append_footer;
};

Dsq.PostBodyHandler = function(str, head, post_id, content, tail, offset, s) {
	content = Dsq.Templates.Filters.commentContent(post_id, content);
	return head + content + tail;
};

Dsq.MediaPostHandler = function(str, args, offset, s) {
	args = args.split(' ');
	if(args[0] == 'seesmic') {
		return '<br />' + Dsq.Templates.mediaSeesmic(args[1], args[2]);
	}
	return '';
};


/**
 * Shorcuts
 */
Dsq.$ = function(element) { return document.getElementById(element); };
Dsq.$b = document.body || document.getElementsByTagName('body')[0];


/**
 * Dsq.Debug: Logging functions.
 */

Dsq.Debug = new function() {this.log=function(s){};this.profile=function(f){if(typeof f == 'function')return f();else return eval(f);};};


/**
 * Dsq.Urls: URL paths
 */
Dsq.Urls = new function() {
	this.LOGIN = '/profile/login/';
	this.LOGOUT = '/logout/';
	this.REPLY = 'http://tech-recipes.disqus.com/myspace_hack_to_download_any_song_on_myspace_8212_xml_method_myspace_tech_recipes/reply.html';
	this.REQUEST_USER_PROFILE = '/AnonymousUser/';
	this.REQUEST_USER_AVATAR = 'http://media.disqus.com/images/noavatar92.png';
};
// Dsq.Urls

/**
 * Dsq.Validators: Validation for form fields
 */
Dsq.Validators = new function() {
	this.VALID_EMAIL_RE = /^[a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*\@(([a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*)+\.[a-z]{2,}|([0-9]+\.){3}[0-9]+)$/i;
	this.name = function(name) {
		var error = false;

		if(typeof Dsq.Templates.placeholder !== 'undefined' &&
		   name == Dsq.Templates.placeholder.name) {
			error = true;
		}
		if(name.length <= 1) {
			error = true;
		}

		if(error) {
			return "Please enter a name to comment.";
		} else {
			return true;
		}
	};
	this.email = function(addr) {
		if(Dsq.Validators.VALID_EMAIL_RE.test(addr)) {
			return true;
		} else {
			return "Please enter a valid email to comment.";
		}
	};
	this.url = function(addr) {
		if(!addr || addr.indexOf('.') != -1) {
			return true;
		} else {
			return "Please check your website URL (this field is optional).";
		}
	};

	this.validate = function(bulk_validation, failure_callback) {
		failure_callback = failure_callback || function(e){ alert(e); };

		for(var i = 0; i < bulk_validation.length; i++) {
			v = bulk_validation[i];
			ret = v.validator(v.value);
			if(ret !== true) {
				failure_callback(ret);
				return false;
			}
		}
		return true;
	};
};

/**
 * Dsq.Utils: Generic utility functions.
 */
Dsq.Utils = new function() {
	this.ie = /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
	this.ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;
	this.ie6 = (!window.XMLHttpRequest) ? true: false;
	this.webkit = navigator.userAgent.indexOf('AppleWebKit/') >= 0;
	this.gebiFromElementCollectionCache = {};
	this._styleSheet = null;

	this.gebiFromElement = function(el, id, tag) {
		// This only method only helps IE.
		if(!this.ie) {
			return Dsq.$(id);
		} else {
			var cacheKey = el.id + '-' + tag;
			tag = tag || 'div';
			if(typeof this.gebiFromElementCollectionCache[cacheKey] != 'undefined') {
				collection = this.gebiFromElementCollectionCache[cacheKey];
			} else {
				collection = el.getElementsByTagName(tag);
				this.gebiFromElementCollectionCache[cacheKey] = collection;
			}

			for(var i = 0; i < collection.length; i++) {
				if(collection[i].id == id) {
					return collection[i];
				}
			}
			return null;
		}
	};

	this.execOnReady = function(func) {
		var node = document.createElement('document:ready');
		try {
			node.doScroll('left');
			func();
			node = null;
		} catch(err) {
			setTimeout(function() { Dsq.Utils.execOnReady(func); }, 10);
		}
	};


	// Courtesy of http://www.quirksmode.org/js/cookies.html
	this.createCookie = function(name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	};

	this.readCookie = function(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	};

	this.eraseCookie = function(name) {
		Dsq.Utils.createCookie(name,"",-1);
	};

	this.deleteNode = function(node) {
		if(node) {
			this.deleteChildren(node);
			if(typeof node.outerHTML != 'undefined') { node.outerHTML = ''; }
			else if(node.parentNode) { node.parentNode.removeChild(node); }
			delete node;
		}
	};

	this.deleteChildren = function(node) {
		if(node) {
			for(var x = node.childNodes.length-1; x >= 0; x--) {
				var childNode = node.childNodes[x];
				if(childNode.hasChildNodes()) { this.deleteChildren(childNode); }
				if(typeof childNode.outerHTML != 'undefined') { childNode.outerHTML = ''; }
				else node.removeChild(childNode);
				delete childNode;
			}
		}
	};

	this.findPos = function(obj) {
		var curleft = 0;
		var curtop = 0;
		if (obj.offsetParent) {
			do {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			} while (obj = obj.offsetParent);
		}
		return [curleft,curtop];
	};

	this.getWindowSize = function() {
		var windowWidth = -1;
		var windowHeight = -1;

		if(typeof(window.innerWidth) == 'number') { //Non-IE
			windowWidth = window.innerWidth;
			windowHeight = window.innerHeight;
		} else if(document.documentElement) { // IE 6+ in 'standards compliant mode'
			windowWidth = document.documentElement.clientWidth || document.body.clientWidth;
			windowHeight = document.documentElement.clientHeight || document.body.clientHeight;
		}

		return [windowWidth, windowHeight];
	}

	this.getScrollPos = function() {
		var scrollWidth, scrollTop;

		if(document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollWidth)) {
			scrollWidth = document.documentElement.scrollWidth;
			// IE is weird here.  If no doctype is provided, document.body.scrollTop is 0,
			// otherwise document.documentElement.scrollTop is 0.
			scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
		} else if(document.body.scrollTop && document.body.scrollWidth) {
			scrollWidth = document.body.scrollWidth;
			scrollTop = document.body.scrollTop;
		}

		return [scrollWidth, scrollTop];
	}

	this.addEventListener = function(instance, eventName, listener) {
		var listenerFn = listener;
		if (instance.addEventListener) {
			instance.addEventListener(eventName, listenerFn, false);
		} else if (instance.attachEvent) {
			listenerFn = function() {
				listener(window.event);
			};
			instance.attachEvent("on" + eventName, listenerFn);
		} else {
			throw new Error("Event registration not supported");
		}
		return {
			instance: instance,
			name: eventName,
			listener: listenerFn
		};
	};

	this.removeEventListener = function(event) {
		var instance = event.instance;
		if (instance.removeEventListener) {
			instance.removeEventListener(event.name, event.listener, false);
		} else if (instance.detachEvent) {
			instance.detachEvent("on" + event.name, event.listener);
		}
	};

	this.fixIframesIE = function(id) {
		var disqusThread = Dsq.$(disqus_container_id);
		var iframes = disqusThread.getElementsByTagName('iframe');

		if(id) {
			var container = Dsq.$(id);
		} else {
			var container = Dsq.$('dsq-content');
		}

		for(i = 0; i < iframes.length; i++) {
			if (container) {
				iframes[i].style.width = container.offsetWidth;
			}
		}
	};

	this.getElementsByClassName = function(oElm, strTagName, strClassName) {
	/* Credit: Jonathan Snook [http://www.snook.ca/jonathan], Robert Nyman [http://www.robertnyman.com] */
		var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
		var arrReturnElements = new Array();
		strClassName = strClassName.replace(/\-/g, "\\-");
		var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
		var oElement;
		for(var i = 0; i < arrElements.length; i++) {
			oElement = arrElements[i];
			if(oRegExp.test(oElement.className)) {
				arrReturnElements.push(oElement);
			}
		}
		return (arrReturnElements);
	};

	this.postToUrl = function(url, post_data, opt_redirect) {
		var form = document.createElement('form');
		var iframe_container = document.createElement('div');
		var id = 'dsq-temp-iframe-' + (new Date()).getTime();

		form.method = 'POST';
		form.action = url;
		if (!opt_redirect) {
			form.target = id;
		}
		iframe_container.innerHTML = '<iframe style="display:none" name="' + id + '" id="' + id + '"></iframe>';

		for(var key in post_data) {
			if(post_data.hasOwnProperty(key)) {
				var input = document.createElement('input');
				input.name = key;
				input.type = 'hidden';
				input.value = post_data[key];

				form.appendChild(input);
			}
		}

		Dsq.$b.appendChild(iframe_container);
		Dsq.$b.appendChild(form);
		form.submit();
	};

	// Strips integer id from id of element in the form ('some-id-###')
	this.extractId = function(e) {
		var chunks = e.id.split('-');
		if(chunks.length <= 1) {
			return 0;
		} else {
			var retval = parseInt(chunks[chunks.length-1]);
			return !isNaN(retval) ? retval : null;
		}
	};

	this.getStyle = function(el, styleProp) {
		if(el.currentStyle) {
			var y = el.currentStyle[styleProp];
		} else if(window.getComputedStyle) {
			var y = document.defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);
		}

		if(y == 'transparent' || y == '') {
			this.getStyle(el.parentNode, styleProp);
		} else {
			return y;
		}
	};

	this.execScript = function(url, append_qs, container) {
		var script = document.createElement('script');
		append_qs = typeof append_qs == 'undefined' ? true : append_qs;
		container = container || Dsq.container;

		if(append_qs) {
			var j = (url.indexOf('?') >= 0) ? '&' : '?';
			url += j + (new Date()).getTime();
		}
		script.type = 'text/javascript';
		script.charset = 'UTF-8';
		script.src = url;
		container.appendChild(script);
		return script;
	};

	this.pluralize = function(num, singular, plural) {
		return (num != 1) ? plural || 's' : singular || '';
	};

	this.getRequestParams = function(queryString /* optional */) {
		var pairs, tuple;
		var params = {};

		queryString = queryString || window.location.search.substring(1);
		pairs = queryString.split('&');

		for (var i = 0, pair; pair = pairs[i]; i++) {
			tuple = pair.split('=');
			params[tuple[0]] = (tuple[1] || true);
		}

		return params;
	};

	this.addCssRule = function(selector, styleText, index) {
		var stylesheet;
		index = index || 0;

		if(!this._styleSheet) {
			var styleEl = document.createElement('style');
			document.getElementsByTagName('head')[0].appendChild(styleEl);
			this._styleSheet = styleEl.sheet;
			if(!this._styleSheet) {
				// IE does not like our newly created stylesheet.
				this._styleSheet = document.styleSheets[document.styleSheets.length-1];
			}
		}
		stylesheet = this._styleSheet;

		if(stylesheet.insertRule) {
			var ruleText = selector + ' { ' + styleText + ' }';
			if(index == -1) {
				index = stylesheet.cssRules.length;
			}
			stylesheet.insertRule(ruleText, index);
		} else if(stylesheet.addRule) {
			stylesheet.addRule(selector, styleText, index);
		}
	};

	this.forEachIn = function(obj, callback) {
		for(var key in obj) {
			if(obj.hasOwnProperty(key)) {
				callback(key, obj[key]);
			}
		}
	};

	this._interpolateGlobalContext = {
		// values that get used a lot and are global to the request
		'profile_url': Dsq.Urls.REQUEST_USER_PROFILE,

		'disqus_url': Dsq.jsonData.settings.disqus_url,
		'media_url': Dsq.jsonData.settings.media_url,
		'request_username': Dsq.jsonData.request.username,
		'request_display_username': Dsq.jsonData.request.display_username,
		'forum_name': Dsq.jsonData.forum.name
	};

	this.renderFromContextStack = function(key, contexts) {
		// Returns the first instance of `key` in the array of objects `contexts` or else ''
		for (var i=0; i<contexts.length; i++) {
			if (contexts[i][key] !== undefined) {
				return String(contexts[i][key]);
			}
		}
		throw new Error('key ' + key + ' not found in context');
	};

	var that = this;
	this.interpolate = function(fmt, opt_localContext) {
		// Interpolate `fmt` named-format string with an assumed global context.
		// Based on `interpolate` in django.views.i18n
		var contextStack = [opt_localContext || {}, that._interpolateGlobalContext];
		return fmt.replace(/%\(\w+\)s/g, function(match){
			return that.renderFromContextStack(match.slice(2,-2), contextStack);
		});
	};

	this.stripTags = function(s) {
		// Removes HTML tags from `s`
		return s.replace(/(<([^>]+)>)/g,"");

	};

	this.assert = function(b) {
		if (!b) {
			throw new Error('Assertion error.');
		}
	};

};
// Dsq.Utils

/**
 * Dsq.Popup: Popup helper functions.
 */
Dsq.Popup = new function() {
	this.timeHide = new Array();
	this.timeShow = new Array();
	this.activePopup = {};
	this.profileCache = {};
	this.statusCache = {};

	this.showTimer = function(post_id) {
		// clear the hide timer
		clearTimeout(this.timeHide[post_id]);

		// start the timer
		if(!Dsq.Popup.profileIsOn && !Dsq.Thread.adminIsOn) {
			this.timeShow[post_id] = setTimeout("Dsq.Popup.popProfile(\"" + post_id + "\")", 400);
		}
	};

	this.hideTimer = function(post_id) {
		// clear the show timer
		clearTimeout(this.timeShow[post_id]);
	};

	this.updateProfile = function(username) {
		// Callback from /embed/profile.js
		if (this.statusCache[username]) {
			var statusEl = Dsq.$('dsq-profile-status-' + username);
			statusEl.innerHTML = this.statusCache[username];
			statusEl.style.display = 'block';
		}

		if (this.profileCache[username]) {
			var _cache = this.profileCache[username];

			var _genhtml = function(text) { return '<span><big>' + text + '</big></span>'; };
			var _no_comments = _genhtml(Dsq.FmtStrings.NUMBER_OF_COMMENTS(_cache.comments_count));
			var _no_likes = _genhtml(Dsq.FmtStrings.NUMBER_OF_LIKES(_cache.likes_count));
			var _no_points = _genhtml(Dsq.FmtStrings.NUMBER_OF_POINTS(_cache.points));

			var statsEl = Dsq.$('dsq-popup-profile-user-stats-' + username);
			statsEl.innerHTML = '';

			if (Dsq.jsonData.users[username].registered) {
				statsEl.innerHTML = _no_comments + _no_likes;
			}
			statsEl.innerHTML += _no_points;

			var activeSites = '';
			for (var i = 0; i < _cache.active_sites.length; i++) {
				var site = _cache.active_sites[i];
				activeSites += '<li><a href="' + site.url + '"> \
					<img src="' + site.favicon + '"/ width="16" height="16"/></a>\
					<a href="' + site.url + '">' + site.name + '</a></li>';
			}
			if (activeSites !== '') {
				Dsq.$('dsq-popup-profile-active-sites-' + username).innerHTML = activeSites;
			} else {
				Dsq.$('dsq-popup-profile-active-sites-' + username).innerHTML = 'This site.';
			}

			var moderatedSites = '';
			for (var i = 0; i < _cache.moderated_sites.length; i++) {
				var site = _cache.moderated_sites[i];
				moderatedSites += '<li><a href="' + site.url + '"> \
					<img src="' + site.favicon + '"/ width="16" height="16"/></a>\
					<a href="' + site.url + '">' + site.name + '</a></li>';
			}
			if (moderatedSites !== '') {
				Dsq.$('dsq-popup-profile-moderated-' + username).innerHTML = moderatedSites;
			} else {
				Dsq.$('dsq-popup-profile-moderated-wrapper-' + username).innerHTML = '';
			}
		}

		// Reposition popup after full HTML is rendered
		if(Dsq.Popup.activePopup && Dsq.Popup.activePopup.el) {
			Dsq.Popup.initPopup(Dsq.Popup.activePopup.el, Dsq.Popup.activePopup.id, Dsq.Popup.activePopup.type);
		}

	};

	this.showCookieMsgs = function() {
		var title = '';
		var message = '';
		var numAlerts = 0;

		Dsq.Utils.forEachIn(Dsq.jsonData.cookie_messages, function(k, v) {
			if (!v) return;

			switch(k) {
				// Cookie: Twitter
				case 'post_twitter':
					if (v === 'error') {
						title = 'Twitter Error!';
						message += '<li id="dsq-msg-twitter-error">Oops, we couldn\'t tweet this comment. Please check your <a href="http://disqus.com/account/services">account settings</a>.</li>';
					} else {
						var _msg = v.split(':');
						title = 'Tweeted!';
						message += '<li id="dsq-msg-twitter-success">Your comment was successfully tweeted. <a href="http://twitter.com/' + _msg[0] + '/status/' + _msg[1] + '">Click here to view the tweet</a>.</li>';
					}
					break;
				// Cookie: Unapproved Post
				case 'post_not_approved':
					title = 'Comment awaiting approval by a moderator';
					message += '<li id="dsq-msg-post-not-approved">Your comment must be approved by a moderator before appearing here.</li>';
					break;
				// Cookie: Profile Found
				case 'post_has_profile':
					title = 'Use your existing commenter profile';
					message += '<li id="dsq-msg-post-has-profile">You have just posted your commment as a <span class="dsq-badge-guest">Guest</span>, but you may already have a <span class="logo-disqus">Disqus</span> Profile.<br /><br /><a href="http://disqus.com/claim">Log in and claim this comment!</a></li>';
					break;
				case 'user_created':
					var _data = v.split(':');
					title = 'Profile created!';
					message += '<li id="dsq-msg-user-created">You have just created a <span class="logo-disqus">Disqus</span> Profile, the best way to claim, manage, and track your comments all over the web. \
					<br /><br />A confirmation is being sent to <strong>' + _data[1] + '</strong>. Please check for this email in order to verify your profile. \
					<ul class="dsq-list-tick"> \
						<li>Your username is <strong>' + _data[0] +'</strong>. <a href="http://disqus.com/people/' + _data[0] + '/" target="_blank">Click here to view your public profile</a>.</li> \
						<li>Be sure to set your profile picture, as well as connect your <span class="dsq-badge-facebook">Facebook</span> and <span class="dsq-badge-twitter">Twitter</span> accounts. <a href="http://disqus.com/account/" target="_blank">Click here for account settings</a>.</li> \
					</ul> \
					</li>'
					break;
				default:
					break;
			}
			numAlerts++;
		});

		if(numAlerts > 1) {
			message = '<ul class="dsq-list-bluebullet">' + message;
			message += '</ul>';
			title = 'Thanks for posting!';
		}
		if(numAlerts > 0) {
			if(typeof(disqus_cookie_msgs) == 'function') {
				disqus_cookie_msgs(message, title);
			} else {
				Dsq.Popup.popModal(message, title);
			}
		}
	};

	this.helpBadges = function(post_id) {
		var html = ' \
			<ul class="dsq-popup-help"> \
				<li><span class="dsq-badge dsq-badge-verified">Verified</span> has a <span class="logo-disqus">Disqus</span> Profile with a confirmed email address.</li> \
				<li><span class="dsq-badge dsq-badge-registered">Registered</span> has a <span class="logo-disqus">Disqus</span> Profile, but has not yet confirmed his or her email address.</li> \
				<li><span class="dsq-badge dsq-badge-guest">Guest</span> is not logged in with any account and has not claimed his or her comments.</li> \
				<li class="dsq-help-otheraccts">Other accounts</li> \
				<li><span class="dsq-badge dsq-badge-facebook">Facebook</span> is using his or her Facebook profile via Facebook Connect.</li> \
				<li><span class="dsq-badge dsq-badge-twitter">Twitter</span> is using his or her Twitter profile via Twitter Sign-in.</li> \
				<li><span class="dsq-badge dsq-badge-openid">OpenID</span> is using his or her OpenID.</li> \
			</ul> \
		';

		this.popModal(html, 'Help: Types of Commenters', post_id);
		return;
	};

	this.permalink = function(post_id) {
		var header = 'Link to this comment';
		var body = '<strong>You are anchored to</strong>:<br />' + document.location.protocol + '//' + document.location.host + document.location.pathname + document.location.search + '#comment-' + post_id;

		this.popModal(body, header, post_id);
	};

	this.login = function(header, body) {
		var h = header || 'Login or Register';
		var b = body || '';
		b += Dsq.Templates.frameLogin({id: 'dsq-popup-login'});
		b += '</iframe>'; // HACK: Sometimes there is something funky with the IFRAME SRC that causes no end tag
		this.popModal(b, h, null, true, 'dsq-popup-login');
	};

	this.blacklist = function(id) {
		var _meta = Dsq.jsonData.posts[id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		var title = 'Add to Blacklist';
		var message = ' \
		Adding this person to the blacklist will block him or her from commenting on this site. Check the following types that you would like to add to the blacklist:'
		+ (userData['registered'] ?
			'<div class="dsq-blacklist-option"> \
				<input id="dsq-blacklist-username" type="checkbox" checked> \
				<label for="dsq-blacklist-username"><strong>Username</strong>: ' + userData['username'] + '</label> \
			</div>'
			: '')
		+ (_meta.email ?
			'<div class="dsq-blacklist-option"> \
				<input id="dsq-blacklist-email" type="checkbox" checked> \
				<label for="dsq-blacklist-email"><strong>Email address</strong>: ' + _meta.email + '</label> \
			</div>'
			: '')
		+ '<div class="dsq-blacklist-option"> \
			<input id="dsq-blacklist-ip" type="checkbox" onclick="Dsq.$(\'dsq-blacklist-ip-warning\').style.display=\'block\'"> \
			<label for="dsq-blacklist-ip"><strong>IP address</strong>: ' + _meta.ip + '</label> \
		</div> \
		';

		message += ' \
			<p id="dsq-blacklist-ip-warning" style="display:none">	\
				Note: Blocking this person\'s IP address may also unintentionally prevent others, who share his/her IP address, from commenting on this site. \
				This may include people who are sharing the same computer, living in the same house, or using the same Internet provider. Only block an IP address as a last resort. \
			</p> \
		';

		message += ' \
			<p style="text-align:center"><button type="button" onclick="Dsq.Post.blockUser(' + id + '); this.disabled=true; this.innerHTML=\'Just one moment...\'">Add to Blacklist</button></p> \
		';

		Dsq.Popup.popModal(message, title);
	};

	this.remoteAccountSettings = function() {
		var body = '';
		// Set up IFrame.
		var params = {};
		var base_url = 'http://disqus.com/forums/tech-recipes/_auth/embed/remote_settings/';
		var attributes = {id: 'dsq-popup-account-settings'};
		if (typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}

		body = Dsq.Templates._frameGeneric(base_url, params, attributes);
		this.popModal(body, 'Account Settings', null, true, 'dsq-popup-account-settings');
	};

	this.popModal = function(message, title, post_id, use_listener, extra_classes) {
		var container = document.createElement('div');
		var header, body;

		Dsq.Popup._closePopup(null, true);

		if(typeof(title) == 'undefined') { title = ''; }
		if(typeof(use_listener) == 'undefined') { use_listener = true; }

		if(post_id) {
			container.id = 'dsq-popup-message-' + post_id;
		} else {
			container.id = 'dsq-popup-message';
		}

		header = title;
		body = message;

		container.innerHTML = Dsq.Templates.popupModal(header, body);
		Dsq.Popup.initPopup(container, post_id, 'message', extra_classes);
		if(use_listener) {
			Dsq.Popup.popupListener = Dsq.Utils.addEventListener(document, 'mouseup', Dsq.Popup._closePopup);
		}
	};

	this.popAlert = this.popModal;

	this.loading = function(post_id) {
		var title = Dsq.Strings.JUST_A_MOMENT;
		var body = '<div style="text-align:center; padding: 5px 0 10px 0"><img src="http://media.disqus.com/images/loading.gif" alt="" /></div>'
		Dsq.Popup.lightbox(body, title, post_id);
	};

	this.lightbox = function(message, title, post_id) {
		// Wraps Dsq.Popup.popModal

		var overlay = document.createElement('div');
		overlay.id = 'dsq-overlay';
		overlay.className = 'dsq-overlay';
		Dsq.$b.appendChild(overlay);
		
		Dsq.Popup.popModal(message, title, post_id, false, 'dsq-lightbox');
	};

	this.popProfile = function(post_id, userKey) {
		var post = Dsq.jsonData['posts'][post_id];
		if (post && post.has_been_anonymized) {
			Dsq.Popup.popModal('This message was anonymized by its previous owner.', 'Anonymized', post_id);
			return;
		}

		if(post_id) {
			userKey = Dsq.jsonData['posts'][post_id].user_key;	
		}
		var userData = Dsq.jsonData['users'][userKey];
		var elId = 'dsq-popup-profile-' + userKey;
		var container = document.createElement('div');

		if(this.activePopup.el) {
			this._closePopup(null, true);
			if(this.activePopup.linkClicked) {
				this.activePopup.linkClicked = false;
				return;
			}
		}

		container.id = elId;
		container.innerHTML = Dsq.Templates.popupProfile(userKey);

		this.initPopup(container, post_id, 'profile');
		this.popupListener = Dsq.Utils.addEventListener(document, 'mouseup', this._closePopup);

		if(!this.profileCache[userKey]) {
			Dsq.Utils.execScript('http://disqus.com/embed/profile.js'
				+ '?username=' + userKey
				+ '&anon=' + (userData['registered'] ? 0 : 1)
				+ '&f=' + Dsq.jsonData['request'].forum);
		} else {
			this.updateProfile(userKey);
		}
	};

	this._closePopup = function(e, force) {
		var activePopup = Dsq.Popup.activePopup.el;
		var id = Dsq.Popup.activePopup.id;
		var link = 'dsq-avatar-' + id; // HACK: Specific to profile toggle target

		// HACK: This event should be gone if there is no active popup.
		if(!activePopup) {
			return;
		}
		if(force || !Dsq.Popup.isClicked(e, activePopup.id)) {
			// TODO: This is breaking iE?
			if(Dsq.Popup.popupListener) {
				Dsq.Utils.removeEventListener(Dsq.Popup.popupListener);
			}
			
			// Kill overlay
			var overlay = Dsq.$('dsq-overlay');
			if(overlay) { Dsq.Utils.deleteNode(overlay); }
			
			try {
				Dsq.Utils.deleteNode(activePopup);
			} catch(e) {
				// HACK: IE6 throws an error when using deleteNode() with a node containing a <table> in the html.
				activePopup.parentNode.removeChild(activePopup);
			}
			Dsq.Popup.activePopup = {};
		}

		if(!force && Dsq.Popup.isClicked(e, link)) {
 			Dsq.Popup.activePopup.linkClicked = true;
		}

	};

	this.initPopup = function(popup, post_id, type, extra_classes) {
		popup.className = 'dsq-popup dsq-popup-' + type + ' ' + (extra_classes ? extra_classes : '');
		if(Dsq.Utils.ie6 || Dsq.Utils.ie7) {
			// HACK: We can't modify the body before it's ready, so we need
			//       to use an IE-safe "DOMReady" workaround before loading
			//       our popup.
			Dsq.Utils.execOnReady(function() {Dsq.$b.appendChild(popup); });
		} else {
			Dsq.$b.appendChild(popup);
		}

		popup.style.display = 'block';

		var xPos = (Dsq.Utils.getWindowSize()[0] - popup.offsetWidth) / 2;
		var yPos = (Dsq.Utils.getWindowSize()[1] - popup.offsetHeight) / 2;

		if(Dsq.Utils.ie6) {
			yPos += Dsq.Utils.getScrollPos()[1];
		}

		popup.style.left = xPos + 'px';
		popup.style.top = yPos + 'px';

		Dsq.Popup.activePopup = {
			'el' : popup,
			'id' : post_id,
			'type': type,
			'linkClicked' : false
		};
	};

	this.isClicked = function(e, id) {
		var t = e.target || e.srcElement;
		while(t && t.parentNode) {
			if(t.id == id) {
				return true;
			}

			t = t.parentNode;
		}
		return false;
	};
};
// Dsq.Popup

/**
 * Dsq.Templates
 */
Dsq.Templates = new function() {
	/*
	 * Counter keeping track of the number of posts iterated over.
	 */
	this.postLoopCounter = 0;
	this.filters = {};
	this.addPostContainer = 'dsq-post-add';
	this.textareaContainer = 'dsq-post-add';

	this.registerTemplate = function(name, func) {
		this['$$_' + name] = func;

		if(typeof DsqLocal.Filters != 'undefined'
		&& typeof DsqLocal.Filters[name] == 'function') {
			// Push filters to this.filters to unify code.
			this.filters[name] = this.filters[name] || [];
			this.filters[name].push(DsqLocal.Filters[name]);
		}

		this[name] = function() {
			var ret;

			if(typeof DsqLocal.Templates != 'undefined'
			&& typeof DsqLocal.Templates[name] == 'function') {
				ret = DsqLocal.Templates[name].apply(this, arguments);
			}

			if(ret === undefined) {
				ret = this['$$_' + name].apply(this, arguments);
			}

			if(this.filters[name]) {
				var args = [ret];

				args.push.apply(args, arguments);
				for(var i = 0; i < this.filters[name].length; i++) {
					ret = this.filters[name][i].apply(this, args);
				}
			}

			return ret;
		};
	};

	this.registerFilter = function(name, func) {
		this.filters[name] = this.filters[name] || [];
		this.filters[name].push(func);
	};

	/**
	 * Dsq.Templates.Filters
	 */
	this.Filters = new function() {
		this.commentContainer = function(post_id, s) {
			var _meta = Dsq.jsonData.posts[post_id];
			var classes = [];
			if(Dsq.jsonData.request.page > 1) {
				classes.push('dsq-append');
			}

			//
			// Extra classes used for custom themes
			//

			if(_meta.depth) {
				classes.push('dsq-comment-child', 'dsq-depth-' + _meta.depth, 'dsq-parent-is-' + _meta.parent_post_id);
			}


			//

			if(_meta.author_is_creator) {
				// TODO: We need to deprecate the "special" class since it is not properly prefixed.
				classes.push('special', 'dsq-special');
			}
			if(_meta.author_is_moderator) {
				classes.push('dsq-moderator');
			}
			classes.push(['dsq-odd', 'dsq-even'][Dsq.Templates.postLoopCounter % 2]);

			s = s.substring(0, s.lastIndexOf('>'));
			return s + ' class="dsq-comment ' + classes.join(' ') + '" style="margin-left:' + _meta.depth*30 + 'px">';
		};

		this.commentContent = function(post_id, s) {
			var _meta = Dsq.jsonData.posts[post_id];
			if (_meta.killed) {
				return '<em>Comment removed.</em>';
			} else if (!_meta.approved) {
				return '<em>This comment was flagged for review.</em>';
			}

			s = s.replace(Dsq.MEDIA_POST_RE, Dsq.MediaPostHandler);
			return s;
		};
	};

	//
	// Thread
	//
	// TODO: These need to be stripped of all Django template tags.

	this.authPost = function() {
		if (!Dsq.jsonData.context.show_reply) {
			return '';
		}
		var result = [];
		result = result.concat([
				'<div id="dsq-auth"',
						Dsq.jsonData.integration.reply_position ? 'class="dsq-auth-bottom"' : '',
						'>',
					'<div class="dsq-by">',
						'<a href="http://disqus.com" target="_blank">',
							(Dsq.jsonData.integration.disqus_logo ?
								Dsq.Utils.interpolate('<img src="%(media_url)s/images/embed/by-disqus.png" alt="discussion by DISQUS">') :
								Dsq.Utils.interpolate('<img src="%(media_url)s/images/embed/dsq-button-120x19.png" alt="discussion by DISQUS">')
							),
						'</a>',
					'</div>',
					'<div class="dsq-auth-header">',
						'<h3 id="dsq-add-new-comment" class="dsq-h3-addcomment">',
								Dsq.Strings.ADD_NEW_COMMENT,
						'</h3>',
						'<div id="dsq-login">',
						(!Dsq.jsonData.request.is_authenticated && Dsq.jsonData.forum.allow_anon_post
								? '<p class="dsq-login-message" id="dsq-login-message">You are commenting as a <a class="dsq-help" title="Click for more information" href="#" onclick="Dsq.Popup.helpBadges(); return false">Guest</a>. You may select one to log into:</p>'
								: '')
		]);
		if (!Dsq.jsonData.request.is_authenticated) {
			result = result.concat([
							Dsq.Utils.interpolate(
								'<a id="dsq-login-toggle" href="%(disqus_url)s%(login_url)s?next=article:%(thread_id)s" onclick="Dsq.Popup.login(); return false"><img class="dsq-login-icon" src="%(media_url)s/images/dsq-profile-btn.png" title="%(log_into)s" alt="%(log_into)s"/></a>',
								{login_url: Dsq.Urls.LOGIN, thread_id: Dsq.jsonData.thread.id, log_into: Dsq.Strings.LOG_INTO_DISQUS}
								),
							'&nbsp; ',
							(Dsq.jsonData.context.use_fb_connect ?
								'<div id="dsq-fbc-login" onlogin="DisqusFbcParentController.onLogin()" size="medium" background="light" length="short" style="display:inline; margin-right:7px"></div>' :
								''
							),
							(Dsq.jsonData.context.use_twitter_signin ?
								Dsq.Utils.interpolate(
									'<div id="dsq-twitter-login" class="dsq-twitter-login" onclick="Dsq.Twitter.startTwitterConnect();" style="display:inline; cursor: pointer"><img src="%(media_url)s/images/twitter-signin-short.png" style="margin-right:7px" /></div>', {}) : ''),
							(Dsq.jsonData.context.use_openid ?
								Dsq.Utils.interpolate(
									'<div id="dsq-openid-login" class="dsq-openid-login" onclick="Dsq.OpenID.requestURL();" style="display:inline; cursor:pointer;"><img src="%(media_url)s/images/openid-login-button.png"/></div>', {}
								) : '')
			]);
		}
		result = result.concat([
						'</div>', // dsq-login
					'</div>', // dsq-auth-header
					'<div id="dsq-authenticated" class="dsq-authenticated" ',
						Dsq.jsonData.request.is_authenticated ? 'style="display:block"' : '',
						'>',
						'<div class="dsq-authenticated-pic">',
								Dsq.Utils.interpolate('<a href="%(url)s" title="%(request_display_username)s">' +
																			'<img class="dsq-post-avatar" src="%(avatar_url)s" alt="" /></a>',
																			{avatar_url: Dsq.Urls.REQUEST_USER_AVATAR,
																			url: (Dsq.jsonData.request.is_remote
																					 ? Dsq.jsonData.request.url
																					 : Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE) }),
						'</div>',
						'<div class="dsq-authenticated-info">',
							'<ul>',
								'<li>',
									(Dsq.jsonData.request.is_remote
										? Dsq.FmtStrings.LOGGED_IN_AS(
												Dsq.Utils.interpolate('<a href="%(url)s" title="%(request_display_username)s">%(request_display_username)s</a>', {url:Dsq.jsonData.request.url})
										  )
										: Dsq.FmtStrings.LOGGED_IN_AS(
												Dsq.Utils.interpolate('<a href="%(disqus_url)s%(profile_url)s" title="%(request_display_username)s">%(request_display_username)s</a>')
											)
									),
								'</li>',
								'<li class="logout">',
									(!Dsq.jsonData.request.is_remote
										? Dsq.Utils.interpolate('<img class="dsq-login-icon" src="%(media_url)s/images/dsqicon12.png" alt="%(logged_in_as)s"/>&nbsp',
											{logged_in_as: Dsq.FmtStrings.LOGGED_IN_AS(Dsq.jsonData.request.display_username)})
										: ''),

									(!Dsq.jsonData.request.is_remote
										? Dsq.Utils.interpolate('<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="%(logout_from_disqus)s">',
											{logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN, logout_from_disqus: Dsq.FmtStrings.LOGOUT_FROM('DISQUS')})
										: ((Dsq.jsonData.request.remote_domain == 'twitter')
												? Dsq.Utils.interpolate('using Twitter (<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="Logout">Logout</a>)',
												 {logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN})
												: ((Dsq.jsonData.request.remote_domain == 'openid')
													 ? Dsq.Utils.interpolate('using OpenID (<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="Logout">Logout</a>)',
													 {logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN})
													 : ''
													)
											)
									),

									(!Dsq.jsonData.request.is_remote ? Dsq.FmtStrings.LOGOUT_FROM('<span class="logo-disqus">DISQUS</span>') : ''),
									'</a>',
								'</li>',
							'</ul>',
						'</div>',
					'</div>'
		]);
		if (Dsq.jsonData.context.use_fb_connect) {
			result = result.concat([
					'<div id="dsq-fbc-authenticated" class="dsq-authenticated">',
						'<div id="dsq-fbc-profilepic" class="dsq-authenticated-pic" uid="loggedinuser" type="FB.XFBML.ProfilePic" size="square" facebook-logo="true"></div>',
						'<div class="dsq-authenticated-info">',
							'<ul>',
								'<li>',
									'Logged in as <span id="dsq-fbc-name" uid="loggedinuser" type="FB.XFBML.Name" linked="true" useyou="false"></span>',
								'</li>',
								'<li class="logout">using Facebook Connect <a href="#" onclick="javascript:DisqusFbcParentController.logout();return false;">(Logout)</a></li>',
							'</ul>',
						'</div>',
					'</div>'
			]);
		}
		result = result.concat([
				'</div>', // dsq-auth
				'<div id="dsq-toolbar-items">',
				'</div>'
		]);
		result = result.concat([
					//
					//
					//
				((!Dsq.jsonData.forum.allow_anon_post && !Dsq.jsonData.request.is_authenticated) ?
					// Needs to be translated:
					('<p id="dsq-no-anon-msg">Required: Please log into <span class="logo-disqus">Disqus</span> ' +
					(Dsq.jsonData.context.use_fb_connect ? 'or connect with Facebook ' : '') +
					(Dsq.jsonData.context.use_twitter_signin ? 'or sign in with Twitter ' : '') +
					(Dsq.jsonData.context.use_openid ? 'or sign in using OpenID ' : '') +
					Dsq.Utils.interpolate('to comment on <strong>%(forum_name)s</strong>.</p>')) :
					''
				),
				'<div id="dsq-post-add"></div>',
				'<div style="margin:10px 0">',
				((Dsq.jsonData.forum.use_media) ?
						'<a href="#" id="dsq-media-link" onclick="Dsq.Post.showMenu(this, false, \'media\'); return false">' + Dsq.Strings.USE_MEDIA + ' <small>&#9660;</small></a>' :
						''),
				'</div>'
		]);
		return result.join('');
	};


	this.header = function() {

		var html = '\<h3 id="dsq-comments-count" class="dsq-h3-commentcount">\
	 <span id="dsq-num-posts">78</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://tech-recipes.disqus.com/myspace_hack_to_download_any_song_on_myspace_8212_xml_method_myspace_tech_recipes/latest.rss"><img src="http://media.disqus.com/images/embed/bullet-feed.png"></a>\
	 </span>\
	 </h3>\
	 <div id="dsq-options" style="margin:15px 0">\
	 <span class="dsq-item-sort">\
	 Sort by\
	 <select id="dsq-sort-select" onchange="Dsq.Thread.sortBy(this.value);">\
	 <option value="hot" selected="selected">Popular now</option>\
	 <option value="best" >Best Rating</option>\
	 <option value="newest" >Newest first</option>\
	 <option value="oldest" >Oldest first</option>\
	 </select>\
	 &nbsp;\
	 </span>\
	 <span class="dsq-item-cp"><a href="http://tech-recipes.disqus.com/myspace_hack_to_download_any_song_on_myspace_8212_xml_method_myspace_tech_recipes/">Community Page</a>&nbsp;&nbsp;&nbsp;</span>\
	 <span class="dsq-item-subscribe">\
	 <img src="http://media.disqus.com/images/embed/email.png" style="width:12px;height:12px;vertical-align:middle">\
	 <span id="dsq-subscribe">\
	 <a href="#" onclick="Dsq.Thread.subscribe(1); return false">Subscribe by email</a>\
	 </span>\
	 </span>\
	 </div>\
	 <div id="dsq-alerts">\
	 </div>\
		';

		
			html = Dsq.Templates.authPost() + html;
		

		
		if (Dsq.jsonData.request.is_moderator) { 
			html = ' \
			<div class="dsq-alert-message dsq-upgrade-message"> \
				<strong>Disqus upgrade available.</strong> Hi ' + Dsq.jsonData.request.display_username + ', this message is being displayed to you because you are a moderator of this site. <a href="#" onclick="Dsq.$(\'dsq-upgrade-message\').style.display=\'block\';this.style.display=\'none\';return false">Click here for details.</a> \
				<div style="display:none; margin-top:10px;" id="dsq-upgrade-message"> \
					A new theme is available with added features. <a href="http://disqus.com/comments/settings/' + Dsq.jsonData.forum.url + '/?p=customize">To change your theme, click here</a> and choose the theme Narcissus. \
					If you do not upgrade, you are missing out on features such as: real-time commenting, new sign-in integrations, and an upgrade interface. \
					<strong>This message will automatically go away in one week.</strong> \
				</div> \
			</div> \
			' + html; 
		}
		return html;
	};

	this.footer = function() {
		var html = Dsq.Templates.pagination();

		

		html += Dsq.Templates.reactions();

		

		return html;
	};

	this.pagination = function() {
		var html = '';
		
		if (Dsq.$('dsq-pagination')) { Dsq.$('dsq-pagination').innerHTML = ''; }
		if (!Dsq.jsonData.thread.paginate) { return ''; }

		//
		// TODO: num_paginator still uses the template tag for pagination, 
		// 		while append_paginator does it all in JavaScript.
		//		This should all be in JavaScript.
		//

		if (Dsq.jsonData.thread.num_pages > 1 && Dsq.jsonData.request.page < Dsq.jsonData.thread.num_pages) {
			html = ' \<a class="dsq-paginate-append-text" href="#" onclick="Dsq.Thread.paginate(Dsq.jsonData.request.page + 1, this); return false">Show more comments...</a>\
	 <button type="button" class="dsq-button-small dsq-paginate-append-button" onclick="Dsq.Thread.paginate(Dsq.jsonData.request.page + 1, this);">Load more comments</button>\
			';
		}
		
		if (Dsq.$('dsq-pagination')) {
			Dsq.$('dsq-pagination').innerHTML = html;
			return '';
		} else {
			return '<div id="dsq-pagination" class="dsq-pagination">' + html + '</div>';
		}
	};

	this.trackbacks = function() {
		var html = '';

		if(typeof DsqLocal != 'undefined' && DsqLocal.trackback_url && DsqLocal.trackbacks) {
			var trackbacks = DsqLocal.trackbacks;
			var trackback_url = DsqLocal.trackback_url;
		} else {
			var trackbacks = [
			
			
			];
			var trackback_url = 'http://tech-recipes.disqus.com/myspace_hack_to_download_any_song_on_myspace_8212_xml_method_myspace_tech_recipes/trackback/';
		}

		html += '<div class="dsq-item-trackback">Trackback URL&nbsp;&nbsp;<input class="dsq-trackback-url" onclick="this.select()" readonly="true" value="' + trackback_url + '"></div>';

		if(trackbacks.length) {
			html += '<ul id="dsq-references">'
			for(var i = 0; i < trackbacks.length; i++) {
				var trackback = trackbacks[i];
				html += '<li><cite><a href="' + trackback.author_url + '" rel="nofollow">' + trackback.author_name + '</a></cite> \
						<p class="dsq-meta">' + trackback.date + '</p> \
						<p class="dsq-content">' + trackback.excerpt + '</p></li>';
			}
			html += '</ul>';
			html = '<h3 class="dsq-h3-trackbacks">Trackbacks</h3>' + html;
		}

		return html;
	}

	this.showRetweets = function(id, limit, element_id /* Optional */) {
		var source, html = '';

		for (var i = 0, reaction; reaction = Dsq.jsonData.reactions[i]; i++) {
			if (reaction.id === id) {
				source = reaction.retweets;
			}
		}

		if (source) {
			if (limit === 0) {
				limit = source.length;
			}

			for (var j = 0; j < limit; j++) {
				var rt = source[j];
				html += '<a href="' + rt.url + '">' + rt.author_name + '</a>'	+ ((j === (limit - 1)) ? '.' : ', ');
			}
		}

		if (element_id === undefined) {
			return html;
		}

		var element = document.getElementById(element_id);
		element.innerHTML = html;
		return element;
	};

	this.showMoreReactions = function(reactions, has_more, start, limit) {
		var link = document.getElementById('dsq-show-more-reactions');
		var container = link.parentNode;
		container.removeChild(link);

		for (var i = 0, reaction; reaction = reactions[i]; i++) {
			var el = Dsq.Templates.generateReactionHTML(reaction);
			if (el) {
				container.innerHTML += el;
			}
		}

		if (has_more) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = start;
			var l = limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			container.innerHTML += '<li id="dsq-show-more-reactions"><a href="#" onclick="' + handler + '">Show more reactions</a></li>';
		}
	};

	this.generateReactionHTML = function(reaction) {
		if (reaction.body === null || reaction.body == '') {
			return;
		}

		if (reaction.author_name === '') {
			reaction.author_name = '&nbsp;';
		}

		if (reaction.url === '') {
			reaction.url = reaction.get_service_url;
		}

		/* Reaction HTML begins */
		var item = '<li class="dsq-reaction" id="dsq-reaction-' + reaction.id + '">'
			+ '<div class="dsq-reaction-header">'
			+ '<div class="dsq-header-avatar">';

		if (reaction.author_url && reaction.author_url !== '') {
			item += '<a target="_blank" href="' + reaction.author_url +'">';
		} else {
			item += '<a target="_blank" href="#" onclick="return false;">';
		}

		if (reaction.avatar_url && reaction.avatar_url !== '') {
			item += '<img src="' + reaction.avatar_url + '"/>';
		} else {
			item += '<img src="' + Dsq.jsonData.media_url + '/images/noavatar32.png"/>';
		}

		var service_icon = (reaction.get_service_name == 'trackback' || reaction.get_service_name == 'pingback' ? 'rss' : reaction.get_service_name.replace(' ', ''));
		item += '<img class="dsq-service-icon" src="' + Dsq.jsonData.media_url + '/images/reactions/services/' + service_icon + '.png"/>'
			+ '</a></div>'
			+ '<cite><span>' + reaction.author_name + '</span></cite>'
			+ '<span class="dsq-header-meta"><a class="dsq-header-time">' + reaction.date_created + '</a></span>'
			+ '</div><div class="dsq-reaction-body">'
			+ '<div class="dsq-reaction-message">' + reaction.body + '</div>'
			+ '<div class="dsq-reaction-footer">From <a class="dsq-service-name" target="_blank" href="' + reaction.url + '">' + reaction.get_service_name + '</a> '
			+ 'via <a href="' + reaction.source_url + '">' + (reaction.source == 'backtype' ? 'BackType' : 'UberVU') + '</a>'
			+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator ? '&nbsp;&bull;&nbsp;<a class="dsq-hide-reaction" href="#" onclick="Dsq.Reaction.hide(' + reaction.id + '); return false;">Hide</a>' : '') + '</div></div>';

		if(reaction.retweets) {
			var num_retweets = reaction.retweets.length;
			if (num_retweets > 0) {
				item += '<div class="dsq-reaction-retweets">';
				if (num_retweets == 1) {
					item += 'One more retweet from <a href="' + reaction.retweets[0].url + '">'  + reaction.retweets[0].author_name + '</a>';
				} else {
					item += (num_retweets + ' more retweets from ');

					item += '<span id="dsq-reaction-retweets-' + reaction.id + '">';
					var n_tweets = (num_retweets > 15) ? 15 : num_retweets;
					item += Dsq.Templates.showRetweets(reaction.id, n_tweets);

					if (n_tweets != num_retweets) {
						item += '</span> <a onclick="Dsq.Templates.showRetweets(' + reaction.id + ', 0, \'dsq-reaction-retweets-' + reaction.id + '\');'
							+ 'this.parentNode.removeChild(this); return false;" href="#">Show all</a>';
					}
				}
				item += '</div>';
			}
		}

		item += '</li>'; /* Reaction HTML ends */
		return item;
	};

	this.reactions = function() {
		var html, reaction;

		if (Dsq.jsonData.reactions === undefined || Dsq.jsonData.reactions.length === 0) {
			return '';
		}

		html = '';
		for (var i = 0; reaction = Dsq.jsonData.reactions[i]; i++) {
			var item = Dsq.Templates.generateReactionHTML(reaction);
			if (item) {
				html += item;
			}
		}

		if (Dsq.jsonData.has_more_reactions) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = Dsq.jsonData.reactions_start;
			var l = Dsq.jsonData.reactions_limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			html += '<li id="dsq-show-more-reactions"><a href="#" onclick="' + handler + '">Show more reactions</a></li>';
		}

		return '<h3 class="dsq-h3-reactions">Reactions</h3><ul id="dsq-reactions" class="dsq-reactions">' + html + '</ul>';
	};
	
	this.missingPermissions = function() {
		return '';
	};

	//
	// Post
	//

	this.prependPost = function(post_id) {
		var html = '<div id="comment-' + post_id + '"></div>';
		return html;
	};

	this.appendPost = function(post_id) {
		var html = '<div id="dsq-comment-reply-' + post_id + '"></div>';
		return html;
	};

	this.postPrependHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];

		var _includeServices = function() {
			var userServices = Dsq.Post.getUserServices(null, post_id);
			var html = '';
			var hiddenThreshold = 3; // Define # of services to show before stuffing them in hidden div

			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == hiddenThreshold
					? '<li id="dsq-drop-hidden-' + post_id +'" class="dsq-drop-hidden"><ul>'
					: '')
				+ '<li class="dsq-drop-services"> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank"> \
						<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '">'
					+ userServices[i].name
					+ '</a> \
				</li>';
			}

			if(i >= hiddenThreshold) {
				html += '</ul></li> \
				<li id="dsq-drop-more-' + post_id + '" class="dsq-drop-more"><a href="#" onclick="Dsq.Post.dropProfileMore(this, '+ post_id + '); return false"><small>&#9660;</small></a></li> \
				';
			}
			return html;
		};

		return ' \
			<div class="dsq-header-avatar" id="dsq-header-avatar-' + post_id + '" onmouseover="Dsq.Post.dropProfile(' + post_id + ')"> \
				<a id="dsq-avatar-' + post_id + '" class="dsq-avatar" href="' + userData.url + '" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">'
			+ (Dsq.jsonData.forum.show_avatar
				? '<img src="' + Dsq.jsonData.users[_meta.user_key].avatar + '" alt="" />'
				: '')
			+ '</a>'
			+ '</div> \
		';
	};

	this.postAppendHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];

		return ''
			+ (_meta.author_is_moderator
				? '<img class="dsq-mod-star" src="http://media.disqus.com/images/bullet-star.png" title="Moderator" alt="" />'
				: '')
			+ '<span class="dsq-header-meta"> \
				<a id="dsq-time-' + post_id + '" class="dsq-header-time" href="#comment-' + post_id + '" title="Permalink">' + _meta.date + '</a> \
			</span>';
	};

	this.preBody = function(post_id) {
		return '';
	}

	this.postBody = function(post_id) {
		// TODO: Deprecate flagging conditional
		var _meta = Dsq.jsonData.posts[post_id];
		return ''
			+ (_meta.edited
				? '<p class="dsq-editedtxt">(Edited by a moderator)</p>'
				: '')
			;
	};

	this.postFooter = function(post_id) {
		// TODO: Use media should be conditional
		var _meta = Dsq.jsonData.posts[post_id];
		if(_meta.killed) { return ''; }

		return ' \
			<div class="dsq-comment-footer" id="dsq-comment-footer-' + post_id + '"> \
				<div id="dsq-points-' + post_id + '" class="dsq-likedtxt">'
				+ (_meta.points
					? _meta.points + Dsq.Utils.pluralize(_meta.points, ' person', ' people') + ' liked this comment.'
					: '')
				+ '</div>'
				+ '<ul class="dsq-comment-options dsq-list-style">'
				+ (_meta.votable
					? '<li class="dsq-list-first dsq-rate" id="dsq-rate-cont-' + post_id + '">'
					+ (!_meta.up_voted
						? '<a href="#" onclick="Dsq.Post.rate(this, ' + post_id + ', 1); return false;">Like</a>'
						: 'You liked this.') + '</li>'
					: '')
				+ '<li class="dsq-report' + (!_meta.votable ? ' dsq-list-first' : '') + '" id="dsq-post-report-' + post_id + '"><a href="#" class="dsq-post-report" onclick="Dsq.Post.report(' + post_id + ', false); return false;">Report</a></li> \
				</ul> \
				<ul class="dsq-list-style">'
				+ (_meta.can_reply
					? '<li class="dsq-list-first"><a href="#" id="dsq-reply-link-' + post_id +'" onclick="Dsq.Post.toggleReply(this, ' + post_id +'); return false;">Reply</a></li>'
					: '')
				+ (_meta.can_reply && !_meta.has_replies && _meta.from_request_user
					? '<li id="dsq-edit-el-' + post_id + '"><a id="dsq-edit-link-' + post_id + '" href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); return false;">Edit</a></li>'
					: '')
				+ '<li class="' + (!_meta.can_reply ? 'dsq-list-first' : '') + '" id="dsq-more-el-' + post_id + '"><a id="dsq-more-link-' + post_id + '" href="#" onclick="Dsq.Post.showMenu(this, ' + post_id + ', \'more\'); return false">More <small>&#9660;</small></a></li>'
				+ (Dsq.jsonData.forum.use_media
					? '<li id="dsq-media-el-' + post_id +'" style="display:none"><a id="dsq-media-link-' + post_id + '" href="#" onclick="Dsq.Post.showMenu(this, ' + post_id + ', \'media\'); return false">Use Media <small>&#9660;</small></a></li>'
					: '')
				+ '</ul>'
				+ '<div id="dsq-reply-bar-' + post_id + '" class="dsq-reply-bar" style="display:none"> \
						<div id="dsq-reply-bar-items-' + post_id + '" class="dsq-reply-bar-items"> \
						</div> \
						<div id="dsq-reply-bar-auth-' + post_id + '" class="dsq-reply-bar-auth"> \
							 \
								 \
								 	<a href="#" class="dsq-help dsq-reply-req-opt" title="You are commenting as a Guest. You may choose to log into an existing DISQUS Profile, your Facebook, Twitter or OpenID account to comment on Tech-Recipes" onclick="Dsq.Popup.helpBadges(); return false">Optional:</a> \
								 \
								<img class="dsq-login-icon" src="http://media.disqus.com/images/dsq-favicon-16x16.png" alt="" /> \
								<a id="dsq-reply-login-' + post_id + '" href="http://disqus.com/profile/login/?next=article:5204527" onclick="Dsq.Popup.login(); return false">Login</a> \
								 \
									&nbsp;or&nbsp; \
									<img class="fb_login_image" src="http://static.ak.fbcdn.net/images/fbconnect/login-buttons/connect_light_small_short.gif" alt="Facebook Connect"/> \
									<a href="#" onclick="FB.Connect.requireSession(DisqusFbcParentController.onLogin); return false;">Connect</a> \
								 \
								&nbsp;or&nbsp; \
									<img src="http://media.disqus.com/images/twitter-signin-icon.png" alt="" /> \
									<a href="#" onclick="Dsq.Twitter.startTwitterConnect(); return false">Sign-in</a> \
								 \
								 \
							 \
						</div> \
					</div> \
					<div id="dsq-reply-' + post_id + '"></div> \
			</div> \
		';
	};

	//
	// Iframes
	//

	this._makeAttributes = function(attributes) {
		// Makes a tag attributes string out of an object.
		// Caller is responsible for making sure nothing needs to be escaped.
		var result = [];
		for (key in attributes) {
			result.push(' ' + key + '="' + attributes[key] + '"');
		}
		result = result.join('');
		return result;
	};

	this._frameGeneric = function(base_url, params, attributes) {
		if(typeof(disqus_callback_params) == 'undefined') {
			disqus_callback_params = '';
		}

		var default_params = {
			// TODO: These should be moved to Dsq.jsonData.
			'f'				: 'tech-recipes',
			't'				: 'myspace_hack_to_download_any_song_on_myspace_8212_xml_method_myspace_tech_recipes',
			// Do we need encodeURIComponent here?
			'ifrs'			: encodeURIComponent(disqus_iframe_css),
			'to_redirect'	: encodeURIComponent(window.location),
			'cbp'			: disqus_callback_params,
			'ff'			: Dsq.Thread.ff,
			'fc'			: Dsq.Thread.fc,
			'ac'			: Dsq.Thread.ac,
			'default_text'	: disqus_default_text
		};

		base_url += '?' + (new Date()).getTime();
		// Add params to default_params.
		if(params) {
			for(var key in params) {
				if(params.hasOwnProperty(key)) {
					default_params[key] = encodeURIComponent(params[key]);
				}
			}
		}
		// Build querystring.
		for(var key in default_params) {
			if(default_params[key] && default_params.hasOwnProperty(key)) {
				base_url += '&' + key + '=' + default_params[key];
			}
		}

		return [
			'<iframe marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0"',
			(' allowtransparency="true" src="' + base_url + '"'),
			this._makeAttributes(attributes),
			'</iframe>'].join('');
	};

	this.frameLogin = function(opt_attributes) {
		var params = {};
		var base_url = 'http://disqus.com/embed/login.html';
		var attributes = opt_attributes || {};
		attributes['class'] = 'dsq-post-login';

		if(typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}
		return this._frameGeneric(base_url, params, attributes);
	};

	this.frameReply = function(post_id, extra_params, attributes) {
		// Returns the HTML for a reply iframe. Called by Dsq.Iframes.setReplyIframeToContainer
		var _meta = (typeof post_id != 'undefined') ? Dsq.jsonData.posts[post_id] : false;
		var base_url = Dsq.Urls.REPLY;
		var params = {
			'def_email'		: disqus_def_email,
			'def_name'		: disqus_def_name
		};
		if(extra_params) {
			for(var key in extra_params) {
				if(extra_params.hasOwnProperty(key)) {
					params[key] = extra_params[key];
				}
			}
		}
		if(_meta) {
			params['parent_post'] = post_id;
		}
		if(typeof disqus_per_page != 'undefined') {
			params['per_page'] = disqus_per_page;
		}
		if(typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}
		if(Dsq.jsonData.request.is_authenticated) {
			attributes['class'] += '-authenticated';
		}
		return this._frameGeneric(base_url, params, attributes);
	};

	this.frameEdit = function(post_id) {
		var _meta = (typeof post_id != 'undefined') ? Dsq.jsonData.posts[post_id] : false;
		var base_url = 'http://disqus.com/embed/edit.html';
		var params = {
			'p' : post_id
		};
		return this._frameGeneric(base_url, params, {'class': 'dsq-post-edit', 'name': 'dsq-edit_' + post_id + '-frame'});
	};

	//
	// Menus
	//

	this.menuMore = function(post_id) {
		// TODO: "Remove post" button should hide menu.
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		return ' \
			<li><a href="#comment-' + post_id + '" onclick="Dsq.Popup.permalink(' + post_id + ')">Link</a></li> \
			<li><a href="#" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">Profile</a></li>'
	+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator
		? '	<li class="dsq-menu-sep"></li>' + (_meta.email ? '<li class="dsq-admin-email">' + _meta.email + '</li>' : '')
		+ '	<li class="dsq-admin-ip">' + _meta.ip + '</li> \
			<li class="dsq-menu-sep"></li>'
		+ (Dsq.jsonData.request.moderator_can_edit
			? ' <li class="dsq-admin-edit"><a href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); return false;">Edit Comment</a></li>'
			: '')
		+ ' <li class="dsq-remove"><a href="#" onclick="Dsq.Post.removePost(' + post_id + ', 1); return false;">Remove Comment</a></li> \
			<li class="dsq-report-spam"><a href="#" onclick="Dsq.Post.reportSpam(' + post_id + '); return false;">Mark Spam</a></li> \
			<li class="dsq-block-user"><a href="#" onclick="Dsq.Popup.blacklist(' + post_id + '); return false">Block User</a></li>'
		: '');
	};

	this.menuMedia = function(post_id) {
		return ' \
			<li><a href="#" onclick="Dsq.Post.toggleMediaReply(this, ' + post_id + ', \'seesmic\'); return false;">Record video</a></li> \
		';
	};

	this.dropProfile = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];

		var _includeServices = function() {
			var userServices = Dsq.Post.getUserServices(null, post_id);
			var html = '';
			var hiddenThreshold = 3; // Define # of services to show before stuffing them in hidden div

			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == hiddenThreshold
					? '<li id="dsq-drop-hidden-' + post_id +'" class="dsq-drop-hidden"><ul>'
					: '')
				+ '<li class="dsq-drop-services"> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank"> \
						<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '">'
					+ userServices[i].name
					+ '</a> \
				</li>';
			}

			if(i >= hiddenThreshold) {
				html += '</ul></li> \
				<li id="dsq-drop-more-' + post_id + '" class="dsq-drop-more"><a href="#" onclick="Dsq.Post.dropProfileMore(this, '+ post_id + '); return false"><small>&#9660;</small></a></li> \
				';
			}
			return html;
		};


		var menu = '<li class="dsq-drop-showlnk"><a href="#" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">Expand &#8663;</a></li>';
		var pointsMessage = '';
		if (userData['registered']) {
			pointsMessage = 'with ' + userData['points'] + ' points (more points are better).';
		}

		if (userData['is_remote']) {
			var domain = userData['remote_domain_name'];
			menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' is a ' + domain + ' user ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
			menu += '<span class="dsq-badge-' + domain.toLowerCase() + '">' + domain + '</span></li>';
		} else if (userData['registered']) {
			if (userData['verified']) {
				menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has a verified commenter profile ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
				menu += '<span class="dsq-badge-verified">Verified</span></li>';
			} else {
				menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has a registered, but unverified, commenter profile ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
				menu += '<span class="dsq-badge-registered">Registered</span></li>';
			}
		} else {
			menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has not claimed this commenter profile." onclick="Dsq.Popup.helpBadges()"><span class="dsq-badge-guest">Guest</span></li>';
		}

		menu += _includeServices();
		return menu;
	};

	//
	// Popups
	//

	this._popupGeneric = function(content) {
		return ' \
		<div class="dsq-popup-content"> \
			<div class="dsq-popup-top"></div> \
			<div class="dsq-popup-body" class="clearfix"> \
				<div class="dsq-popup-body-padding"> \
					<div class="dsq-popup-header"> \
						<a class="dsq-close-link" href="#" onclick="Dsq.Popup._closePopup(null, true); return false"><img src="http://media.disqus.com/images/modal-close.png" alt="" /></a>'
						+ content['header']
					+ '</div>'
					+ content['body']
					+ '<div class="powered-by"><a href="http://disqus.com/comments/">Powered by <img src="http://media.disqus.com/images/embed/disqus-logo.png" alt="Disqus Comments" style="margin-bottom:-5px" /></a></div> \
				</div> <!-- padding --> \
			</div> <!-- body --> \
			<div class="dsq-popup-bottom"></div> \
		</div> \
		';
	};

	this.popupProfile = function(user_key) {
		var userServices = Dsq.Post.getUserServices(user_key, null);
		var userData = Dsq.jsonData['users'][user_key];
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		var _includeServices = function() {
			var html = '';
			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == 0
					? '<h4>Connections</h4><ul>'
					: '')
				+ '<li> \
					<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '" title="' + userServices[i].name.toLowerCase() + '" /> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank">'
					+ userServices[i].name
					+ '</a> \
				</li>'
				+ (i+1 == userServices.length ? '</ul>' : '');
			}
			return html;
		};

		headerHtml = ' \
			<table> \
				<tr> \
					<td> \
						<a class="dsq-profile-userurl" href="' + userData.url + '"><img class="dsq-popup-profile-avatar" src="' + userData['avatar'] + '" alt="" /></a> \
					</td> \
					<td> \
						<div class="dsq-popup-profile-user"> \
							<h3>' + userData['display_name'] + '</h3> \
							<div class="dsq-popup-profile-user-stats" id="dsq-popup-profile-user-stats-' + user_key + '">Loading...</div> \
						</div> \
					</td> \
				</tr> \
			</table> \
		';

		bodyHtml = ' \
			<div class="dsq-popup-profile-state"> \
				This is a&nbsp;<span class="'
					+ (userData['registered']
						? (userData['verified']
							? ' dsq-badge-verified'
							: (userData['is_remote']
								? ' dsq-badge-' + userData['remote_domain_name'].toLowerCase()
								: ' dsq-badge-registered')
							)
							: ' dsq-badge-guest') + '">'
			+ (userData['registered']
				? (userData['verified']
					? 'Verified'
					: (userData['is_remote']
						 ? userData['remote_domain_name']
						 : 'Registered')
					)
				: 'Guest')
			+ '</span>&nbsp;commenter profile.'
			+ '&nbsp;<a class="dsq-profile-userurl" href="' + userData.url + '"><strong>View more comments </strong></a>'
			+ (!userData['points']
				? '<p class="dsq-popup-notice">If this is you, <a href="http://disqus.com/profile" target="_blank">claim it now</a> to manage your comments.</p>'
				: '')
			+ ((userData['registered'] && !userData['verified'] && (Dsq.jsonData.request.username && (Dsq.jsonData.request.username == userData['username'])) && !userData['is_remote'])
				? '<p class="dsq-popup-notice"><strong>Alert</strong>: You have not verified this account. <a href="http://disqus.com/verify">Verify it now.</a></p>'
				: '')
			+ '</div> \
			<div id="dsq-profile-status-' + user_key + '" class="dsq-popup-profile-status" style="display:none"></div> \
			<div class="dsq-popup-profile-snapshot"> \
				<table> \
					<tr> \
						<td> \
							<div id="dsq-popup-profile-active-sites-wrapper-' + user_key + '"> \
								<h4>Most active sites</h4> \
								<ul id="dsq-popup-profile-active-sites-' + user_key + '"> \
									<li>Loading...</li> \
								</ul> \
							</div> \
						</td> \
						<td>'
							+ _includeServices()
							+ '<div id="dsq-popup-profile-moderated-wrapper-' + user_key + '"> \
								<h4>Moderator of</h4> \
								<ul id="dsq-popup-profile-moderated-' + user_key + '"> \
									<li>Loading...</li> \
								</ul> \
							</div> \
						</td> \
					</tr> \
				</table> \
			</div> \
			';

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.popupReblog = function() {
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		headerHtml = ' \
			<cite><span>Reblog this comment</span></cite> \
		';

		bodyHtml = ' \
			<div id="dsq-reblog-form" class="dsq-reblog-form"> \
			</div> \
		';

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.popupModal = function(title, message) {
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		headerHtml = ' \
			<h3>' + title + '</h3> \
		';

		bodyHtml = message;

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.alertContent = function(name, post_id) {
		var alert = {
			'post_not_approved': {
				'title': 'Comment awaiting approval by a moderator',
				'message': 'Thanks for posting. Your comment must be approved by a moderator before appearing here.'
			},
			'post_has_profile': {
				'title': 'Use your existing commenter profile',
				'message': 'You have just posted your commment as a <span class="dsq-badge dsq-badge-guest">Guest</span>, but you may already have a <span class="dsq-badge dsq-badge-registered">Registered</span> commenter profile.<br /><br /><a href="http://disqus.com/claim">Log in and claim this comment!</a>'
			}
		};
		return alert[name] || false;
	};

	//
	// Actions
	//

	this.voted = function(post_id, points, vote) {
		// Update number of points
		Dsq.$('dsq-points-' + post_id).innerHTML = points + Dsq.Utils.pluralize(points, ' person', ' people') + ' liked this comment.';

		// Update link text
		if(vote) {
			Dsq.$('dsq-rate-cont-' + post_id).innerHTML = 'You liked this.';
		}
	};

	this.subscribed = function(status) {
		var title, message;

		if(status) {
			title = 'Subscribed!';
			message = 'You have subscribed to this comment thread. New comments will be sent directly to your email inbox, where you may read and respond by email.';
			Dsq.$('dsq-subscribe').innerHTML = ' \
				<a href="#" onclick="Dsq.Thread.subscribe(0); return false">Unsubscribe</a> \
			';
		} else {
			title = 'Unsubscribed';
			message = 'You have unsubscribed to this comment thread. New comments will no longer be sent to your email inbox.';
			Dsq.$('dsq-subscribe').innerHTML = ' \
				<a href="#" onclick="Dsq.Thread.subscribe(1); return false">Subscribe by email</a> \
			';
		}

		Dsq.Popup.popModal(message, title);

	};
	
	this.highlighted = function() {
		Dsq.Popup.popModal('This comment has been highlighted.', 'Highlighted comment');
	};

	//
	// Media
	//

	this.mediaSeesmic = function(id, thumb) {
		return ' \
			<div id="dsq-seesmic-' + id + '_preview" class="dsq-seesmic-preview"><a href="http://www.seesmic.com/video/' + id + '" target="_blank" class="see_link">&nbsp;</a> \
				<div style="display:block;width:160px; height:120px; border:none; background-image:url(http://t.seesmic.com/thumbnail/' + thumb + ')"> \
					<div id="dsq-seesmic-' + id + '_hide" class="seePlayOverlay" style="display:none;"><img onclick="see_play_video(\'' + id + '\',false)" src="http://media.disqus.com/images/seesmic/stopOverlay.png" width="50" height="50" style="cursor:pointer; cursor:hand; padding-top: 30px; padding-left: 50px" alt="" /></div> \
					<div id="dsq-seesmic-' + id + '_show" class="seePlayOverlay"><img onclick="see_play_video(\'' + id + '\',true)" src="http://media.disqus.com/images/seesmic/playOverlay.png" width="50" height="50" style="cursor:pointer; cursor:hand; border:none; padding-top: 30px; padding-left: 50px" alt="" /></div> \
				</div> \
			</div> \
			<div id="' + id + '_content" style="display:block; width:100%; padding-top:5px"></div> \
		';
	};

	//
	// Callbacks
	//

	this.postComment_onSuccess = function(parent_post_id) {
		// Increment post count
		var num_posts = Dsq.$('dsq-num-posts');
		var total_posts = Dsq.$('dsq-total-posts');
		
		if (num_posts) { 
			num_posts.innerHTML = parseInt(num_posts.innerHTML) + 1;
		}
		if (total_posts) { 
			total_posts.innerHTML = parseInt(total_posts.innerHTML) + 1;
		}
	};
};
// Dsq.Templates


/**
 * Dsq.Post
 */
Dsq.Post = new function() {
	this.openedMenu = {};
	this.menuEventListener = null;
	this.stateReplyToggled = {};
	this.stateEditToggled = {};
	this.stateRecordLink = {};

	/**
	 * Inserts a new post into the document.
	 *
	 * @param after_id {Number}	Insert a post before specified id.  If after_id
	 *							evaluates to false, then post in the front.  If
	 *							after_id is -1, post at the end.
	 */
	this.insert = function(after_id, id, message, author) {
		// Skeleton template from thread_posts.html.
		var skeleton = ' \
			<li id="dsq-comment-%(id)s"> \
				<div id="dsq-comment-header-%(id)s" class="dsq-comment-header"> \
					<cite id="dsq-cite-%(id)s" class="dsq-comment-cite"> \
						<a id="dsq-author-user-%(id)s" href="%(author_url)s" target="_blank" rel="nofollow">%(author_name)s</a> \
					</cite> \
				</div> \
				<div id="dsq-comment-body-%(id)s" class="dsq-comment-body"> \
					<div id="dsq-comment-message-%(id)s" class="dsq-comment-message">%(message)s</div> \
				</div> \
			</li> \
		';
		var _meta = Dsq.jsonData.posts[id];
		var _user_meta = Dsq.jsonData.users[_meta.user_key];
		var markup = Dsq.Utils.interpolate(skeleton, {
			id: id,
			message: message,
			author_url: _user_meta.blog,
			author_name: _user_meta.display_name
		});
		var div = document.createElement('div');
		markup = markup.replace(Dsq.COMMENTS_RE, Dsq.CommentsHandler);
		div.innerHTML = markup;

		if (after_id === -1) {
			Dsq.$('dsq-comments').appendChild(div);
		} else if (!after_id) {
			Dsq.$('dsq-comments').insertBefore(div, Dsq.$('dsq-comments').firstChild);
		} else if (Dsq.$('dsq-comment-' + after_id)) {
			// Get next node after "after_id", so we can insert before it.
			// If "after_id" is the last comment, the target node is the
			// last node.
			
			// var append_post_id = Dsq.Templates.appendPost(after_id).replace('<div id="','').replace('"></div>', '');
			var append_post_id = 'dsq-append-post-' + after_id;
			var node = Dsq.$(append_post_id);
			while (node = node.nextSibling) {
				if (!node || node.nodeType == 1) { // 1 == Node.ELEMENT_NODE
					break;
				}
			}
			if (!node) {
				node = Dsq.$(append_post_id);
			}
			node.parentNode.insertBefore(div, node);
		}
	};

	this.incrementPostCount = function() {
		
		var num_posts = Dsq.$('dsq-num-posts');
		var total_posts = Dsq.$('dsq-total-posts');

		if (num_posts) {
			num_posts.innerHTML = parseInt(num_posts.innerHTML, 10) + 1;
		}
		if (total_posts) {
			total_posts.innerHTML = parseInt(total_posts.innerHTML, 10) + 1;
		}
	}
	
	this.outlineComment = function(post_id) {
		Dsq.$('dsq-comment-' + post_id).className += ' dsq-comment-outline';
		setTimeout("(function () { Dsq.Post.clearOutlineComment(" + post_id + ") })()", 3000);
	};
	
	this.clearOutlineComment = function(post_id) {
		Dsq.$('dsq-comment-' + post_id).className = Dsq.$('dsq-comment-' + post_id).className.replace('dsq-comment-outline', '');
	};

	this.showMenu = function(el, id, name) {
		var anchorPos = Dsq.Utils.findPos(el);
		var menu = document.createElement('ul');

		if(this.openedMenu) {
			if(this.openedMenu.linkClicked) {
				this.openedMenu.linkClicked = false;
				return;
			}
		}

		switch(name) {
			case 'more':
				menu.innerHTML = Dsq.Templates.menuMore(id);
				break;
			case 'media':
				menu.innerHTML = Dsq.Templates.menuMedia(id);
				break;
			default:
				break;
		}

		// Add menu to document body
		menu.id = 'dsq-menu-' + id;
		menu.className = 'dsq-menu';
		Dsq.$b.appendChild(menu);

		// Position and show
		anchorPos[1] += 15;
		menu.style.left = anchorPos[0] + 'px';
		menu.style.top = anchorPos[1] + 'px';
		menu.style.display = 'block';

		// Set global reference
		this.openedMenu = {
			'el' : menu,
			'id' : id,
			'name' : name,
			'linkClicked' : false
		};

		// Set listener
		this.menuEventListener = Dsq.Utils.addEventListener(document, 'mouseup', this._hideMenu);
	};

	this._hideMenu = function(e) {
		var el = e.target || e.srcElement;
		var openedMenu = Dsq.Post.openedMenu.el;
		var id = Dsq.Post.openedMenu.id;

		if(!id) {
			var link = 'dsq-' + Dsq.Post.openedMenu.name + '-link';
		} else {
			var link = 'dsq-' + Dsq.Post.openedMenu.name + '-link-' + id;
		}

		if(!openedMenu) {
			return;
		}

		if(!Dsq.Popup.isClicked(e, openedMenu.id)) {
			openedMenu.style.display = 'none';
			Dsq.Utils.removeEventListener(Dsq.Post.menuEventListener);
			Dsq.Utils.deleteNode(openedMenu);

		} else {
			// Hide the menu if a link was clicked inside the menu.  We can't
			// completely remove the menu until the onclick event on the link
			// fires, but the menuEventListener will prevent multiple menus
			// from polluting the DOM.
			if(el && typeof el.href != 'undefined') {
				openedMenu.style.display = 'none';
				Dsq.Post.openedMenu.el = null;
			}
		}

		if(Dsq.Popup.isClicked(e, link)) {
 			Dsq.Post.openedMenu.linkClicked = true;
		}
	};


	this.getUserServices = function(user_key, id) {
		if(!user_key && id) {
			var _meta = Dsq.jsonData.posts[id];
			user_key = _meta.user_key;
		}
		var userData = Dsq.jsonData['users'][user_key];
		var userServices = [];

		// Keep a full list of supported services. This is the order they will display in the drop-profile.
		// Each service must have a corresponding case in _buildServiceUrl()
		var supportedServices = ['blog', 'twitter', 'facebook', 'tumblr'];

		function _buildServiceUrl(serviceName) {
			var data = userData[serviceName];
			var services = {
				blog:		function(d) { return d; },
				twitter:	function(d) { return d; },
				facebook:	function(d) { return d; },
				tumblr:		function(d) { return 'http://' + d + '.tumblr.com'; }
			};
			return services[serviceName](data);
		}

		for(var i = 0; i < supportedServices.length; i++) {
			if(userData[supportedServices[i]]) {
				var serviceUrl = _buildServiceUrl(supportedServices[i]);
				userServices.push({'name' : supportedServices[i], 'url' : serviceUrl});
			}
		}
		return userServices;
	}

	this.dropProfile = function(id) {
		var dp = Dsq.$('dsq-drop-profile-' + id);

		// IE6 needs JS to display/hide. All other browsers use CSS.
		if(dp) {
			if(Dsq.Utils.ie6) dp.style.display = (dp.style.display == 'inline') ? 'none' : 'inline';
			return false;
		} else {
			dp = document.createElement('ul');
		}

		dp.id = 'dsq-drop-profile-' + id;
		dp.className = 'dsq-drop-profile';

		if(Dsq.Utils.ie6) { dp.style.display = 'inline'; }

		var container = Dsq.$('dsq-header-avatar-' + id);
		dp.innerHTML = Dsq.Templates.dropProfile(id);
		container.appendChild(dp);
	};

	this.dropProfileMore = function(el, id) {
		var hiddenItems = Dsq.$('dsq-drop-hidden-' + id);

		hiddenItems.style.display = 'inline';
		el.parentNode.style.display = 'none';
	};

	this._updateReplyLinks = function(el, id) {
		// Update "reply / cancel" links based on state.
		var displayDict = {};

		if(id) {
			if(this.stateReplyToggled[id]) {
				el.innerHTML = 'Cancel';
				displayDict['media'] = 'inline';
				displayDict['edit'] = 'none';
			} else {
				el.innerHTML = 'Reply';
				displayDict['media'] = 'none';
				displayDict['edit'] = 'inline';
			}
		}

		for(var key in displayDict) {
			if(displayDict.hasOwnProperty(key)) {
				var	linkEl = Dsq.$('dsq-' + key + '-el-' + id),
					spacer = Dsq.$('dsq-' + key + '-spacer-' + id);

				if(linkEl) {
					linkEl.style.display = displayDict[key];
					if(spacer) spacer.style.display = displayDict[key];
				}
			}
		}
	};

	this._updateMediaLinks = function(el, id) {
		// Update "use media / cancel" links based on state.
		var appendId = (id) ? ('-' + id) : '';
		var link = Dsq.$('dsq-media-link' + appendId);

		if(this.stateRecordLink[id]) {
			link.innerHTML = 'Cancel Media';
			link.onclick = function() { Dsq.Post.toggleMediaReply(link, id); return false; };
		} else {
			link.innerHTML = 'Use Media <small>&#9660;</small>';
			link.onclick = function() { Dsq.Post.showMenu(link, id, 'media'); return false; };
		}
	};

	this.toggleReply = function(el, id) {
		// Create reply IFrame
		if (window.disqus_use_postmessage) {
			if (!this.stateReplyToggled[id]) {
				Dsq.$('dsq-reply-' + id).style.display = 'block';
				Dsq.$('dsq-reply-bar-' + id).style.display = 'block';
				// Create IFrame if it doesn't exist.
				if (!Dsq.frames['reply_' + id]) {
					var _meta = Dsq.jsonData.posts[id];
					Dsq.frames['reply_' + id] = new Dsq.ReplyFrame(Dsq.$('dsq-reply-frame-' + id), id);
					Dsq.frames['reply_' + id].init();
					Dsq.frames['reply_' + id].setState(id, _meta.depth);
				}
			} else {
				Dsq.$('dsq-reply-' + id).style.display = 'none';
				Dsq.$('dsq-reply-bar-' + id).style.display = 'none';
			}
		} else {
			// DEPRECATED
			if(!this.stateReplyToggled[id]) {
				// Reply toolbar
				Dsq.$('dsq-reply-bar-' + id).style.display = 'block';
				Dsq.Iframes.showReplyIframeInContainerIfAllowed(Dsq.$('dsq-reply-' + id), id);
			} else {
				Dsq.$('dsq-reply-bar-' + id).style.display = 'none';
				Dsq.Iframes.hideAllInContainer(Dsq.$('dsq-reply-' + id));
				if(this.stateRecordLink[id]) {
					// HACK: Cancel media before canceling self.
					this.toggleMediaReply(Dsq.$('dsq-media-link-' + id), id);
				}
			}
		}

		this.stateReplyToggled[id] = !this.stateReplyToggled[id];
		this._updateReplyLinks(el, id);

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE('dsq-reply-' + id); }

		Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_TOGGLED, {
			postId: id,
			opened: this.stateReplyToggled[id]
		});
	};

	this.toggleMediaReply = function(el, id, xtype) {
		id = id || 0;
		if(id) {
			var container = Dsq.$('dsq-reply-' + id);
		} else {
			var container = Dsq.$('dsq-post-add');
		}

		if(!this.stateRecordLink[id]) {
			Dsq.Iframes.showReplyIframeInContainer(container, id, {xtype:xtype}, 'dsq-post-video');
		} else {
			Dsq.Iframes.showReplyIframeInContainer(container, id);
		}
		this.stateRecordLink[id] = !this.stateRecordLink[id];
		this._updateMediaLinks(el, id);

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
	};

	this.edit = function(el, id) {
		Dsq.$('dsq-comment-message-' + id).innerHTML = Dsq.Templates.frameEdit(id);
		el.parentNode.style.display = 'none';
		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE('dsq-comment-message-' + id); }
	};

    this.rate = function(el, id, vote) {
		if(Dsq.jsonData.request.is_authenticated || Dsq.jsonData.forum.allow_anon_votes) {
			if(vote == 1) {
                Dsq.$('dsq-rate-cont-' + id).innerHTML = '<img src="http://media.disqus.com/images/loading-small.gif">';
            }

            Dsq.Utils.execScript('http://disqus.com/forums/tech-recipes/vote.js'
                + '?post_id='    + id
                + '&vote='        + vote);

		} else {
			Dsq.Popup.login(Dsq.Strings.TO_RATE_PLEASE_LOG_IN);
		}
    };

	this.report = function(id, confirmed) {
		if(confirmed) {
			Dsq.Utils.postToUrl('http://disqus.com/forums/tech-recipes/myspace_hack_to_download_any_song_on_myspace_8212_xml_method_myspace_tech_recipes/post_report/', {'post_id': id});
			Dsq.Popup.popModal('Thank you. This comment has been flagged for moderator attention.', 'Successfully flagged');
			Dsq.Utils.deleteNode(Dsq.$('dsq-post-report-' + id));
		} else {
			var title = Dsq.Strings.FLAG_INAPPROPRIATE_COMMENT;
			var message = Dsq.Strings.ARE_YOU_SURE_YOU_WOULD_LIKE_TO_REPORT_THIS_COMMENT_TO_A_MODERATOR + '? \
			<br /><br /> \
			<button type="button" onclick="Dsq.Popup._closePopup(null, true)"><strong>' + Dsq.Strings.NO + '</strong>, ' + Dsq.Strings.NEVER_MIND + '</button>&nbsp;&nbsp;&nbsp;<button type="button" onclick="Dsq.Post.report(' + id + ', true);"><strong>' + Dsq.Strings.YES + '</strong>, ' + Dsq.Strings.FLAG_INAPPROPRIATE_COMMENT + '</button><br /><br />'
			+ Dsq.Strings.THIS_WILL_FLAG_COMMENTS_FOR_MODERATORS_TO_TAKE_ACTION + '. \
			';

			Dsq.Popup.popModal(message, title, id);
		}
	};



	this.showAlert = function(id, msg) {
		var msgEl = Dsq.$('dsq-comment-message-' + id);
		var alert = '<div class="dsq-comment-alert">' + msg + '</div>';

		msgEl.innerHTML = alert + msgEl.innerHTML;
	};

};
// Dsq.Post


/**
 * Dsq.Thread
 */
Dsq.Thread = new function() {
	this.fc = null;
	this.ff = null;
	this.ac = null;

	
	this.adminIsOn = false;

	
	
	

	this.hlComment = null;
	this.hlCommentClass = null;

	this.getNextComment = function(el) {
		var start_id = el.id;
		while(el = el.nextSibling) {
			if(el.id && el.id.indexOf('dsq-comment-') != -1 && el.id != start_id) {
				return el;
			}
		}
		return null;
	};

	this.getActiveCommentId = function() {
		if (document.URL.indexOf('#comment-') >= 0) {
			var anchor = document.URL.slice(document.URL.indexOf('#') + 1);
			return anchor.replace('comment-', '');
		}
		return null;
	};

	this.highlightAnchor = function() {
		var i = this.getActiveCommentId();
		if (i == null) return false;
		var id = 'dsq-comment-' + i;
		var hash = window.location.hash;

		// Toggle the hash incase the comment isn't available when the page loads
		// for WebKit-based browsers.
		if (Dsq.Utils.webkit) {
			window.location.hash = '';
			window.location.hash = hash;
		}

		this.hlComment = Dsq.$(id);
		// Adding this conditional guard pending #289
		if (!this.hlComment) {
			return;
		}
		this.hlCommentClass = this.hlComment.className;
		this.hlComment.className += ' dsq-hl-anchor';

		setTimeout("Dsq.Thread.highlightClear()", 3000);
	};

	this.highlightClear = function() {
		if (!this.hlComment) {
			return;
		}
		this.hlComment.className = this.hlCommentClass;
	};

	this.login = function(toggle) {
		// toggle id is #dsq-reply-login-[id]
		var postId;
		if(toggle.id.indexOf('dsq-reply-login') != -1) {
			postId = toggle.id.slice(16);
			var container = Dsq.$('dsq-reply-' + postId);
		} else {
			var container = Dsq.$('dsq-post-add');
		}

		if(toggle) {
			if(toggle.className == 'dsq-login-active') {
				Dsq.Iframes.showReplyIframeInContainerIfAllowed(container, postId);
				toggle.className = '';
			} else {
				Dsq.Iframes.showLoginIframeInContainer(container, postId);
				toggle.className = 'dsq-login-active';
			}
		} else {
			Dsq.Iframes.showLoginIframeInContainer(container, postId);
		}

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
	};


	this.paginate = function(page, el_clicked, per_page) {
		// Use extra_params to pass any override parameters that we need to persist.
		var extra_params = '';

		// "Per page" can either be overriden by providing it as an argument
		// (per-call) or setting the disqus_per_page override variable (global).
		if(typeof per_page == 'undefined') {
			per_page = null;
		}
		if(typeof disqus_per_page != 'undefined' && per_page === null) {
			per_page = disqus_per_page;
		}

		if(typeof disqus_sort != 'undefined') {
			extra_params += '&sort=' + disqus_sort;
		}
		if(per_page !== null) {
			extra_params += '&per_page=' + per_page;
		}

		Dsq.$('dsq-pagination').innerHTML += '<img src="http://media.disqus.com/images/loading-small.gif">';
		
		if(el_clicked) {
			el_clicked.style.display = 'none';
		}
		
		Dsq.Utils.execScript('http://disqus.com/forums/tech-recipes/thread.js'
			+ '?slug='	+ 'myspace_hack_to_download_any_song_on_myspace_8212_xml_method_myspace_tech_recipes'
			+ '&p='		+ page
			+ extra_params);
	};

	this.sortBy = function(sort) {
		var disqus_script = document.createElement('script');
		var disqus_date = new Date();

		if (location.hash != '') {
			location.hash = '#disqus_thread';
		}

		if(typeof(disqus_url) == 'undefined') {
			disqus_url = disqus_href;
		}
		disqus_script.type = 'text/javascript';
		disqus_script.src = 'http://disqus.com/forums/tech-recipes/thread.js'
			+ '?slug='	+ 'myspace_hack_to_download_any_song_on_myspace_8212_xml_method_myspace_tech_recipes'
			+ '&sort='	+ sort
			+ '&title='
			+ '&'		+ disqus_date.getTime();

		Dsq.$('dsq-comments').innerHTML = '<img src="http://media.disqus.com/images/loading.gif">';
		Dsq.container.appendChild(disqus_script);
	};

	this.subscribe = function(status, email) {
		// `status` is an int -- 1 to subscribe, 0 to unsubscribe
		if(Dsq.jsonData.request.is_authenticated || email) {
			// If authenticated user OR anonymous email provided

			if(email) {
				Dsq.Popup._closePopup(null, true);
			}

			Dsq.Utils.execScript('http://disqus.com/forums/tech-recipes/subscribe.js'
				+'?status=' 	+ status
				+ '&slug='		+ 'myspace_hack_to_download_any_song_on_myspace_8212_xml_method_myspace_tech_recipes'
				+ '&email=' 	+ encodeURIComponent(email));

		} else if(!email) {
			// If anonymous user and no email has been provided yet, prompt for email

			var title = 'Subscribe to this comment thread';
			var message = ' \
				New comments will be sent directly to your email inbox! \
				<div class="dsq-subscribe-submit"> \
					<p><strong>Enter your email address below.</strong></p> \
					<input type="text" id="dsq-subscribe-email"> \
					<button type="button" onclick="Dsq.Thread.subscribe(1, Dsq.$(\'dsq-subscribe-email\').value)">Subscribe</button> \
				</div> \
			';

			Dsq.Popup.popModal(message, title);
		}
	};

	this.showSettings = function() {
		if (!Dsq.jsonData.request.is_moderator) {
			return;
		}

		/* The form has to be re-designed when more options will come out. */
		var html = 'Automatically close comments after <input size="3" id="dsq-thread-days-alive" value="' + Dsq.jsonData.thread.days_alive + '" type="text" /> days. Existing comments will still be displayed.<br /><br />(Using 0 days will disable this feature)<br /><br />'
								 + '<button type="button" onclick="Dsq.Thread.updateDaysAlive();" class="dsq-button-small"><span>Save</span></button>'
								 + '<span id="dsq-thread-settings-status" class="dsq-options-status"></span>';

		Dsq.Popup.popModal(html, 'Settings');
	};

  this.showModeratorActions = function() {
      if (!Dsq.jsonData.request.is_moderator) {
          return;
      }

      var html = '<div class="dsq-moderate-options"><table><tr>' +
                 '<td>' + Dsq.Strings.ACTIONS + '</td><td><ul>';
      html += '<li><a href="#" onclick="Dsq.Thread.toggleClosed(); return false;">' +
              (Dsq.jsonData.thread.closed ? Dsq.Strings.OPEN_THREAD : Dsq.Strings.CLOSE_THREAD) +
              '</a></li>';
      html += '<li><a href="#" onclick="Dsq.Thread.toggleKilled(); return false;">' +
              (Dsq.jsonData.thread.killed ? Dsq.Strings.RESTORE_THREAD : Dsq.Strings.REMOVE_THREAD) +
              '</a></li>';
      html += '</ul></td></tr></table></div>' +
              '<p>Go to the full <a href="http://disqus.com/comments/moderate-threads/" target="_blank">moderate panel</a> for more options.</p>';
      Dsq.Popup.popModal(html, Dsq.Strings.MODERATE_OPTIONS);
  };

	this.updateDaysAlive = function() {
		  var days = Dsq.$('dsq-thread-days-alive').value;
		  var status = Dsq.$('dsq-thread-settings-status');
		  Dsq.Utils.postToUrl('http://disqus.com/forums/tech-recipes/update_days_alive.js', {days:days,thread:Dsq.jsonData.thread.id});
		  status.innerHTML = 'Saved!';
		  window.setTimeout(function() { status.innerHTML = ''; }, 1000);
	};

  this.toggleClosed = function() {
      Dsq.Utils.postToUrl('http://disqus.com/forums/tech-recipes/toggle_thread_closed.js', {thread:Dsq.jsonData.thread.id});
      window.setTimeout(function() { window.location.reload(); }, 500);
  };

  this.toggleKilled = function() {
      Dsq.Utils.postToUrl('http://disqus.com/forums/tech-recipes/toggle_thread_killed.js', {thread:Dsq.jsonData.thread.id});
      window.setTimeout(function() { window.location.reload(); }, 500);
  };
};
// Dsq.Thread

Dsq.Events = function() {
	var obj = {};

	// Private
	var handlers = {};
	var getHandlers = function(event) {
		if (handlers[event] === undefined) {
			handlers[event] = [];
		}
		return handlers[event];
	};

	// Public
	// Value keys : postId, node, xtype
	obj.REPLY_IFRAME_CREATED = 1;
	// Value keys : postId, opened
	obj.REPLY_IFRAME_TOGGLED = 2;
	obj.fire = function(event, opt_value) {
		if (!event) {
			throw new Error('Unknown event');
		}
		var value = opt_value || {};
		for (var i=0; i<getHandlers(event).length; i++) {
			getHandlers(event)[i](value);
		}
	};
	obj.addHandler = function(event, callback) {
		getHandlers(event).push(callback);
	};

	return obj;
}();

/**
 * Dsq.Realtime
 */
Dsq.Realtime = new function() {
	var initialized = false;
	var interval = null;
	var last_checked = Dsq.jsonData.request.timestamp;
	var new_posts = [];
	var ongoing_request = false;
	var prev_script = null;

	function updateNewPostCount() {
		Dsq.$('dsq-realtime-alert').style.display = new_posts.length ? 'block' : 'none';

		Dsq.$('dsq-realtime-queued').innerHTML = new_posts.length
		+ ' new '
		+ Dsq.Utils.pluralize(new_posts.length, 'comment', 'comments')
		+ Dsq.Utils.pluralize(new_posts.length, ' was', ' were')
		+ ' just posted.';

		Dsq.$('dsq-realtime-show').innerHTML = '(' + Dsq.Strings.SHOW + ')';
	}

	function insertNewPosts() {
		var post_id = null;
		var after_id = Dsq.$('dsq-sort-select').value === 'oldest' ? -1 : null;

		for (var i=0; i<new_posts.length; i++) {
			post_id = new_posts[i];
			Dsq.Post.insert(after_id, post_id, Dsq.jsonData.posts[post_id].message);
			Dsq.Post.incrementPostCount();
			Dsq.Post.outlineComment(post_id);
		}
		new_posts = [];
	}

	this.enableInterval = function() {
		interval = setInterval(Dsq.Realtime.check, Dsq.jsonData.context.realtime_speed);
		Dsq.$('dsq-realtime-status').innerHTML = Dsq.Strings.ENABLED;
		Dsq.$('dsq-realtime-toggle').innerHTML = '(' + Dsq.Strings.PAUSE + ')';
	}

	this.disableInterval = function() {
		if (interval) {
			clearInterval(interval);
			interval = null;
		}
		Dsq.$('dsq-realtime-status').innerHTML = Dsq.Strings.PAUSED;
		Dsq.$('dsq-realtime-toggle').innerHTML = '(' + Dsq.Strings.RESUME + ')';
	}

	this.toggleInterval = function() {
		if (!interval) {
			Dsq.Realtime.enableInterval();
		} else {
			Dsq.Realtime.disableInterval();
		}
		return false;
	}

	this.initialize = function() {
		if (!initialized) {
			initialized = true;
			Dsq.$('dsq-realtime-toggle').onclick = this.toggleInterval;
			if (!Dsq.jsonData.forum.streaming_realtime) {
				Dsq.$('dsq-realtime-show').onclick = this.show;
				updateNewPostCount();
			}
			if (Dsq.jsonData.thread.realtime_paused) {
				Dsq.Realtime.disableInterval();
			} else {
				Dsq.Realtime.enableInterval();
			}
		}
	}

	this.show = function() {
		insertNewPosts();
		updateNewPostCount();
		return false;
	}

	this.check = function() {
		if (!ongoing_request && Dsq.jsonData.realtime_enabled) {
			if (prev_script) {
				prev_script.parentNode.removeChild(prev_script);
			}
			ongoing_request = true;
			prev_script = Dsq.Utils.execScript('http://disqus.com/forums/5204527/realtime.js?timestamp=' + last_checked);
		}
	};

	this.update = function(timestamp, posts, users) {
		ongoing_request = false;
		last_checked = timestamp;

		if (users) {
			for (var user_id in users) {
				if (users.hasOwnProperty(user_id)) {
					if (!Dsq.jsonData.users[user_id]) {
						Dsq.jsonData.users[user_id] = users[user_id];
					}
				}
			}
		}

		if (posts) {
			for (var post_id in posts) {
				if (posts.hasOwnProperty(post_id)) {
					if (!Dsq.jsonData.posts[post_id]) {
						Dsq.jsonData.posts[post_id] = posts[post_id];
						new_posts.push(post_id);
					}
				}
			}

			if (Dsq.jsonData.forum.streaming_realtime) {
				insertNewPosts();
			} else {
				updateNewPostCount();
			}
		}
	};

}();

// DEPRECATED
Dsq.Iframes = function() {
	// Different style of object from the above. Hoping to switch to this for some reason.
	var obj = {};

	// Private
	var showIframeInContainer = function(container, id, markup) {
		// Look through container for iframes, hiding them, except show one that matches id
		// If none of them matched id, create a new iframe using markup and insert it.
		// Returns the iframe node if and only if it was newly created.
		var found = false;
		for (var i=0; i<container.childNodes.length; i++) {
			var child = container.childNodes[i];
			if (child.nodeName == 'IFRAME') {
				if (child.id == id) {
					child.style.display = 'block';
					found = true;
				} else {
					child.style.display = 'none';
				}
			}
		}
		if (found) {
			return;
		}
		// The iframe wasn't found, so construct it and add it to the container.
		// Don't use innerHTML because it might reload iframes
		var div = document.createElement('div');
		div.innerHTML = markup;
		var iframe = div.childNodes[0];
		div.removeChild(iframe);
		container.appendChild(iframe);
		return iframe;
	};

	// Public
	obj.makeReplyIframeId = function(opt_postId, opt_xtype) {
		var id = 'dsq-post-add-iframe';
		if (opt_xtype) {
			id += '-' + opt_xtype;
		}
		if (opt_postId) {
			id += '-' + opt_postId;
		}
		return id;
	};
	obj.makeLoginIframeId = function(opt_postId) {
		if (!opt_postId) {
			return 'dsq-login-iframe';
		}
		return 'dsq-login-iframe-' + opt_postId;
	};
	obj.makeReplyIframeName = function(opt_postId, opt_xtype) {
		var name = 'dsq-reply-frame';
		if (opt_xtype) {
			name += '-' + opt_xtype;
		}
		if (opt_postId) {
			name += '-' + opt_postId;
		}
		return name;
	};
	obj.showReplyIframeInContainer = function(container, opt_postId, opt_extraParams, opt_className) {
		// Construct the id so we can check if it's already present.
		// Hide any other iframes we find, and show this one if it's found.
		var params = opt_extraParams || {};
		// use xtype in the id and name so we can distinguish media replies from text replies:
		var id = Dsq.Iframes.makeReplyIframeId(opt_postId, params.xtype);
		var name = Dsq.Iframes.makeReplyIframeName(opt_postId, params.xtype);
		var attributes = {
			'id': id,
			'name': name,
			'class': opt_className || 'dsq-post-reply'
			};
		var markup = Dsq.Templates.frameReply(opt_postId, opt_extraParams, attributes);
		var iframe = showIframeInContainer(container, id, markup);
		// It was newly created
		if (iframe) {
			Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_CREATED, {
				postId: opt_postId,
				node: iframe,
				xtype: params.xtype
			});
		}
	};
	obj.showLoginIframeInContainer = function(container, opt_postId) {
		var id = Dsq.Iframes.makeLoginIframeId(opt_postId);
		var markup = Dsq.Templates.frameLogin({id: id});
		showIframeInContainer(container, id, markup);
	};
	obj.showReplyIframeInContainerIfAllowed = function(container, opt_postId) {
		if (Dsq.jsonData.context.show_reply) {
			obj.showReplyIframeInContainer(container, opt_postId);
		} else {
			obj.hideAllInContainer(container);
		}
	};
	obj.hideAllInContainer = function(container) {
		for (var i=0; i<container.childNodes.length; i++) {
			var child = container.childNodes[i];
			if (child.nodeName == 'IFRAME') {
				child.style.display = 'none';
			}
		}
	};

	return obj;
}();

Dsq.Twitter = new function() {
	var that = this;

	this.startTwitterConnect = function() {
		var popupParams = 'location=0,status=0,width=800,height=400';
		that._twitterWindow = window.open(Dsq.jsonData.settings.disqus_url + '/_ax/twitter/begin/', 'twitterWindow', popupParams);
		that._twitterInterval = window.setInterval(that.completeTwitterConnect, 1000);
	};

	this.completeTwitterConnect = function() {
		if (that._twitterWindow.closed) {
			window.clearInterval(that._twitterInterval);
			window.location.reload();
		}
	};
};

Dsq.Yahoo = new function() {
	var that = this;

	this.startYahooConnect = function() {
		var popupParams = 'location=0,status=0,width=800,height=400';
		that._yahooWindow = window.open(Dsq.jsonData.settings.disqus_url + '/_ax/yahoo/begin/', 'yahooWindow', popupParams);
		that._yahooInterval = window.setInterval(that.completeYahooConnect, 1000);
	};

	this.completeYahooConnect = function() {
		if (that._yahooWindow.closed) {
			window.clearInterval(that._yahooInterval);
			window.location.reload();
		}
	};
};

Dsq.OpenID = new function() {
	var that = this;

	this.requestURL = function() {
		var message = '<table class="dsq-openid-form"><tr><td style="vertical-align:top;" rowspan="2"><img src="' + Dsq.jsonData.settings.media_url + '/images/openid-icon-100x100.png" /></td>';
		message += '<td><label for="dsq-openid-url">OpenID URL:</label></td><td><input type="text" id="dsq-openid-url" /></td></tr>';
		message += '<tr><td><label for="dsq-openid-username">Display name:</label></td><td><input type="text" id="dsq-openid-username" /></td></tr>';
		message += '<tr><td class="dsq-openid-submit" colspan="3"><input type="button" value="Sign in" onclick="Dsq.OpenID.startConnect();" /></td></tr>';
		message += "</table>";

		Dsq.Popup.popModal(message, 'Sign in using OpenID');
	};

	this.startConnect = function() {
		var isblank = function(str) {
			return /^\s*$/.test(str);
		};

		var openid_url = Dsq.$('dsq-openid-url').value;
		var username = Dsq.$('dsq-openid-username').value;

		if (isblank(openid_url)) {
			return;
		}

		var popupParams = 'location=0,status=0,width=800,height=500';
		var url = Dsq.jsonData.settings.disqus_url + '/_ax/openid/begin/' + '?url=' + encodeURIComponent(openid_url) + '&username=' + encodeURIComponent(username);
		that._openidWindow = window.open(url, 'openidWindow', popupParams);
		that._openidInterval = window.setInterval(that.completeConnect, 1000);
	};

	this.completeConnect = function() {
		if (that._openidWindow.closed) {
			window.clearInterval(that._openidInterval);
			window.location.reload();
		}
	};
};

Dsq.Reaction = new function() {
	var that = this;

	this.hide = function(id) {
		Dsq.Utils.execScript('http://disqus.com/forums/tech-recipes/hidereaction.js?' + 'reaction_id=' + id);
	};

	this.reportMissingReactions = function() {
		if (!Dsq.jsonData.request.is_moderator || !Dsq.jsonData.forum.reactions_enabled) {
			return;
		}

		if (Dsq.jsonData.thread.queued) {
			Dsq.Popup.popModal('Your report has been received. The system will automatically search for new reactions; if any are found, they will be displayed on this comment thread.<br/><br/>Thank&nbsp;you.',
												 'Reported missing reactions');
			return;
		}

		Dsq.Utils.execScript(Dsq.jsonData.settings.disqus_url + '/forums/tech-recipes/queueurl.js');
	};
};

Dsq.CNN = function() {
	var obj = {};

	obj.authenticate = function() {
		var url = Dsq.jsonData.settings.disqus_url + "/saml/cnn/try/";
		Dsq.Utils.postToUrl(url, {'target': document.location}, true);
	};

	return obj;
}();


if(Dsq.Utils.ie6) {
	(function() {
		DSQ_HEADER_AVATAR_RE = /<div class="dsq-header-avatar"(.*?)>/gim;
		Dsq.Templates.registerFilter('postPrependHeader', function(html, post_id) {
			// Add "onmouseout" for dsq-header-avatar for dropProfile
			// functionality since IE6 cannot use :hover.
			function _headerAvatarReplace(content, inner, _unused, html) {
				return '<div class="dsq-header-avatar" '
					+ inner
					+ ' onmouseout="Dsq.Post.dropProfile(' + post_id + ')">';
			}
			html = html.replace(DSQ_HEADER_AVATAR_RE, _headerAvatarReplace);
			return html;
		});
	})();
}









(function() {
	//
	// Load theme.  This overrides the base templates with template functions
	// from the respective themes.
	//
	if (Dsq.jsonData.integration.theme == 4) {
		var theme = 'narcissus';
		// HACK: Set variable on window to use post message.
		window.disqus_use_postmessage = true;

		
		for(var prop in Dsq.Themes[theme]) {
			if(Dsq.Themes[theme] && Dsq.Themes[theme].hasOwnProperty(prop)) {
				Dsq.Templates[prop] = Dsq.Themes[theme][prop];
			}
		}
		
		for(var prop in Dsq.Post) {
			if(Dsq.Themes[theme] && Dsq.Themes[theme].hasOwnProperty(prop)) {
				Dsq.Post[prop] = Dsq.Themes[theme][prop];
			}
		}
	}

	//
	// Register templates.  This must be done after all themes are loaded.
	//
	Dsq.Templates.registerTemplate('authPost', Dsq.Templates.authPost);
	Dsq.Templates.registerTemplate('header', Dsq.Templates.header);
	Dsq.Templates.registerTemplate('footer', Dsq.Templates.footer);
	Dsq.Templates.registerTemplate('trackbacks', Dsq.Templates.trackbacks);
	Dsq.Templates.registerTemplate('reactions', Dsq.Templates.reactions);
	Dsq.Templates.registerTemplate('prependPost', Dsq.Templates.prependPost);
	Dsq.Templates.registerTemplate('appendPost', Dsq.Templates.appendPost);
	Dsq.Templates.registerTemplate('postPrependHeader', Dsq.Templates.postPrependHeader);
	Dsq.Templates.registerTemplate('postAppendHeader', Dsq.Templates.postAppendHeader);
	Dsq.Templates.registerTemplate('preBody', Dsq.Templates.preBody);
	Dsq.Templates.registerTemplate('postBody', Dsq.Templates.postBody);
	Dsq.Templates.registerTemplate('postFooter', Dsq.Templates.postFooter);
	Dsq.Templates.registerTemplate('_popupGeneric', Dsq.Templates._popupGeneric);
	Dsq.Templates.registerTemplate('voted', Dsq.Templates.voted);
	Dsq.Templates.registerTemplate('popupProfile', Dsq.Templates.popupProfile);
	Dsq.Templates.registerTemplate('postBox', Dsq.Templates.postBox);
	Dsq.Templates.registerTemplate('pagination', Dsq.Templates.pagination);
	Dsq.Templates.registerTemplate('postComment_onSuccess', Dsq.Templates.postComment_onSuccess);

})();

Dsq.container.className = "clearfix";
Dsq.container.innerHTML = ' \
<ul id="dsq-comments">\
	 <li id="dsq-comment-2770012">\
	 <div id="dsq-comment-header-2770012" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770012" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770012">thealia</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770012" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770012" class="dsq-comment-message">okay, everything worked out dandy, until... it didn\'t prompt me for the download. instead the quicktime player loaded the song in the browser and since i don\'t have qt pro, i couldn\'t save the song. how now?  :cry:</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-6896359">\
	 <div id="dsq-comment-header-6896359" class="dsq-comment-header">\
	 <cite id="dsq-cite-6896359" class="dsq-comment-cite">\
	 <a id="dsq-author-user-6896359" href="http://myspace.com/m44rcis" target="_blank" rel="nofollow">m44</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-6896359" class="dsq-comment-body">\
	 <div id="dsq-comment-message-6896359" class="dsq-comment-message">god! just select Save Page As?<br><br>I can\'t believe that his quicktime "you need pro to save file" bullshit works!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770013">\
	 <div id="dsq-comment-header-2770013" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770013" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770013">Tormentid</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770013" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770013" class="dsq-comment-message">this way sucks... i\'ve known a perfect way for some time on how to get all the info on downloading songs but for some reason on a select few with a digit short on the bsid they dont work</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770014">\
	 <div id="dsq-comment-header-2770014" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770014" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770014">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770014" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770014" class="dsq-comment-message">thealia, just go to File &gt; Save Page As</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770015">\
	 <div id="dsq-comment-header-2770015" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770015" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770015">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770015" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770015" class="dsq-comment-message">Well I can access the songs... but where does the downloaded file go to!?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770016">\
	 <div id="dsq-comment-header-2770016" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770016" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770016">Lore</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770016" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770016" class="dsq-comment-message">Tell IE to save the file instead of playing it.  Otherwise, it\'s as if it went into your cache.<br><br>Or use a tool like Download Accelerator Plus (or wget in *nix) and give it the URL.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770017">\
	 <div id="dsq-comment-header-2770017" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770017" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770017">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770017" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770017" class="dsq-comment-message">i cant find the xml files on my comp...hmmm.... I searched for the file name and get no results</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770018">\
	 <div id="dsq-comment-header-2770018" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770018" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770018">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770018" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770018" class="dsq-comment-message">&lt;ul id="quote"&gt;&lt;h6&gt;thealia wrote:&lt;/h6&gt;okay, everything worked out dandy, until... it didn\'t prompt me for the download. instead the quicktime player loaded the song in the browser and since i don\'t have qt pro, i couldn\'t save the song. how now?  :cry:&lt;/ul&gt;</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770019">\
	 <div id="dsq-comment-header-2770019" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770019" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770019">pimpsaucekrew</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770019" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770019" class="dsq-comment-message">how do i clear my ceche?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770020">\
	 <div id="dsq-comment-header-2770020" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770020" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770020">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770020" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770020" class="dsq-comment-message">In Internet Explorer, go to Tools -&gt; Options.  Then in the middle of the dialog box there should be something that says Delete Files.  Click that.<br><br>After you do that, click on Settings, the View Files.  That will show you the cache directory.<br><br>Go to the MySpace music page that you want, let it load the player.  Then go back to your cache directory, hit F5 (refresh) and you should see the XML file I refer to.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770021">\
	 <div id="dsq-comment-header-2770021" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770021" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770021">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770021" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770021" class="dsq-comment-message">Oooh...IE only eh? No wonder I didn\'t find it...does this work with firefox? Where are the files if it does...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770022">\
	 <div id="dsq-comment-header-2770022" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770022" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770022">Lore</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770022" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770022" class="dsq-comment-message">&lt;ul id="quote"&gt;&lt;h6&gt;Anonymous wrote:&lt;/h6&gt;Oooh...IE only eh? No wonder I didn\'t find it...does this work with firefox? Where are the files if it does...&lt;/ul&gt;<br><br>No, it works with FireFox as it\'s just a regular download once you locate the URL.  You just have to find the XML file using IE first since the way FireFox organizes the cache is very odd.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770023">\
	 <div id="dsq-comment-header-2770023" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770023" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770023">thealia</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770023" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770023" class="dsq-comment-message">oh sheesh. right.  :oops: <br><br>thanks! and happy new year  :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770024">\
	 <div id="dsq-comment-header-2770024" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770024" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770024">dododo</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770024" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770024" class="dsq-comment-message">the couple of songs ive tried have come out to 96kbps...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770025">\
	 <div id="dsq-comment-header-2770025" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770025" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770025">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770025" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770025" class="dsq-comment-message">&lt;ul id="quote"&gt;&lt;h6&gt;dododo wrote:&lt;/h6&gt;the couple of songs ive tried have come out to 96kbps...&lt;/ul&gt;<br><br>The first paragraph in the recipe says:<br><br>"Bear in mind, however, that the streaming file is always of lesser quality than the one they allow you to download. (96kbit vs 192kbit)"<br><br>The last paragraph in the recipe says:<br>"The streaming file is always 96kbit quality, while their downloadable songs are at 192kbit. I tested this using <a href="http://www.myspace.com/monstersarewaiting" rel="nofollow">www.myspace.com/monstersarewaiting</a>, since they have a song available for download. Their downloaded one is 192 and their streamed one, once I grab it using the method described, is only 96. Just an FYI!"</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770026">\
	 <div id="dsq-comment-header-2770026" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770026" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770026">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770026" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770026" class="dsq-comment-message">yeah, i just got it, in a quick glance, the way its worded made it seem like that going about it in this method would make it 192</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770027">\
	 <div id="dsq-comment-header-2770027" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770027" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770027">c0d3ster</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770027" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770027" class="dsq-comment-message">Wow! Great Recipe. I am 13, and fairly computer savvy and I have figured this out easily. Thank you so much!<br><br>This has made like a bit easier for me..</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770028">\
	 <div id="dsq-comment-header-2770028" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770028" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770028">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770028" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770028" class="dsq-comment-message">&lt;ul id="quote"&gt;&lt;h6&gt;Anonymous wrote:&lt;/h6&gt;thealia, just go to File &gt; Save Page As&lt;/ul&gt;<br><br>How do I get IE 6 to prompt me to save the mp3 file?<br><br>I put <a href="http://musicstream.myspace.com/86/17/4627168/4627168_c51de306.mp3" rel="nofollow">http://musicstream.myspace.com/86/17/4627168/46...</a><br>into the address bar, but<br>File -&gt; Save As just prompts me save MP3_XML.cfm</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770029">\
	 <div id="dsq-comment-header-2770029" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770029" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770029">Lore</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770029" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770029" class="dsq-comment-message">It appears that Myspace has now fixed the hole.  I believe they switched over to an rtmp stream, which, as far as I know, cannot be captured.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770030">\
	 <div id="dsq-comment-header-2770030" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770030" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770030">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770030" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770030" class="dsq-comment-message">I\'m looking at IE 5.2 for MAC.<br><br>all I can see in my MS internet cache (after getting the song I want playing) are a couple of .waf files. A search for filenames anywhere on my local disks with "MP3_XML.cfm?" somewhere in the title came up blank. Anyone know why my IE doesn\'t seem to have the cache files I expect? Are they INSIDE the waf files or something? Clicking on them produces, at best, a blank IE window.<br><br>I guess the short answer is that it\'s IE for mac, eh?<br><br>If anyone has any better notions...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770031">\
	 <div id="dsq-comment-header-2770031" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770031" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770031">EdiciusTsaf</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770031" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770031" class="dsq-comment-message">If you just want it to know for this article: It doesn\'t work anymore</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770032">\
	 <div id="dsq-comment-header-2770032" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770032" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770032">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770032" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770032" class="dsq-comment-message">Heres an easy and simple way to save the song instead of listening on stream.  This should also save the song in FULL high quality.<br><br>Get the link from the file using the above method^<br><br>Then open a blank notepad page, type in this code...<br><br>&lt;html&gt;<br>&lt;body&gt;<br><a href="YOUR LINK HERE" rel="nofollow">Right click here and click save target as</a><br>&lt;/body&gt;<br>&lt;/html&gt;<br><br>you need to replace YOUR LINK HERE with your full link so for example it might look like..... <a href="http://myspace.com/34/3423/235.mp3" rel="nofollow"><br><br>then save the file to your desktop as a .htm document, so for example song.htm<br><br>Then go to your desktop and double click the htm file you just made.<br><br>It will be a web page, just do what it says......right click the text and click save target as, specify where you want to save your song, and OK and it will download! Simple!</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770033">\
	 <div id="dsq-comment-header-2770033" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770033" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770033">Lore</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770033" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770033" class="dsq-comment-message">&lt;ul id="quote"&gt;&lt;h6&gt;Anonymous wrote:&lt;/h6&gt;Heres an easy and simple way to save the song instead of listening on stream.  This should also save the song in FULL high quality.<br><br>Get the link from the file using the above method^<br><br>Then open a blank notepad page, type in this code...<br><br>&lt;html&gt;<br>&lt;body&gt;<br><a href="YOUR LINK HERE" rel="nofollow">Right click here and click save target as</a><br>&lt;/body&gt;<br>&lt;/html&gt;<br><br>you need to replace YOUR LINK HERE with your full link so for example it might look like..... <a href="http://myspace.com/34/3423/235.mp3" rel="nofollow"><br><br>then save the file to your desktop as a .htm document, so for example song.htm<br><br>Then go to your desktop and double click the htm file you just made.<br><br>It will be a web page, just do what it says......right click the text and click save target as, specify where you want to save your song, and OK and it will download! Simple!&lt;/ul&gt;<br><br>I don\'t think that works.  They\'re not hosting the file on <a href="http://myspace.com" rel="nofollow">http://myspace.com</a>, and it wouldn\'t be any higher quality than the one I originally linked to.  All you\'re doing is teaching people how to create a link that they can use the "Save As" function for.</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770034">\
	 <div id="dsq-comment-header-2770034" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770034" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770034">PreScripted</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770034" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770034" class="dsq-comment-message">Maybe someone can tell me what I\'m doing wrong. I tried grabbing a Gorillaz song. I got the XML file, opened it, found the appropriate extension<br>"80/20/13700208/13700208_1f292804.mp3"<br>Attached it accordingly to <br>"http://musicstream.myspace.com/80/20/13700208/13700208_1f292804.mp3"<br>But all I got was Page Not Found. I even tried using the address I found in the xml<br>"http://c.myspace.com/BandSongs/"<br>But nothing seems to work.<br><br>Any ideas?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770035">\
	 <div id="dsq-comment-header-2770035" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770035" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770035">PreScripted</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770035" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770035" class="dsq-comment-message">Nevermind, sorry about that. missed the previous posts.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770036">\
	 <div id="dsq-comment-header-2770036" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770036" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770036">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770036" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770036" class="dsq-comment-message">&lt;ul id="quote"&gt;&lt;h6&gt;Anonymous wrote:&lt;/h6&gt;Heres an easy and simple way to save the song instead of listening on stream.  This should also save the song in FULL high quality.<br><br>Get the link from the file using the above method^<br><br>Then open a blank notepad page, type in this code...<br><br>&lt;html&gt;<br>&lt;body&gt;<br><a href="YOUR LINK HERE" rel="nofollow">Right click here and click save target as</a><br>&lt;/body&gt;<br>&lt;/html&gt;<br><br>you need to replace YOUR LINK HERE with your full link so for example it might look like..... <a href="http://myspace.com/34/3423/235.mp3" rel="nofollow"><br><br>then save the file to your desktop as a .htm document, so for example song.htm<br><br>Then go to your desktop and double click the htm file you just made.<br><br>It will be a web page, just do what it says......right click the text and click save target as, specify where you want to save your song, and OK and it will download! Simple!&lt;/ul&gt;<br><br>That method doesnt work... Its still trying to connect to the music.myspace URL. They have changed their method obviously so if anyone could somehow hack it again... that would be very much appreciated.</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770037">\
	 <div id="dsq-comment-header-2770037" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770037" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770037">Pitchy</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770037" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770037" class="dsq-comment-message">After I found out this no longer worked, I opened the stand alone player, closed out my main browser... waited a few minutes for all connections to time out... refreshed the player, then went to a cmd prompt and did a netstat.<br><br>I had an active connection to <a href="http://ix.sitestream.net" rel="nofollow">ix.sitestream.net</a>  I don\'t know if this might be the direction to head in, but I will keep messing around and see what I can come up with.  The XML files haven\'t really changed.  Just wondering if you can maybe time it right with the timestamp, if you can edit the XML set the downloadable to 1 instead of 0 and refresh to reload the XML for the change.  This will be very tricky as each time you refresh, a new XML is created with a new timestamp... so maybe if you change the timestamp in the file name and  ahead of a few seconds and refresh, maybe it will load the one in cache that you edited instead of pulling in a new one.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770038">\
	 <div id="dsq-comment-header-2770038" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770038" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770038">Pitchy</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770038" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770038" class="dsq-comment-message">I guess I could always load up a packet sniffer and see where the music stream is coming from that way.  I also have a connection established with sitestream.cc</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770039">\
	 <div id="dsq-comment-header-2770039" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770039" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770039">Lore</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770039" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770039" class="dsq-comment-message">I\'ve tried the packet sniffer thing...but it won\'t help you decode the rtmp: format since that is a proprietary Macromedia format that they guard very carefully...<br><br>G\'luck folks!  I\'ll take a look at it some more when I get a chance.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770040">\
	 <div id="dsq-comment-header-2770040" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770040" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770040">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770040" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770040" class="dsq-comment-message">so alot of people don\'t let you download there stuff. well some people i like there stuff and want the song now.<br><br>so i whip out goldwave wich is free (<a href="http://www.goldwave.com" rel="nofollow">www.goldwave.com</a>) switch the record source to stereo mix. adjust the volume and hit record.  =]</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770041">\
	 <div id="dsq-comment-header-2770041" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770041" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770041">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770041" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770041" class="dsq-comment-message">im messing with this app called red5 which seems to be something along the lines of ripping rtmp streams. ill post here if it comes up with any results...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770042">\
	 <div id="dsq-comment-header-2770042" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770042" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770042">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770042" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770042" class="dsq-comment-message">Hi. Been working on  dl-ing hacks for awhile, and gave up. This is much easier. Use bittorrent or utorrent (available at <a href="http://download.com" rel="nofollow">download.com</a>) to get Replay Music. <a href="http://ts.searching.com/%3Cfont" rel="nofollow">http://ts.searching.com/&lt;font</a> color="red"&gt;xxxxxxxxxxxxxxxxxxxxxx&lt;/font&gt;<br>The health isnt that great, but should increase. The quality on replay music is better than almost any recorder out there.<br><br>Once you dl it, Open the folder that says crack on it...  &lt;font color="red"&gt;(clip)&lt;/font&gt;<br><br>Close your browser. Allow i-net access for replay if you use a firewall besides windows fireall (ie. zonealarm) Start replay music program. Now start your browser. Go to the page that contains the stream you want, and if the stream auto-starts, hit stop. Now hit the record button on replay music, and hit ok after entering any info. <br><br>Now start the stream and make sure the decible bar is oscilating in replay. hit stop record when the stream is over. <br><br>This should work. If it doesnt or if something isnt clear, reply and ill try to answer it within the same day! Good Luck with capturing ANY STREAMING music you want!<br><br>&lt;font color="red"&gt;Moderator Edit:  Please don\'t point to cracks.  Users should pay for software.&lt;/font&gt;</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770043">\
	 <div id="dsq-comment-header-2770043" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770043" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770043">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770043" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770043" class="dsq-comment-message">Sorry about that post. Didnt know there was a moderator. Dont use cracks. Pay for Replay Music, and you can use that. Because using Replay Music through a crack would be worse than giving directions to download songs illegally through loopholes in streaming........</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770044">\
	 <div id="dsq-comment-header-2770044" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770044" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770044">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770044" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770044" class="dsq-comment-message">I decompiled the SWF of the Music player and analysied the actionscript code. <br><br>The 2 url\'s i found are -  rtmp://flash.myspace.com/mp3test (i think this would be were they store the music)<br><br>and - <a href="http://flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_" rel="nofollow">http://flash.vitalstream.com/flashgen.cgi?sname...</a>  (i doubght this is the one but may be)<br><br>So i think we have our url\'s and if im right a song (Im using One way ticket to hell and back - The darkness) would be located at somthin like -<br><br>rtmp://flash.myspace.com/84/94/8864948/8864948_620a6a27.mp3<br><br>There is a little program to play rtmp streams here - <a href="http://www.download.com/FLV-Player/3000-2139_4-10467082.html" rel="nofollow">http://www.download.com/FLV-Player/3000-2139_4-...</a><br><br>so we can test it to get a correct URL, then we\'ll find somthin to downlaod with, but we must find the right urls first!!!!!!!!<br>PLZPLZ HELP!!!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770045">\
	 <div id="dsq-comment-header-2770045" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770045" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770045">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770045" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770045" class="dsq-comment-message">When I use IE (v 6.0) the music artist list of songs wouldn\'t load and never would the song on the "standalone player".  So I can\'t find the "MP3_XML.cfm?" file out of the cache because the song never plays in IE.  The flash (the artist list of songs) just gets suck on the "connecting..." part.  <br><br>The thing is that everything works fine with Firefox.  So how do I find the link using Firefox?  And where is the exact location of the Firefox cache?  Is in the "Temporary Internet Files" under Local Settings or is it in the "C:Documents and Settings*YourProfileName*Application DataMozillaFirefoxProfiles*(RandomLetters&amp;Numbers).Default*" directory? <br><br>Thanks.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770046">\
	 <div id="dsq-comment-header-2770046" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770046" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770046">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770046" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770046" class="dsq-comment-message">Nevermind.  I figured a way around it.  <br><br>I was able to find the "mediaXML.xml" file and get the url... but when I put "http://musicstream.myspace.com/" in front of the acquired url nothing happened.  <br><br>The page timed out.  <br><br>Is there something else I\'m suppose to use rather than "http://musicstream.myspace.com/"?  I tried "rtmp://flash.myspace.com/" and that didn\'t work either.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770047">\
	 <div id="dsq-comment-header-2770047" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770047" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770047">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770047" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770047" class="dsq-comment-message">&lt;ul id="quote"&gt;&lt;h6&gt;werner wrote:&lt;/h6&gt;so alot of people don\'t let you download there stuff. well some people i like there stuff and want the song now.<br><br>so i whip out goldwave wich is free (<a href="http://www.goldwave.com" rel="nofollow">www.goldwave.com</a>) switch the record source to stereo mix. adjust the volume and hit record.  =]&lt;/ul&gt;  <br><br>Lol.  I have goldwave and that was the first thing I tried, but that didn\'t work.  Usually it does work, but not this time.  If it worked for you, what did you do?  I switched the source to WAV but like I said nothing happened.  <br><br>Anyway, everyone ignore my last two posts I didn\'t see the post about myspace fixing the loophole.  If someone discovers a new hole please post it?   Thanks again.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770048">\
	 <div id="dsq-comment-header-2770048" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770048" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770048">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770048" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770048" class="dsq-comment-message">Don\'t expect a reply on these forums quickly, your the first person to speak in this thread for over months lol<br><br>As in my thread upi there^^^^^^^^^^<br><br>i want someone with good computer knoiwledge to find the download path of the files, i went in and found some base url\'s which they could work with, i posted up there^^^ but i dunno which ones real:((<br><br>so plz help out pplz:)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770049">\
	 <div id="dsq-comment-header-2770049" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770049" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770049">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770049" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770049" class="dsq-comment-message">GoldWave does work! I believe it is the most convient way to record the music from <a href="http://MySpace.com" rel="nofollow">MySpace.com</a> that you like without all that XML hassle. First of all, download the program from <a href="http://goldwave.com" rel="nofollow">goldwave.com</a>. It is a free software. Next, open a new file. A window pops up showing you: number of channels, sample rating and file length. Make sure you know the length of the song and write it in. Then click "ok". Once that\'s over, go to options -&gt; control properties -&gt; select Stereo Mix. What this does is records music that plays on your computer and only that. Nothing else. So once that\'s over with, play the song you want from <a href="http://Myspace.com" rel="nofollow">Myspace.com</a> and then press the record button on your GoldWave. Wait until it\'s done and save the file as .wav or .mp3. It\'s that easy. Hope I was of help to you guys!<br><br>Bye!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770050">\
	 <div id="dsq-comment-header-2770050" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770050" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770050">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770050" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770050" class="dsq-comment-message">&lt;ul id="quote"&gt;&lt;h6&gt;Random wrote:&lt;/h6&gt;GoldWave does work! I believe it is the most convient way to record the music from <a href="http://MySpace.com" rel="nofollow">MySpace.com</a> that you like without all that XML hassle. First of all, download the program from <a href="http://goldwave.com" rel="nofollow">goldwave.com</a>. It is a free software. Next, open a new file. A window pops up showing you: number of channels, sample rating and file length. Make sure you know the length of the song and write it in. Then click "ok". Once that\'s over, go to options -&gt; control properties -&gt; select Stereo Mix. What this does is records music that plays on your computer and only that. Nothing else. So once that\'s over with, play the song you want from <a href="http://Myspace.com" rel="nofollow">Myspace.com</a> and then press the record button on your GoldWave. Wait until it\'s done and save the file as .wav or .mp3. It\'s that easy. Hope I was of help to you guys!<br><br>Bye!&lt;/ul&gt;<br><br>won\'t that just give you an mono recording? as you just record something that\'s played?<br>but anyways, anyone got some updates on how to capture the stream/files from myspace?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770051">\
	 <div id="dsq-comment-header-2770051" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770051" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770051">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770051" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770051" class="dsq-comment-message">I\'ve tried all of your methods to extract the audio from this one myspace site..but no luck..its like this artist has all the angles covered...none of the links work, u cant use save flash plug-ins to save the swf. file..and u cant save the page as when u use IE. The link is <a href="http://profile.myspace.com/index.cfm?fuseaction=user.viewprofile&amp;friendid=68853727" rel="nofollow">http://profile.myspace.com/index.cfm?fuseaction...</a><br><br>If you can somehow solve this, please let me know. Thanks!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770052">\
	 <div id="dsq-comment-header-2770052" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770052" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770052">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770052" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770052" class="dsq-comment-message">Using Ethereal while listening to an mp3 on myspace, I was able to determine that their mp3s are stored on <a href="http://myspaceflash.vitalstreamcdn.com" rel="nofollow">myspaceflash.vitalstreamcdn.com</a><br><br>I was also able to find out the filename of the mp3 that was played: 46/10/37030164/37030164_f28dcd72.mp3<br><br>Now the problem is connecting the two together.  I was able to telnet to vitalstream port 80 but it disconnects me as soon as I try to issue a command. Perhaps it checks for referrer?  I\'d be interested to know if anyone figures this out.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770053">\
	 <div id="dsq-comment-header-2770053" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770053" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770053">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770053" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770053" class="dsq-comment-message">&lt;ul id="quote"&gt;&lt;h6&gt;kraked wrote:&lt;/h6&gt;Using Ethereal while listening to an mp3 on myspace, I was able to determine that their mp3s are stored on <a href="http://myspaceflash.vitalstreamcdn.com" rel="nofollow">myspaceflash.vitalstreamcdn.com</a><br><br>I was also able to find out the filename of the mp3 that was played: 46/10/37030164/37030164_f28dcd72.mp3<br><br>Now the problem is connecting the two together.  I was able to telnet to vitalstream port 80 but it disconnects me as soon as I try to issue a command. Perhaps it checks for referrer?  I\'d be interested to know if anyone figures this out.&lt;/ul&gt;<br>i was doing the same thing but make sure you look at the ports they used <br>i found that some were not port 80 standard for http<br><br>also i got the same info using artmoney and searching the memory of ie explorer...just look for key words like http or filename or be creative</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770054">\
	 <div id="dsq-comment-header-2770054" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770054" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770054">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770054" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770054" class="dsq-comment-message">this is alot  work but im am sure this will work or not<br><br><br>go into drivers/etc/host<br>and modify by adding this<br><a href="http://01.presence.userplane.com" rel="nofollow">01.presence.userplane.com</a> 127.0.0.1<br>i got this as a the adress of where the xml file is located for downloading<br>this adress may change so i got it from an etheral pcap dump<br>like this<br>GET /crossdomain.xml HTTP/1.1<br><br>Host: <a href="http://01.presence.userplane.com" rel="nofollow">01.presence.userplane.com</a><br><br><br>ok now set up a web server on your machine ...<br>i usualy get one from planet source code<br>place a modifyed /crossdomain.xml <br>modify it to say the songs are downloadable..and this might work<br>considering the mp3\'s are on a difrent server</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770055">\
	 <div id="dsq-comment-header-2770055" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770055" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770055">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770055" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770055" class="dsq-comment-message">okay so i go to <code>http&#58;//www.myspace.com/astaticlullaby</code><br> for  the song Hang em High.<br><br>let the page load before i start snooping/sniffing.<br><br>then, i enable my snooper/sniffer proggie<br><br>and click "Standalone Player"<br><br>the URLS i recieve are:<br><br><code>http&#58;//music.myspace.com/music/popup.cfm?num=0&amp;time=undefined&amp;fid=1394953&amp;uid=1<br>http&#58;//lads.myspace.com/music/player_popup.swf?d=MTM5NDk1M14xMTQ5MzM5NTE0&amp;n=aHR0cDovL211c2ljLm15c3BhY2UuY29tLw==&amp;u=LTE=&amp;s=MA==&amp;t=dW5kZWZpbmVk&amp;p=<br>http&#58;//music.myspace.com/crossdomain.xml<br>http&#58;//flash.vitalstream.com/crossdomain.xml<br>http&#58;//flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_<br>http&#58;//www.myspace.com/crossdomain.xml<br>http&#58;//www.myspace.com/services/media/mediaxmlprovider.ashx?b=1394953</code><br><br><br>i decide to go to <code>http&#58;//lads.myspace.com/music/player_popup.swf?d=MTM5NDk1M14xMTQ5MzM5NTE0&amp;n=aHR0cDovL211c2ljLm15c3BhY2UuY29tLw==&amp;u=LTE=&amp;s=MA==&amp;t=dW5kZWZpbmVk&amp;p=</code><br><br><br>and that makes the player only show up. i guess that narrows down what i actually need. heres what comes up:<br><br><code>http&#58;//flash.vitalstream.com/crossdomain.xml<br>http&#58;//flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_<br>http&#58;//www.myspace.com/crossdomain.xml<br>http&#58;//www.myspace.com/services/media/mediaxmlprovider.ashx?b=1394953</code><br><br><br>i then preceed to download those 4 urls in flashget<br><br>_definst_ contains:<br><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;FlashStream&gt;&lt;streamName&gt;test.flv&lt;/streamName&gt;&lt;appURL&gt;rtmp&#58;//69.88.137.51/myspace_vitalstream_com/_definst_&lt;/appURL&gt;&lt;/FlashStream&gt;</code><br><br><br>crossdomain(1).xml contains:<br><code>&lt;cross-domain-policy&gt;&lt;allow-access-from domain=&quot;*&quot; /&gt;&lt;/cross-domain-policy&gt;</code><br><br><br>crossdomain(2).xml contain:<br><code>&lt;cross-domain-policy&gt;<br>  &lt;allow-access-from domain=&quot;lads.myspace.com&quot; /&gt;<br>  &lt;allow-access-from domain=&quot;creative.myspace.com&quot; /&gt;<br>	&lt;allow-access-from domain=&quot;pc-agranick.mscorp.com&quot; /&gt;<br>&lt;/cross-domain-policy&gt;</code><br><br><br>mediaxmlprovider.ashx contains:<br><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;iso-8859-1&quot;?&gt;<br>&lt;profile&gt;<br>&lt;timestamp&gt;&lt;!&#91;CDATA&#91;1149339161&#93;&#93;&gt;&lt;/timestamp&gt;<br>&lt;name&gt;&lt;!&#91;CDATA&#91;A Static Lullaby&#93;&#93;&gt;&lt;/name&gt;<br>&lt;playstoday&gt;&lt;!&#91;CDATA&#91;1589&#93;&#93;&gt;&lt;/playstoday&gt;<br>&lt;downloadedtoday&gt;&lt;!&#91;CDATA&#91;0&#93;&#93;&gt;&lt;/downloadedtoday&gt;<br>&lt;totalplays&gt;&lt;!&#91;CDATA&#91;827837&#93;&#93;&gt;&lt;/totalplays&gt;<br>&lt;autoplay&gt;&lt;!&#91;CDATA&#91;False&#93;&#93;&gt;&lt;/autoplay&gt;<br>&lt;allowadd&gt;&lt;!&#91;CDATA&#91;1&#93;&#93;&gt;&lt;/allowadd&gt;<br>&lt;playlist&gt;&lt;song bsid=&quot;14545455&quot; title=&quot;Hang \'Em High&quot; songid=&quot;0&quot; plays=&quot;1267&quot; comments=&quot;&quot; rate=&quot;&quot; downloadable=&quot;&quot;<br>imagename=&quot;http&#58;//x.myspace.com/images/music/musicblack.jpg&quot; imagedesc=&quot;&amp;lt;br&amp;gt; &quot; filename=&quot;35/94/1394953/1394953_64ee9697.mp3&quot; url=&quot;http&#58;//home.myspace.com/Services/Media/mediaHitCounter.ashx?i=MIGdBgorBgEEAYI3WAPloIGOMIGLBgorBgEEAYI3WAMBoH0wewIDAgABAgJmAwICAMAECGRW0t3CYwRlBBDDjpnmTlFvNGCTLm7ffJW6BFALMxprYlnGTCFAKbvNAoSUeukYzv39g%2bhE1FXp0z9VXtMX0y0Q3wSd3pDZZB8yJcdIG18aeQ1bpxQQv0gBXetIMcAsNXifpLZ9YBt5HQGZTA%3d%3d&quot; lyrics=&quot;&quot; purl=&quot;&quot;/&gt;&lt;song bsid=&quot;10505458&quot; title=&quot;The Art of Sharing Lovers&quot; songid=&quot;0&quot; plays=&quot;80264&quot; comments=&quot;&quot; rate=&quot;&quot; downloadable=&quot;&quot;<br>imagename=&quot;http&#58;//x.myspace.com/images/music/musicblack.jpg&quot; imagedesc=&quot;&amp;lt;br&amp;gt; &quot; filename=&quot;35/94/1394953/1394953_977ff610.mp3&quot; url=&quot;http&#58;//home.myspace.com/Services/Media/mediaHitCounter.ashx?i=MIGdBgorBgEEAYI3WAPloIGOMIGLBgorBgEEAYI3WAMBoH0wewIDAgABAgJmAwICAMAECN0vpkyGLUrSBBDFbxuUgNTBHHClRpclbWh6BFClfmpVmrpZFN%2f4YTP%2bPaDDvimhABMYRmuzJzKV%2b5PMFd0jQvS%2fVN949p44ToVOD%2b8GsZZMPdmHa1or0fnOeazo%2bvBsO5X5iqCkb2cczChlHw%3d%3d&quot; lyrics=&quot;&quot; purl=&quot;&quot;/&gt;&lt;song bsid=&quot;2646751&quot; title=&quot;Lipgloss And Letdown&quot; songid=&quot;0&quot; plays=&quot;85022&quot; comments=&quot;&quot; rate=&quot;&quot; downloadable=&quot;&quot;<br>imagename=&quot;http&#58;//c.myspace.com/BandSongs/35/94/1394953/bs2646751_m.jpg&quot; imagedesc=&quot;...And Don\'t Forget to Breathe&amp;lt;br&amp;gt;2003 Ferret Music&quot; filename=&quot;35/94/1394953/1394953_77784632.mp3&quot; url=&quot;http&#58;//home.myspace.com/Services/Media/mediaHitCounter.ashx?i=MIGdBgorBgEEAYI3WAPloIGOMIGLBgorBgEEAYI3WAMBoH0wewIDAgABAgJmAwICAMAECP7jTgOVGlGwBBAsJOegf1tCWI3XPFIKAU2pBFCTEEhff4bPlju0krYqLL%2fTtxYjT17ghk84IvM4e1EE9WPIzkqAI%2foZO5HAEBcgl6KvC5TecAWpqVSkrihvFjGuKOwol0ecwSp6WpIthcGR6g%3d%3d&quot; lyrics=&quot;&quot; purl=&quot;&quot;/&gt;&lt;song bsid=&quot;2646906&quot; title=&quot;The Shooting Star That&quot; songid=&quot;0&quot; plays=&quot;102815&quot; comments=&quot;&quot; rate=&quot;&quot; downloadable=&quot;&quot;<br>imagename=&quot;http&#58;//c.myspace.com/BandSongs/35/94/1394953/bs2646906_m.jpg&quot; imagedesc=&quot;...And Don\'t Forget to Breathe&amp;lt;br&amp;gt;2003 Ferret Music&quot; filename=&quot;35/94/1394953/1394953_8677fdc3.mp3&quot; url=&quot;http&#58;//home.myspace.com/Services/Media/mediaHitCounter.ashx?i=MIGdBgorBgEEAYI3WAPloIGOMIGLBgorBgEEAYI3WAMBoH0wewIDAgABAgJmAwICAMAECBOUOumliD88BBCsiwEN8TLRXzFyy%2bkanGSXBFBrU%2fJm%2fWNMItDJRA3fL0HirgcvtCIrcTVk1l9CQryW3%2f7t5ZBXgBah6pdGiaj5ntQRmU7Kw0LzKIMOQMo97OoKzQNK7Sh6W4Bf6fvStYyIKQ%3d%3d&quot; lyrics=&quot;&quot; purl=&quot;&quot;/&gt;<br>&lt;/playlist&gt;<br>&lt;/profile&gt;</code><br><br><br>so the song name is: <code>35/94/1394953/1394953_64ee9697.mp3</code><br><br><br>i try various urls like:<br><code><br>mms&#58;//69.88.137.51/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>rtsp&#58;//69.88.137.51/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>http&#58;//69.88.137.51/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>mms&#58;//flash.vitalstream.com/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>rtsp&#58;//flash.vitalstream.com/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>http&#58;//flash.vitalstream.com/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>mms&#58;//listen-02i.sitestream.cc/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>rtsp&#58;//listen-02i.sitestream.cc/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>http&#58;//listen-02i.sitestream.cc/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>http&#58;//myspaceflash.vitalstreamcdn.com/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>rtsp&#58;//myspaceflash.vitalstreamcdn.com/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>mms&#58;//myspaceflash.vitalstreamcdn.com/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>mms&#58;//myspacem-026.vo.llnwd.net/35/94/1394953/1394953_64ee9697.mp3<br>35/94/1394953/1394953_64ee9697.mp3<br>http&#58;//myspacem-026.vo.llnwd.net/35/94/1394953/1394953_64ee9697.mp3<br>35/94/1394953/1394953_64ee9697.mp3<br>http&#58;//flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>mms&#58;//flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br>rtsp&#58;//flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3<br></code><br><br><br>and the only one that works is:<br><br><code>http&#58;//flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3</code><br><br><br>it gives me a small file mp3 file that contains no mp3 or anything but has:<br><br><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;FlashStream&gt;&lt;streamName&gt;test.flv&lt;/streamName&gt;&lt;appURL&gt;rtmp&#58;//69.88.133.139/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3&lt;/appURL&gt;&lt;/FlashStream&gt;</code><br><br><br>i don\'t know if this means anything. so now i am messing around with:<br><br><code>rtmp&#58;//69.88.133.139/myspace_vitalstream_com/_definst_/35/94/1394953/1394953_64ee9697.mp3</code><br><br><br>and nothing works...im stuck.....anyone have any ideas! plz help us all!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770056">\
	 <div id="dsq-comment-header-2770056" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770056" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770056">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770056" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770056" class="dsq-comment-message">i  followed everything you outlined to a small T and it no workey, possibly this doors been closed?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770057">\
	 <div id="dsq-comment-header-2770057" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770057" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770057">Hack_Vista</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770057" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770057" class="dsq-comment-message">Yeah, I\'ve not been able to get this to work for a while now.<br><br><strong>buckley</strong> exploration is some strong work.  I\'m just sorry that it has yielded anything yet.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770058">\
	 <div id="dsq-comment-header-2770058" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770058" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770058">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770058" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770058" class="dsq-comment-message">can someone help me?? both methods aren\'t working for me and i need to download 2 songs from my space, can someone do it for me??<br><br><a href="http://www.myspace.com/alexbandmusic" rel="nofollow">www.myspace.com/alexbandmusic</a>  &lt; the songs are please and tonight<br><br><a href="mailto:angyroach@gmail.com" rel="nofollow">angyroach@gmail.com</a><br><br>i believe the song paths are these:<br><br>83/88/83918838/83918838_219cfd65.mp3<br><br>83/88/83918838/83918838_d7fc07f0.mp3<br><br>but y\'all know <a href="http://musicstream.myspace.com" rel="nofollow">musicstream.myspace.com</a> isn\'t working so please if ya found some method lemme know</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770059">\
	 <div id="dsq-comment-header-2770059" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770059" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770059">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770059" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770059" class="dsq-comment-message">&lt;ul id="quote"&gt;&lt;h6&gt;angyroach wrote:&lt;/h6&gt;can someone help me?? both methods aren\'t working for me and i need to download 2 songs from my space, can someone do it for me??<br><br><a href="http://www.myspace.com/alexbandmusic" rel="nofollow">www.myspace.com/alexbandmusic</a>  &lt; the songs are please and tonight<br><br><a href="mailto:angyroach@gmail.com" rel="nofollow">angyroach@gmail.com</a><br><br>i believe the song paths are these:<br><br>83/88/83918838/83918838_219cfd65.mp3<br><br>83/88/83918838/83918838_d7fc07f0.mp3<br><br>but y\'all know <a href="http://musicstream.myspace.com" rel="nofollow">musicstream.myspace.com</a> isn\'t working so please if ya found some method lemme know&lt;/ul&gt;<br><br>I really want those songs too!<br>Can anyone help me too?<br>I would be so thankfull!<br><br><a href="mailto:willeke05@hotmail.com" rel="nofollow">willeke05@hotmail.com</a><br><br>Thanks.<br><br>Love,<br>Willeke.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770060">\
	 <div id="dsq-comment-header-2770060" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770060" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770060">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770060" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770060" class="dsq-comment-message">Did you guys even bother to read posts?<br><br>Lore<br>Newbie<br><br><br><br>Joined: Dec 31, 2005<br>Posts: 7<br>		Posted: Sat Jan 07, 2006 11:52 am    Post subject: 	 <br><br>It appears that Myspace has now fixed the hole. I believe they switched over to an rtmp stream, which, as far as I know, cannot be captured.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770061">\
	 <div id="dsq-comment-header-2770061" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770061" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770061">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770061" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770061" class="dsq-comment-message">Slightly advanced and also assuming you have the equipment and software the easiest and most direct way to get anysong from any player anytime is to just directly record it live from your soundcard. Using a software like cool-edit2.0 just hook a regular headphone stereo 1.8mm cable from your soundcard output to your mic input. Turn down the wave volume on your soundcard, hit record and then push play on whatever player is playing the music. Then slowly turn up the volume until u have a good level, (high as possible without clipping). To those who this makes any sense to probably already know this is primitive but it works, they also probably knew this, so I really don\'t know why I posted this.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770062">\
	 <div id="dsq-comment-header-2770062" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770062" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770062">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770062" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770062" class="dsq-comment-message">i know this asking a lot, but i have no idea with computers and i want tis one song desperately, and if anyone can figure out how to do it for me, you wud be a heroe... i read all wat ppl have said, and i still dont understand, and/or don\'t have the available programs... <br><br>the song i want is on this page: <a href="http://www.myspace.com/chadfischermusic" rel="nofollow">http://www.myspace.com/chadfischermusic</a>  <br><br>and see the 1st one, motorcycle RideGard...<br><br>so if anyone could be able to do that and send to the email of <a href="mailto:justinallison@hotmail.com" rel="nofollow">justinallison@hotmail.com</a><br><br>please, please :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770063">\
	 <div id="dsq-comment-header-2770063" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770063" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770063">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770063" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770063" class="dsq-comment-message">There\'s no such thing as closing all the doors.<br><br>1. Some mp3\'s end up in your browser\'s cache or the Flash application data directory, ready for the taking.<br><br>2. If they don\'t, using ethereal, start recording, then load the myspace player. It\'s pretty obvious which packets are the audio stream since there are a shitload of them from one IP. Filter out the rest and use ethereal\'s decode TCP stream option to dump the incoming packets to a file. Now you\'ve got the mp3, but it\'s wrapped up in a Flash stream container. Still, it\'ll play, sort of, in any decent mp3 player (you\'ll hear lots of pops and clicks because of the extra shit that\'s part of the container). So now all you need to do is a bit of analysis of the dumped stream in a hex editor to strip out the container elements, leaving the pristine mp3. I did it once - took me a fucking day and a bunch of perl coding though, mostly because I taught myself perl to do it. I kept my perl scripts if anyone\'s interested, but you probably won\'t be able to use them.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770064">\
	 <div id="dsq-comment-header-2770064" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770064" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770064">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770064" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770064" class="dsq-comment-message">to fubarbundy2<br><br>could you tell me how to filter tha packets in ethereal, I am a new ethereal user, so i couldn\'t really tell how to do it. Thanks</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770065">\
	 <div id="dsq-comment-header-2770065" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770065" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770065">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770065" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770065" class="dsq-comment-message">is there anyway to increase my myspace music players play count?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770066">\
	 <div id="dsq-comment-header-2770066" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770066" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770066">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770066" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770066" class="dsq-comment-message">Browsing around my temporary internet files, and looking at the mediaxmlprovider file, leads me to conclude that the mp3s are located at:<br><br><a href="http://myspacem-xxx.vo.llnwd.net/*.mp3?e=**&amp;h=***" rel="nofollow">http://myspacem-xxx.vo.llnwd.net/*.mp3?e=**&amp...</a><br><br>where xxx = a 3-digit number  and<br>* = the mp3 filename found in the mediaxmlprovider file.<br><br>But I don\'t know how e= and h= are determined.<br><br>For example, the link to download Dragonforce\'s "Through the Fire and Flames" (which is available on their myspace at <a href="http://myspace.com/dragonforce" rel="nofollow">http://myspace.com/dragonforce</a>) is:<br><code>http&#58;//myspacem-510.vo.llnwd.net/01/56/7326510/7326510_f505d1d9.mp3?e=1154425508&amp;h=a4ee13b3010fb6760c4966ec3fc148e2</code><br><br><br>whereas <code>http&#58;//myspacem-510.vo.llnwd.net/01/56/7326510/7326510_f505d1d9.mp3</code><br> doesn\'t work.<br><br>How would you figure out what e and h equal?  Of course, you would also have to figure out the 3-digit number, but there are only 1,000 different possibilities, and the correct one can be found easily (no matter how long it takes to go through all 1,000 possibilites).  This would need to be done after finding out what e and h equal.  Again, how would one go about doing that?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770067">\
	 <div id="dsq-comment-header-2770067" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770067" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770067">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770067" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770067" class="dsq-comment-message">&lt;ul id="quote"&gt;&lt;h6&gt;GVOLTT wrote:&lt;/h6&gt;Browsing around my temporary internet files, and looking at the mediaxmlprovider file, leads me to conclude that the mp3s are located at:<br><br><a href="http://myspacem-xxx.vo.llnwd.net/*.mp3?e=**&amp;h=***" rel="nofollow">http://myspacem-xxx.vo.llnwd.net/*.mp3?e=**&amp...</a><br><br>where xxx = a 3-digit number  and<br>* = the mp3 filename found in the mediaxmlprovider file.<br><br>But I don\'t know how e= and h= are determined.<br><br>For example, the link to download Dragonforce\'s "Through the Fire and Flames" (which is available on their myspace at <a href="http://myspace.com/dragonforce" rel="nofollow">http://myspace.com/dragonforce</a>) is:<br><code>http&#58;//myspacem-510.vo.llnwd.net/01/56/7326510/7326510_f505d1d9.mp3?e=1154425508&amp;h=a4ee13b3010fb6760c4966ec3fc148e2</code><br><br><br>whereas <code>http&#58;//myspacem-510.vo.llnwd.net/01/56/7326510/7326510_f505d1d9.mp3</code><br> doesn\'t work.<br><br>How would you figure out what e and h equal?  Of course, you would also have to figure out the 3-digit number, but there are only 1,000 different possibilities, and the correct one can be found easily (no matter how long it takes to go through all 1,000 possibilites).  This would need to be done after finding out what e and h equal.  Again, how would one go about doing that?&lt;/ul&gt;<br><br>Weird; the first link worked in IE yesterday, but not in Firefox today.  So, in conclusion, this probably can only be achieved in IE.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770068">\
	 <div id="dsq-comment-header-2770068" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770068" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770068">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770068" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770068" class="dsq-comment-message">those perl scripts would be nice...<br><br>someone posted a program to dump any data on port 1935 using libpcap library... to make it easier than using tcpdump... but you will need a compiler and stuff to make such program :)<br><br><a href="http://home.twmi.rr.com/compn/rtmp.cpp" rel="nofollow">http://home.twmi.rr.com/compn/rtmp.cpp</a><br>for the source code<br><br><a href="http://outflux.net/blog/archives/2005/02/16/hitchhikers-guide-to-reverse-engineering/" rel="nofollow">http://outflux.net/blog/archives/2005/02/16/hit...</a><br><br>and a streaming media recording forum<br><br><a href="http://p069.ezboard.com/fstreemeboxvcrfrm1" rel="nofollow">http://p069.ezboard.com/fstreemeboxvcrfrm1</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770069">\
	 <div id="dsq-comment-header-2770069" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770069" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770069">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770069" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770069" class="dsq-comment-message">&lt;ul id="quote"&gt;&lt;h6&gt;GVOLTT wrote:&lt;/h6&gt;Browsing around my temporary internet files, and looking at the mediaxmlprovider file, leads me to conclude that the mp3s are located at:<br><br><a href="http://myspacem-xxx.vo.llnwd.net/*.mp3?e=**&amp;h=***" rel="nofollow">http://myspacem-xxx.vo.llnwd.net/*.mp3?e=**&amp...</a><br><br>where xxx = a 3-digit number  and<br>* = the mp3 filename found in the mediaxmlprovider file.<br><br>But I don\'t know how e= and h= are determined.<br><br>For example, the link to download Dragonforce\'s "Through the Fire and Flames" (which is available on their myspace at <a href="http://myspace.com/dragonforce" rel="nofollow">http://myspace.com/dragonforce</a>) is:<br><code>http&#58;//myspacem-510.vo.llnwd.net/01/56/7326510/7326510_f505d1d9.mp3?e=1154425508&amp;h=a4ee13b3010fb6760c4966ec3fc148e2</code><br><br><br>whereas <code>http&#58;//myspacem-510.vo.llnwd.net/01/56/7326510/7326510_f505d1d9.mp3</code><br> doesn\'t work.<br><br>How would you figure out what e and h equal?  Of course, you would also have to figure out the 3-digit number, but there are only 1,000 different possibilities, and the correct one can be found easily (no matter how long it takes to go through all 1,000 possibilites).  This would need to be done after finding out what e and h equal.  Again, how would one go about doing that?&lt;/ul&gt;<br><br>Looking through my firefox logs, I think I found where to get the values<br>about:cache-entry?client=HTTP&amp;sb=1&amp;key=http://www.myspace.com/services/media/musicplayerxml.ashx?b=11017444&amp;s=15537382<br><br>however, adding that with the rest of the link you posted, still doesn\'t work.  Leaving me to believe the "token" id number plays a part in that in some way..  I didn\'t get e and h for my link, I got b and s.  So those values are different off the bat.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770070">\
	 <div id="dsq-comment-header-2770070" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770070" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770070">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770070" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770070" class="dsq-comment-message">For Mac users, here’s how to record any audio from any player into any recorder:<br>1. Get the free Soundflower and Detour, and install both. (I do not support piracy, so find them yourself.) Soundflower is a virtual audio device, and Detour is a program that lets you set different output devices and volume levels for each app.<br>2. Using Detour, set the player or web browser to output to Soundflower.<br>3. Set the recorder to record (input) from Soundflower.<br>4. Press play in the player and record in the recorder.<br>5. When the audio is done, stop recording. It may help to use Soundflowerbed to split the audio to your speakers/headphones, so you can hear it while recording.<br><br>Apologies if this has been suggested already, or if a better free method has been mentioned. I only read a few recent posts.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770071">\
	 <div id="dsq-comment-header-2770071" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770071" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770071">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770071" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770071" class="dsq-comment-message">&lt;ul id="quote"&gt;&lt;h6&gt;Frungi wrote:&lt;/h6&gt;For Mac users, here’s how to record any audio from any player into any recorder:<br>1. Get the free Soundflower and Detour, and install both. (I do not support piracy, so find them yourself.) Soundflower is a virtual audio device, and Detour is a program that lets you set different output devices and volume levels for each app.<br>2. Using Detour, set the player or web browser to output to Soundflower.<br>3. Set the recorder to record (input) from Soundflower.<br>4. Press play in the player and record in the recorder.<br>5. When the audio is done, stop recording. It may help to use Soundflowerbed to split the audio to your speakers/headphones, so you can hear it while recording.<br><br>Apologies if this has been suggested already, or if a better free method has been mentioned. I only read a few recent posts.&lt;/ul&gt;<br><br><br>hey frungi i got i tryed all this but i got stuck on step 4.<br>press play in the player and record in the recorder??<br>is this on detour or sunflower cause i coudnt find it please help thanks</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770072">\
	 <div id="dsq-comment-header-2770072" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770072" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770072">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770072" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770072" class="dsq-comment-message">&lt;ul id="quote"&gt;&lt;h6&gt;smartuser wrote:&lt;/h6&gt;I decompiled the SWF of the Music player and analysied the actionscript code. <br><br>The 2 url\'s i found are -  rtmp://flash.myspace.com/mp3test (i think this would be were they store the music)<br><br>and - <a href="http://flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_" rel="nofollow">http://flash.vitalstream.com/flashgen.cgi?sname...</a>  (i doubght this is the one but may be)<br><br>So i think we have our url\'s and if im right a song (Im using One way ticket to hell and back - The darkness) would be located at somthin like -<br><br>rtmp://flash.myspace.com/84/94/8864948/8864948_620a6a27.mp3<br><br>There is a little program to play rtmp streams here - <a href="http://www.download.com/FLV-Player/3000-2139_4-10467082.html" rel="nofollow">http://www.download.com/FLV-Player/3000-2139_4-...</a><br><br>so we can test it to get a correct URL, then we\'ll find somthin to downlaod with, but we must find the right urls first!!!!!!!!<br>PLZPLZ HELP!!!&lt;/ul&gt;<br>I tried using the URL:<br><code>http&#58;//flash.vitalstream.com/flashgen.cgi?sname=test.flv&amp;aname=myspace_vitalstream_com/_definst_/48/62/2102684/2102684_31af234e.mp3</code><br><br><br>which is to try and get the song "My Chemical Romance - Welcome To The Black Parade"<br><br>What happen when i entered it in my browser, it displayed an XML source that contained the text of annother url, an rtmp url, that begins with an ip number that changes every time I click refresh<br><br>for example, one of the urls that is dispalyed is<br>rtmp://69.88.153.68/myspace_vitalstream_com/_definst_/48/62/2102684/2102684_31af234e.mp3<br><br>I think I am on to something... but nothing will play, not even in VLC media player.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770073">\
	 <div id="dsq-comment-header-2770073" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770073" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770073">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770073" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770073" class="dsq-comment-message">&lt;ul id="quote"&gt;&lt;h6&gt;2rei wrote:&lt;/h6&gt;hey frungi i got i tryed all this but i got stuck on step 4.<br>press play in the player and record in the recorder??<br>is this on detour or sunflower cause i coudnt find it please help thanks&lt;/ul&gt;<br>You’ve installed Detour and Soundflower, right? Let’s say you’re trying to record something that plays in a web browser. Set your recording program to take input from Soundflower instead of your microphone. Then using Detour, set the web browser to output to Soundflower instead of your speakers. Press play in the web browser and start recording.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770074">\
	 <div id="dsq-comment-header-2770074" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770074" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770074">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770074" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770074" class="dsq-comment-message">A program has been compiled which downloads any mp3 from any MySpace artist.  Figuring out the RTMP protocol wouldn\'t be worth it.<br><br>The development page is here: <a href="http://www.mouseindustries.com/gopher/" rel="nofollow">http://www.mouseindustries.com/gopher/</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770075">\
	 <div id="dsq-comment-header-2770075" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770075" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770075">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770075" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770075" class="dsq-comment-message">Thnaks a lot, works fine :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770076">\
	 <div id="dsq-comment-header-2770076" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770076" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770076">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770076" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770076" class="dsq-comment-message">I just tried the mp3 gopher... It\'s broken right now...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770077">\
	 <div id="dsq-comment-header-2770077" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770077" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770077">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770077" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770077" class="dsq-comment-message">:x  Ugh. I did everything right, got the .mp3 thing. put the musicstream thing in the address bar.. then added the .mp3 thing to it, but all it says is this page cannot be displayed.. or just says page loading and never does shit. haha help meee??  :( <br><br><a href="mailto:hello_mr_matty@yahoo.com" rel="nofollow">hello_mr_matty@yahoo.com</a> &lt;&lt; my e-mail.  :P</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770078">\
	 <div id="dsq-comment-header-2770078" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770078" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770078">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770078" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770078" class="dsq-comment-message">I\'ve gotten to this point.<br><br><a href="http://cache03-music01.myspacecdn.com/22/std_68c16ef5dd40723bf21815f26ea56ff5.mp3" rel="nofollow">http://cache03-music01.myspacecdn.com/22/std_68...</a><br><br>The XML from the above poster even tells me that\'s the file name, and where to download it.  However, in the end, it says "Access Denied."<br><br>Anything anyone can do?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770079">\
	 <div id="dsq-comment-header-2770079" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770079" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770079">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770079" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770079" class="dsq-comment-message">I made a program that uses this method to get the files. its written in vb, code is included.<br><br><a href="http://rapidshare.com/files/40469128/mySpace.zip.html" rel="nofollow">http://rapidshare.com/files/40469128/mySpace.zi...</a><br><br>It doesnt recognize download links in the xml-files but its not hard to include this.<br><br>The Code is uncommented and i tried some other stuff before i got to this so there are probably some unused variables.<br><br>I hope someone can use it.<br><br>btw the program needs the mswinsck.ocx component (included) and downloads the files using wininet.dll . it won\'t work on vista.<br><br>sry4bad english etc.<br><br>EDIT: some parts of the programs are in german, sry 4 this, too</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-2770080">\
	 <div id="dsq-comment-header-2770080" class="dsq-comment-header">\
	 <cite id="dsq-cite-2770080" class="dsq-comment-cite">\
	 <span id="dsq-author-user-2770080">Anonymous</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-2770080" class="dsq-comment-body">\
	 <div id="dsq-comment-message-2770080" class="dsq-comment-message">Im trying to find this code for my band page the band page is <a href="http://www.myspace.com/whizdom" rel="nofollow">www.myspace.com/whizdom</a> and can\'t figure out how to get the "D=" because my code says N and keeps coming up undefined again my webpage is <a href="http://www.myspace.com/whizdom" rel="nofollow">www.myspace.com/whizdom</a> been trying to find this code for months can some one please help</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-4624174">\
	 <div id="dsq-comment-header-4624174" class="dsq-comment-header">\
	 <cite id="dsq-cite-4624174" class="dsq-comment-cite">\
	 <span id="dsq-author-user-4624174">BMacBionix</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-4624174" class="dsq-comment-body">\
	 <div id="dsq-comment-message-4624174" class="dsq-comment-message">it was easier to use realplayer to download them but now you cant<br>best bet is to download free zilla music and that will get the new ones on the new player :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-4932115">\
	 <div id="dsq-comment-header-4932115" class="dsq-comment-header">\
	 <cite id="dsq-cite-4932115" class="dsq-comment-cite">\
	 <span id="dsq-author-user-4932115">Techie-In-Distress</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-4932115" class="dsq-comment-body">\
	 <div id="dsq-comment-message-4932115" class="dsq-comment-message">hey i need some BIG help people.<br>Since myspace reformatted their whole music system and there\'s no download link to help you with the first step, i\'ve been completely put in the dark to do any of the above, I cant find the XML file.<br>If anyone can help me, contact me at <a href="mailto:carlosemeza1@aol.com" rel="nofollow">carlosemeza1@aol.com</a><br>If not then can you take a look at myspace.com/hiscomingday<br>and see if you can find the XML file?<br>I\'ve been at this for 6-7 hours and i\'m gettting stressed out so if anyone can help just contact me or maybe send me a video on step by step procedure so for future references it\'s easier for all..<br><br><br>*I am using a MAC, so i have no idea if it\'ll work cause all the hacking programs run on windows only for some reason. Thanks for reading and hope someone tries to help.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-5136633">\
	 <div id="dsq-comment-header-5136633" class="dsq-comment-header">\
	 <cite id="dsq-cite-5136633" class="dsq-comment-cite">\
	 <span id="dsq-author-user-5136633">May</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-5136633" class="dsq-comment-body">\
	 <div id="dsq-comment-message-5136633" class="dsq-comment-message">THIS DOES NOT WORK!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-6623740">\
	 <div id="dsq-comment-header-6623740" class="dsq-comment-header">\
	 <cite id="dsq-cite-6623740" class="dsq-comment-cite">\
	 <a id="dsq-author-user-6623740" href="http://myspace.com" target="_blank" rel="nofollow">lindsay</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-6623740" class="dsq-comment-body">\
	 <div id="dsq-comment-message-6623740" class="dsq-comment-message">cool and sweet</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-6896402">\
	 <div id="dsq-comment-header-6896402" class="dsq-comment-header">\
	 <cite id="dsq-cite-6896402" class="dsq-comment-cite">\
	 <a id="dsq-author-user-6896402" href="http://myspace.com/m44rcis" target="_blank" rel="nofollow">m44</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-6896402" class="dsq-comment-body">\
	 <div id="dsq-comment-message-6896402" class="dsq-comment-message">great except FF gives random names to files in it\'s cache and where do I even find IE\'s cache...?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-8768523">\
	 <div id="dsq-comment-header-8768523" class="dsq-comment-header">\
	 <cite id="dsq-cite-8768523" class="dsq-comment-cite">\
	 <span id="dsq-author-user-8768523">lolwut</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-8768523" class="dsq-comment-body">\
	 <div id="dsq-comment-message-8768523" class="dsq-comment-message">This way is long (just use a packet sniffer, no need to open and browse your cache) and doesn\'t work. The directory Myspace stores mp3s on is protected. Myspace uses the rmtp (flash specific) protocol to retrieve the mp3 with it\'s player. http access is forbidden.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-10429558">\
	 <div id="dsq-comment-header-10429558" class="dsq-comment-header">\
	 <cite id="dsq-cite-10429558" class="dsq-comment-cite">\
	 <span id="dsq-author-user-10429558">Dilbert</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-10429558" class="dsq-comment-body">\
	 <div id="dsq-comment-message-10429558" class="dsq-comment-message">Why so complicated? -  <a href="http://file2hd.com/" rel="nofollow">http://file2hd.com/</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-10644640">\
	 <div id="dsq-comment-header-10644640" class="dsq-comment-header">\
	 <cite id="dsq-cite-10644640" class="dsq-comment-cite">\
	 <span id="dsq-author-user-10644640">Tobi</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-10644640" class="dsq-comment-body">\
	 <div id="dsq-comment-message-10644640" class="dsq-comment-message">Because they changed something again and all the new files won´t download in HQ again ... someone figured a way yet?!?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-20354150">\
	 <div id="dsq-comment-header-20354150" class="dsq-comment-header">\
	 <cite id="dsq-cite-20354150" class="dsq-comment-cite">\
	 <span id="dsq-author-user-20354150">jeannea</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-20354150" class="dsq-comment-body">\
	 <div id="dsq-comment-message-20354150" class="dsq-comment-message">Okay i just want to listen to my songs on myspace. But the thing says downlaod flash player and i do but it keeps like saying download failed and its making me really mad ive done it like Ten hundred times. i need something that will like help me listen to my music with out downloading anything...???</div>\
	 </div>\
	 </li>\
	 </ul>\
';

(function() {
	
	





Dsq.Debug.profile(function() {
	if(Dsq.jsonData.request.page == 1 && Dsq.jsonData.request.is_initial_load) {
		Dsq.container.innerHTML = Dsq.Templates.header() + Dsq.container.innerHTML + Dsq.Templates.footer();
	}
	Dsq.$(Dsq.curPageId).innerHTML = Dsq.$(Dsq.curPageId).innerHTML.replace(Dsq.COMMENTS_RE, Dsq.CommentsHandler);
}); // Dsq.Debug.Profile

// HACK: Resetting cache because we're done with.
Dsq.Utils.gebiFromElementCollectionCache = null;


	
	
	var dsq_styleEl = document.getElementById(disqus_container_id);
	var dsq_anchorEl = document.getElementsByTagName('a')[0];
	
	Dsq.Thread.fc = Dsq.Utils.getStyle(dsq_styleEl, 'color');
	if(dsq_anchorEl) { Dsq.Thread.ac = Dsq.Utils.getStyle(dsq_anchorEl, 'color'); }
	Dsq.Thread.ff = Dsq.Utils.getStyle(dsq_styleEl, (Dsq.Utils.ie || window.opera ? 'fontFamily' : 'font-family'));
	// For Safari / Opera: strip quotes.
	Dsq.Thread.ff = Dsq.Thread.ff.replace(/['"]/g, '');
	Dsq.Thread.fc = encodeURIComponent(Dsq.Thread.fc);
	Dsq.Thread.ac = encodeURIComponent(Dsq.Thread.ac);
	Dsq.Thread.ff = encodeURIComponent(Dsq.Thread.ff);

	
	
	
	if(Dsq.$(Dsq.Templates.addPostContainer)) {
		// TODO: Check to see if theme uses postmessage.
		if (window.disqus_use_postmessage) {
			Dsq.frames['reply_0'] = new Dsq.ReplyFrame(Dsq.$(Dsq.Templates.textareaContainer));
			Dsq.frames['reply_0'].init(function() {
				// Use fallback iframe
				Dsq.$(Dsq.Templates.addPostContainer).innerHTML = '';
				var theme = (typeof disqus_frame_theme == 'undefined') ? 'default' : disqus_frame_theme;
				Dsq.Iframes.showReplyIframeInContainer(Dsq.$(Dsq.Templates.addPostContainer), null, {theme: theme});
				// if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
			});
		} else {
			// DEPRECATED
			Dsq.Iframes.showReplyIframeInContainer(Dsq.$('dsq-post-add'));
		}
	}

	
	

	
	if(document.location.hash != '') {
		document.location.hash = document.location.hash.substring(1);
	}

	Dsq.Popup.showCookieMsgs();

	
	if(document.location.search != '' && location.hash != '#disqus_thread') {
		var reply_id = Dsq.Utils.getRequestParams().dsq;
		if(reply_id) { document.location.hash = 'comment-' + reply_id; }
	}

	
	if((typeof OB_Script != 'undefined') && (typeof OB_versionNum != 'undefined')) {
		if(navigator.userAgent.indexOf("Firefox") != -1) {
			if(window.frames['dsq-reply-frame']) {
				window.frames['dsq-reply-frame'].location = Dsq.Urls.REPLY + (new Date()).getTime() + '&f=tech-recipes&t=myspace_hack_to_download_any_song_on_myspace_8212_xml_method_myspace_tech_recipes&to_redirect=' + encodeURIComponent(window.location) + '&ifrs=' + encodeURIComponent(disqus_iframe_css);
			}
		}
	}

	if (Dsq.jsonData.integration.theme == 4) {
		if (Dsq.jsonData.realtime_enabled) {
			Dsq.Realtime.initialize();
		}
	}

	



	window.ExecuteWhen = (function () {
	var obj = {}
	
	// Private
	var running = false;
	var timer = null;
	var pending = [];
	var startTimer = function() {
		running = true;
		timer = setInterval(obj.heartBeat, 100);
	};
	var stopTimer = function() {
		running = false;
		clearInterval(timer);
	};
	
	// Public
	obj.add = function (condition, code) {
		pending.push([condition,code]);
		this.heartBeat(); //!
		if (!running) {
			startTimer();
		}
	};
	obj.heartBeat = function() {
		if (!pending.length) {
			stopTimer();
		}
		var newPending = [];
		for (var i=0; i<pending.length; i++) {
			var cond = pending[i][0];
			var code = pending[i][1];
			// FIXME: if cond or code throw an error, they never get removed from pending
			if (cond()){
				code();
			}
			else {
				newPending.push([cond, code]);
			}
		}
		pending = newPending;
	};
	return obj;
})();

// also used in embed_thread.js:
window.fbIsReady = function () {return window.FB && FB.init;};
// NOTE: This script gets executed again without threadEl
//       set when we are loaded again as the fbc_receiver.
//       In this case, we don't need the hidden container.

if(!window.FB || !FB.init) {
	if(window.Dsq && Dsq.container) {
		// container is not present when init.js is loaded from an xd-receiver iframe; in this case,
		// we don't need the FB_HiddenContainer anyway.
		var fbDiv = document.createElement('div');
		fbDiv.id = "FB_HiddenContainer";	// Required or else FeatureLoader will execute a document.write.
		fbDiv.style.position = 'absolute';	// This is intentionally not setting display to none as this breaks
		fbDiv.style.top = '-10000px';		// Flash in Safari.
		fbDiv.style.left = '-10000px';
		fbDiv.style.width = '0px';
		fbDiv.style.height = '0px';
		Dsq.container.appendChild(fbDiv);
	}
	var fbJS = document.createElement('script');
	fbJS.type = "text/javascript";
	fbJS.src = "http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php";
	document.getElementsByTagName('head')[0].appendChild(fbJS);

	ExecuteWhen.add(window.fbIsReady,
		function () {
			// HACK: This is a workaround FBC's single domain limitation by
			//		 allowing sites to create multiple forums with different
			//		 Facebook API keys.  This must be used in conjunction with
			//		 disqus_facebook_forum (see authenticateFacebook).
			var facebook_api_key = '182ec83bf17a2b0a980f481978335d5b';
			if (typeof disqus_facebook_api_key != 'undefined') {
				facebook_api_key = disqus_facebook_api_key;
			}

			FB.init(facebook_api_key, window.facebookXdReceiverPath || null,
				{fetchSignedPublicSessionData: true});
		});
}


	
		Dsq.Debug.log('Loading fbc');
		window.DisqusFbcParentController = (function (){
	var obj = {};
	
	// Private
	var rpcServer = null;
	var initted = false;
	var onInit = [];
	var user = null;
	var defaultRpcClient = null;
	var receiverUrl = "http://disqus.com/facebook-connect/xd_receiver.htm";
	var loginNode = document.getElementById('dsq-fbc-login');
	var authenticatedNode = document.getElementById('dsq-fbc-authenticated');
	var fbName = document.getElementById('dsq-fbc-name');
	var fbPic = document.getElementById('dsq-fbc-profilepic');
	var iframes = { 
		// Map of rpcServerName -> (rpcClient, iframeDomNode) pairs
		// Main Disqus iframe is added by init()
	};
	var makeRpcServerName = function(opt_postId) {
		// this method should be identical here and in iframeController factored out 
		if (opt_postId === undefined) {
			return 'disqusIframeFbcRpcServer';
		} else {
			return 'disqusIframeFbcRpcServer-' + opt_postId;
		}
	};
	var makeRpcClientName = function(opt_postId) {
		if (opt_postId === undefined) {
			return 'disqusParentFbcRpcClient';
		} else {
			return 'disqusParentFbcRpcClient-' + opt_postId;
		}
	};
	var updateFrame = function(rpcServerName) {
		var rpcClient = iframes[rpcServerName][0];
		var iframeNode = iframes[rpcServerName][1];
		rpcClient.send('setConnected', user);
		iframeNode.className = user ? 'dsq-post-reply-authenticated' : 'dsq-post-reply';
	};
	var setUser = function(userNow) {
		user = userNow;
		// pass null user data to signify logout
		var rpcServerName = null;
		for (rpcServerName in iframes) {
			updateFrame(rpcServerName);
		}
	};
	var createRpcClient = function(frameNode, opt_postId) {
		// Creates an XdRpcClient for communication with the iframe frameNode with parent comment 
		// equal to opt_postId. If this argument is undefined, creates a client for communicating with 
		// the main Disqus iframe. The XdRpcClient and frameNode are added to the "iframes" array.
		//
		// Returns the rpcServerName that the client is accessing. This name is also the index into
		// the "iframes" array.
		var ifName = Dsq.Iframes.makeReplyIframeName(opt_postId);
		var rpcServerName = makeRpcServerName(opt_postId);
		var rpcClientName = makeRpcClientName(opt_postId);
		var endpoint = new FB.XdComm.EndPoint(ifName, FB.XdComm.PageRelation.child, receiverUrl);
		var rpcClient = new FB.XdComm.XdRpcClient(rpcServerName, rpcClientName, endpoint, receiverUrl);
		iframes[rpcServerName] = [rpcClient, frameNode];
		if (window.isMashable) {
			// TODO: does this belong here?
			// Right now only Mashable needs this, because only they have a Connect button
			// inside the iframe, and that's the only iframe-> server communication
			rpcClient.send('createRpcClient', FB.XdComm.Server.singleton.get_receiverUrl());
		}
		return rpcServerName;
	};
	var postToNewsfeed = function(opt_result) {
		// Argument opt_result is an object containing values of the fb_connect_newsfeed cookies. 
		// These are `postId`, the id of the comment just posted, and `url`, the shortened link to it
		if (!opt_result) {
			return;
		}
		var activeComment = Dsq.Thread.getActiveCommentId();
		if (activeComment != opt_result.postId) {
			return;
		}
		var comment = Dsq.jsonData.posts[activeComment];
		params = {
			'site_name': Dsq.jsonData.forum.name,
			'comment_url': opt_result.url,
			'message': Dsq.Utils.stripTags(comment.message)
			};
		FB.Connect.showFeedDialog(83035958976, params, null, null, null, FB.RequireConnect.require);
	};
	var requireSession = function() {
		// Used when the iframe wants to initiate an FB Connect session
		FB.Connect.requireSession(obj.onLogin);
	};
	
	var onCreateReplyIframe = function(value) {
		if (value.xtype) {
			return;
		}
		var postId = value['postId'];
		if (!postId) {
			// We handle the main iframe separately, so in case somehow this gets called, skip it
			return;
		}
		var frameNode = value['node'];
		var rpcServerName = createRpcClient(frameNode, postId);
		updateFrame(rpcServerName);
		if(user && postId) {
			var node = document.getElementById('dsq-reply-bar-auth-' + postId);
			if (node) { // Not present in Mashable
				node.style.display = 'none';
			}
		}
	};

	// Public
	obj.onLogin = function() {
		// This is triggered either when the user connects or when they're already connected on visit
		var dsqReplyAuth = Dsq.Utils.getElementsByClassName(document, 'div', 'dsq-reply-bar-auth');
		var noAnonMsg = document.getElementById('dsq-no-anon-msg');
		
		if(noAnonMsg) { noAnonMsg.style.display = 'none'; }
		loginNode.style.display = 'none';
		for(var i=0; i<dsqReplyAuth.length; i++) {
			dsqReplyAuth[i].style.display = 'none';
		}
		
		authenticatedNode.style.display='block';
		FB.XFBML.Host.addElement(new FB.XFBML.ProfilePic(Dsq.$('dsq-fbc-profilepic')));
		FB.XFBML.Host.addElement(new FB.XFBML.Name(Dsq.$('dsq-fbc-name')));
		FB.Connect.getSignedPublicSessionData(setUser);
		
		if(document.getElementById('dsq-login-message')) {
			document.getElementById('dsq-login-message').style.display = 'none';
		}

		
		if(typeof(fbcLoginCallback) == 'function') {
			fbcLoginCallback();
		}
	};
	obj.logout = function() {
		var dsqReplyAuth = Dsq.Utils.getElementsByClassName(document, 'div', 'dsq-reply-bar-auth');
		var noAnonMsg = document.getElementById('dsq-no-anon-msg');
		
		FB.Connect.logout();
		if (!window.isMashable) {
			loginNode.style.display='inline';
		}
		
		if(noAnonMsg) { noAnonMsg.style.display = 'block'; }
		
		for(var i=0; i<dsqReplyAuth.length; i++) {
			dsqReplyAuth[i].style.display = 'block';
		}
		
		authenticatedNode.style.display='none';
		// Passing null user data to signify logout
		setUser(null);
		
		if(document.getElementById('dsq-login-message')) {
			document.getElementById('dsq-login-message').style.display = 'block';
		}
		
		if(typeof(fbcLogoutCallback) == 'function') {
			fbcLogoutCallback();
		}

		return false;
	 };
	obj.ensureInit = function(callback) {
		// If the controller hasn't already been initted, will wait until it has been before calling
		// callback; otherwise, calls it immediately. Does not attempt to call init.
		if (initted) {
			callback();
		} else {
			onInit.push(callback);
		}
	};
	obj.init = function() {
		// This method should be called after the FB scripts have loaded, FB.init has been called, 
		// and XdComm loaded.
		if (initted) {
			// I think this double init is caused by a bug with FB.ensureInit
			return;
		}
		var frameNode = Dsq.$(Dsq.Iframes.makeReplyIframeId());
		var rpcServerName = createRpcClient(frameNode);
		defaultRpcClient = iframes[rpcServerName][0];
		if (!window.isMashable) {
			FB.XFBML.Host.addElement(new FB.XFBML.LoginButton(loginNode));
		}
		Dsq.Events.addHandler(Dsq.Events.REPLY_IFRAME_CREATED, onCreateReplyIframe);
		if (Dsq.Thread.getActiveCommentId()) {
			// If there's a highlighted comment, we may have just posted, so check the cookie
			// to see if we should post to newsfeed.
			defaultRpcClient.send('queryNewsfeed', null, postToNewsfeed);
		}
		if (window.isMashable) {
			// Right now only Mashable needs this, because only they have a Connect button
			// inside the iframe, and that's the only iframe-> server communication
			var exportedMethods = {
				requireSession : {'method': requireSession}
			};
			rpcServer = new FB.XdComm.XdRpcServer('disqusParentFbcRpcServer', exportedMethods);

		}
		initted = true;
		for (var i=0; i<onInit.length; i++) {
			onInit[i]();
		}
	};

	return obj;
})();

		ExecuteWhen.add(window.fbIsReady,
			function() {
				FB.ensureInit(function () {
					DisqusFbcParentController.init();
					FB.Connect.ifUserConnected(DisqusFbcParentController.onLogin);
				});
			});
	


if(typeof(disqus_callback) == 'function') {
	var callback_params = Dsq.Utils.getRequestParams()['dsq_cbp'] || null;

	// We don't care about any errors in third-party code
	try {
		disqus_callback(callback_params);
	} catch (x) {
		if (typeof(console) != 'undefined' && typeof(console.log) == 'function') {
			// But it would be nice to let developers know about them
			console.log(x);
		}
		// pass
	}

	// HACK: We don't know if the callback wraps our container, which may
	// possibly result in a new DOM element.
	Dsq.container = document.getElementById('dsq-content');
}

// Global event handler for narcissus.
if (Dsq.jsonData.integration.theme == 4) {
	var g = Dsq.Utils.ie ? document : window;
	Dsq.Utils.addEventListener(g, 'keydown', function(event) {
		// Handle "enter" key on input for post box.
		if ((event.keyCode || event.which) == 13) {
			var target = Dsq.Utils.ie ? event.srcElement : event.target;
			// For Safari bug, detect text node.
			if (target.nodeType == 3) {
				target = target.parentNode;
			}

			if (target.nodeName == 'INPUT' &&
				target.parentNode.className == 'dsq-input-wrapper') {
				var postId = Dsq.Utils.extractId(target);
				Dsq.Templates.postComment(postId, this, false);
			}
		}
	});
}

})();




