Hi there,

I noticed a while ago that displaying embedded swf's in RSS readers like Google Reader doesn't work currently. It didn't bothered me very much, but some of my users start to complain about this, so I did some research.

The problem is that Google strips object-tags for security reasons, but leaves embed-tags in-tact. Of course, SWF Tools does not produce embed-tags anymore in order to validate to Strict XHTML 1.0 (embed is deprecated in XHTML 1.0) on your page.

RSS on the other hand doesn't care about HTML-standards in its item-descriptions, so we could actually use embed-tags here. But another problem arises: where to hide the fallback-message then? (i.e.:"You are missing some Flash content that should appear here! Perhaps your browser cannot display it, or maybe it did not initialize correctly.")

Any suggestions?

Comments

japanitrat’s picture

push

japanitrat’s picture

can't believe that nobody cares about the fact that SWF Tools is not working within RSS feeds (in Google Reader) :(

timatlee’s picture

Yeah, I just bumped into this today.

Sure would be nice to see fixed.. though I don't know where to begin digging at it.

Any idea what would be involved with adding a new display for the cck field?

zim2411’s picture

I'd actually quite like to see this too

timatlee’s picture

I'd like to see it as well, and wouldn't mind trying to add this .. but I don't even know where to begin.

My skills with CCK is, well, limited. Do I make this a display field formatter? Do I add another embedding type for swftools? Should this be an external module instead of changing swftools?

I'm doing this with Google Reader in mind, so with that said - Anyone know where I could find information on how Google Reader expects an RSS feed with an enclosure to be formatted?

Thanks...

zim2411’s picture

I've been playing with Contemplate to alter the output of the RSS feed for my Video content type. On the site, it loads the JW4 player with SWFTools, and everything is fine. In the RSS feed though, it's just a blank entry. Pretty bad.

I've been testing stuff in Google Reader, and I'm guessing it only displays content from trusted sources. Here's my reasoning:

<embed src="http://www.youtube.com/v/0pqzNJYzh7I&hl=en_US&fs=1&rel=0&color1=0x402061&color2=0x9461ca" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="853" height="505"></embed>

If hardcode this as the output for the content type, the video will successfully work on Google Reader.

<embed src="http://popkrazy.com/sites/all/modules/swftools/shared/flash_media_player/player.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="853" height="505"></embed>

However, if I change the src="" attribute to the JW Player.swf location on my server, nothing appears in Google Reader. If I save the code to a test.html page on my desktop though, it DOES load the JW Player. Is Google Reader stripping out the embed tag because it's an unknown domain?

japanitrat’s picture

did you try to actually tell the player to embed a video? I mean, I can't see any flashparams (therefore videofile) in your embed-code ..

zim2411’s picture

Well I figured out the bigger issue -- Google does indeed maintain a whitelist of allowed content.

You can add your site here: http://spreadsheets.google.com/viewform?hl=en&formkey=cEFhbGpSX2VzVkFfMm...

I submitted my site for approval. If I get it, I'll play around with the Contemplate template.

zim2411’s picture

Seems like my site didn't get approval... I haven't heard back from Google and my RSS feed hasn't magically started working either.

Anyway, here's the code I came up with for Contemplate:

Simplified version:

<?php print $node->content['body']['#value']; ?>

<embed src="http://example.com/sites/all/modules/swftools/shared/flash_media_player/player.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="380" flashvars="file=http://example.com/<?php print $item['filepath'] ?>"></embed>

Version that works with imagecache and a thumbnail field:

<?php print $node->content['body']['#value']; ?>

<?php foreach ((array)$node->field_vlogvideo as $item) { 
if($node->field_vlog_thumbnail[0]['filename'] != "")
$image = "&image=http://example.com/sites/default/files/imagecache/vlog_thumb/".$node->field_vlog_thumbnail[0]['filename'];
?>

<embed src="http://example.com/sites/all/modules/swftools/shared/flash_media_player/player.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="380" flashvars="file=http://example.com/<?php print $item['filepath'] ?><?php print $image; ?>"></embed>

<?php }?>

field_vlogvideo is my .mp4 video, field_vlog_thumbnail is my video thumbnail. (I allowed up to 720p screenshots, so I'm using imagecache to force resizing)

Both output the body of the post first, and then the flash player. It still doesn't work in Google Reader since my site is not white listed, but it works in Feedburner so the HTML at least works.