Hi there:
I'm working on a small site to feature videos submitted to an online video festival. We want to use a third party video host to hold the submission since we don't have the bandwidth and these modern video hosting sites do it so well so why should we compete until we see if our festival is successful.
See a starter example here:
http://cell.cctvcambridge.org/
We'll use our own Drupal instance with Feed API to pull nodes from Blip.tv, by tag, and use Feed Element Mapper to get Blip fields into the right CCK fields.
I've got a good start and can aggregate content from Blip and the only trouble I am having is pulling the traditional body, author, duration, etc, content to be inserted into matching fields in our custom CCK content type.
For example, I have created a content type called "blip" and within created field_author and field_duration. I am using the Feed Element Mapper to try to point the incoming fields into the right places but it seems that I just don't have any results. I checked the original content and they do in fact have data in the field, but in the end I only get title and a link to the original.
What am I missing? Is this because Blip turns out a bad feed?
Here is the link for the feed I am using as a test:
feed://blip.tv/?page=1;s=search;topic_name=cctv%20cctvcambridge&skin=rss
Thanks for the help, I am enthusiastic about this module!
| Comment | File | Size | Author |
|---|---|---|---|
| #15 | Picture 2.png | 28 KB | seaneffel |
| #15 | Picture 3.png | 117.08 KB | seaneffel |
| #12 | Picture 1.png | 40.8 KB | seaneffel |
| #6 | Picture 2.png | 110.31 KB | seaneffel |
| #4 | Picture 1.png | 58.15 KB | seaneffel |
Comments
Comment #1
seaneffel commentedJust wanted to add, I am hoping to pull across the thumbnails and play links and such from Blip.
Comment #2
ekes commentedI'm not sure there is enough description to work out what your exact problem is. Is there somewhere we can see it and the settings?
For actually displaying the video in your node you may find the embedded media field http://drupal.org/project/emfield a nice answer - it does blip.tv out of the box. I've written a mapper for it http://drupal.org/node/221745 - but it (at present) require a patch to the feedapi module http://drupal.org/node/217750
By the way that blip.tv feed is a really nice example of an extended feed :-)
Comment #3
seaneffel commentedHost crashed, I'll post some proper details later when e get this back up.
Comment #4
seaneffel commentedHere is the best I can do for you without handing over admin access, though I am happy to do this if it would help solve the problem.
This is the feed item example from Blip.tv for one of the items in the feed.
I've tried to create matching field with CCK, and then pointing the feed items into the CCK fields turns up no results. I am left only with the title and node creation date.
See the attached screenshot.
The result was this: http://cell.cctvcambridge.org/node/117
Comment #5
ekes commentedFrom the screen shot, and a quick look at the feed, the two fields (description and original_author) you are mapping don't exist in the feed. Both description and user are in the (custom) blip: namespace, which will be accessible in the raw-> section I'm expecting, but you'd need to write something to map them.
With the patches I mentioned above the media itself is very easy to map :-)
I think it's possibly worth looking at how 'other' stuff is made available to be mapped.
Comment #6
seaneffel commentedI already had the embedded media field installed, I installed your Blip mapper, and patched feedapi (actually the simplepie_parser.module file according to the patch file). But still nothing maps, and I have an error that suggests something should be happening but is not. See the screenshot...
If you want to see this problem then I'm about to email you with an admin access account through your contact form - if you have the time and generosity to look closer at this problem then maybe I can take it away after that and flush out the mapping of the "other" fields on my own.
I just need one good working example and I can emulate it.
Comment #7
ekes commentedOK, this is becoming very informative - sorry it's not going to help you in the immediate term though.
The <embedded> media from blip.tv going to the embedded media video cck field is failing. This is in part a bug in the recognition by the blip.tv media field. It's taking the field as it's own as it recognises blip.tv/file but it's _assuming_ what comes next is the ID of the media, which in this case it's not it is get/nameoffile.extension. This means it's neither getting treated as an FLV nor a usable blip.tv feed.
Part of the solution to this I suppose is make the reg ex for the blip.tv contrib for video_cck more specific. I'm not sure if it is possible to expand from the /get/name to the ID though - to investigate before I submit a report.
The other part of the solution is a more complete solution for embedded media. At the moment I've only written the mapper for the video_cck emfield, it was a case of pick one and use it as a test case. There are however always going to be feeds with multiple different types of media embedded (like the blip.tv one) and different media fields/content types people want to map them to. I've been thinking in this direction for a little while now... Watch this space.
In the shorter term for your problem. A specific solution:
1) Writing a blip.tv namespace mapper. This would solve both the non-standard description, author etc. fields and getting the ID of the video for the emfield.
OR
2) Writing a mapper for the video module that can handle other forms of video, including not held locally
Comment #8
seaneffel commentedThis is a big bummer, mostly because I don't have the skill to write out a solution on my own. You said in an email to me that you may move forward on your own Blip.tv mapper, I would be interested in helping you with that in any way that I can. Let me know what I can do.
On other fronts, are our goals of aggregating video submissions via some third party video hosting site impossible within Drupal? In a lot of ways our goal was built on how well the core Aggregator module performed on our main website, maybe it was pure chance that it looked so good. Aggregator pulls across the thumbnail, description and playlink, we figured it was an easy step already. See what it looks like:
http://www.cctvcambridge.org/aggregator/sources/34
I didn't think it would be so difficult for Feed API to grab the same elements.
Thanks for the help so far, let me know how we can contribute.
Comment #9
seaneffel commentedActually, Blip gives you a handy copy/paste code option for embedding your new Blip video onto your own site. If that code could be found in their feed, then we could pull it into an Embedded Media Field and call it done.
And if it were not available directly in the feed, could the embed code be manufactured by a module given the data that does exist from the Blip feed? This is what a typical Blip embed code looks like, and the only custom portion is the video file (ignore the guys, they're local personalities):
Then the only thing that our specific application would need is the author and description.
Comment #10
alex_b commentedI just read through the thread here and have some questions:
- The basic problem is that blip.tv tags are not being detected, correct?
- Did you try parser_common_syndication? What are the results?
It seems to me that this issue is much more parser related than anything else. Has anybody tried to get the necessary feed elements from SimpleFeed or through parser common syndication?
Comment #11
ekes commentedIs the aggregator example there from the same feed as you list at the top?
I might be missing something but the feed at the top contains only example:
So I can't see where aggregator would be getting the HTML with the linked thumbnail or anything.
Also I notice (kicking self) that all you should need to pass to emfield video_cck for blip.tv is the url of the original post. It _should_ (or claims to) work out the rest (ie getting the embed code etc). But I've just modified the emfield mapper and it does pass the url on correctly, but the field isn't doing as promised. I've tested this posting a blip.tv url manually as well, and it's not working. I've not time to check why this is the case at the moment.
Comment #12
seaneffel commentedI tried out SimpleFeed just now and it has the same problem, does not find the feed elements apart from the Blip feed item title, and I actually have the video file address pointing into the video_cck field. See the screenie attached.
I haven't tried parser_common_syndication, I don't (yet) have a PHP5 environment to work with.
Sean
Comment #13
seaneffel commentedEkes, yes both aggregator and feedapi are using the same feed link from Blip.tv, as well as the feed I posted on another site: http://www.cctvcambridge.org/aggregator/sources/34
Workin on some stuff here, will have more soon.
Comment #14
seaneffel commentedPS, someone else had trouble making the Blip.tv embed field work, and found a solution. Maybe its the same problem we have:
http://drupal.org/node/227461
Comment #15
seaneffel commentedYou are right, the only thing that needs to be inserted into the Embedded Media Field is the original Blip link. It works fine when I enter a URL manually, pulls in the media file just fine, and the rest I suppose would be themeing to make it look OK. See screens attached.
However the mapper doesn't insert the URL automatically. I had it map some of the fields once, a few hours ago, so I am going to try to sort that out now.
Comment #16
seaneffel commentedSome Blip fields will get mapped and some won't. I am able to map the file URLs (.flv and .mp4) into the embedded media field, I am not able to map the Blip original URL into the embedded fields. I can, however, manually edit the embedded field with a Blip original URL and it displays fine.
I've got a couple of errors that come up when I am attempting to refresh the feed with the mapper pointing the original URL into the embedded field. Maybe its helpful to see it with the admin account I gave you, if not then here are the errors:
Seems like this set of errors repeats once for each feed item pulled in, in my case 12 sets of errors for 12 feed items.
Comment #17
seaneffel commentedWhat we figured out at a table at Drupalcon is that the Feed Element Mapper is not correctly inserting the value of the Blip.tv URL. It seems the field wants an array value when instead the Blip url is a regular string. The module should be smart enough to determine the difference between an array and string and accept both as a value.
I can back this up with the earlier posts, the mapping produces tons of errors when mapping the URL into the emfield but works just fine when mapping other elements (such as the flv URL).
Thanks to aaron and Alex of zivtech for looking at this with me.
Comment #18
ekes commentedHave you tried it with http://drupal.org/node/221745#comment-752671 -- handling arrays and strings what it is for.
Sorry should have marked this thread as a dupe as the discussion has continued under the actual patch/module thread.