laminas-feed icon indicating copy to clipboard operation
laminas-feed copied to clipboard

Add functions to get Media (images/videos/audios) from entry description/contents

Open weierophinney opened this issue 5 years ago • 12 comments

Just check now a days feed entries have images/videos/contents can we have few functions to extract that details?

e.g : http://sportbild.bild.de/rss/vw-startseite/vw-startseite-45028186,sort=1,view=rss2.sport.xml


Originally posted by @rajjanorkar at https://github.com/zendframework/zend-feed/issues/49

weierophinney avatar Dec 31 '19 21:12 weierophinney

@rajjanorkar

can we have few functions to extract that details?

You can extend the reader yourself, because zend-feed has a plugin system. Please check the documentation: "zend-feed – Extending Feed and Entry APIs". There will you find an example how to register a new namespace and read the specific elements. All relevant elements are described here: "Media RSS Specification".


Originally posted by @froschdesign at https://github.com/zendframework/zend-feed/issues/49#issuecomment-338896445

weierophinney avatar Dec 31 '19 21:12 weierophinney

Thank you @froschdesign, i am still in learning phase looking forward to contribute to this space.


Originally posted by @rajjanorkar at https://github.com/zendframework/zend-feed/issues/49#issuecomment-343651701

weierophinney avatar Dec 31 '19 21:12 weierophinney

I'm sorry, the last code example in documentation doesn't work anymore. (See: #44) Here can you find a workaround: https://github.com/zendframework/zend-feed/issues/54#issuecomment-343411994


Originally posted by @froschdesign at https://github.com/zendframework/zend-feed/issues/49#issuecomment-343654096

weierophinney avatar Dec 31 '19 21:12 weierophinney

FWIW, MRSS is exactly the extension I've been working with, though I've only looked at thumbnails/images in my implementation. Would be great to have that in core since it seems to be popular and is very useful.


Originally posted by @Synchro at https://github.com/zendframework/zend-feed/issues/49#issuecomment-343988171

weierophinney avatar Dec 31 '19 21:12 weierophinney

hi @Synchro thats nice, if you dont mind can you share your extension and that will be starting point for others.


Originally posted by @rajjanorkar at https://github.com/zendframework/zend-feed/issues/49#issuecomment-344063836

weierophinney avatar Dec 31 '19 21:12 weierophinney

A simple workaround parsing-rss-file-with-zend-2-feed-i-cant-get-media-tag


Originally posted by @alfredleo at https://github.com/zendframework/zend-feed/issues/49#issuecomment-464663955

weierophinney avatar Dec 31 '19 21:12 weierophinney

I will add the support for one of the next minor releases; 2.13 or 2.14. This includes the full Media RSS specification with unit tests and documentation.

Help is always welcome! 😃


Originally posted by @froschdesign at https://github.com/zendframework/zend-feed/issues/49#issuecomment-469432296

weierophinney avatar Dec 31 '19 21:12 weierophinney

You can add media objects using setEnclosure method on entry object. According to RSS 2.0 specs:

enclosure | Describes a media object that is attached to the item.

<enclosure> is an optional sub-element of .

It has three required attributes. url says where the enclosure is located, length says how big it is in bytes, and type says what its type is, a standard MIME type.

The url must be an http url.

When setting enclosure, you need to specify uri instead of url:

$entry->setEnclosure([
  'uri' => get_absolute_url($path),
  'type' => get_mime_type($path),
  'length' => filesize($path),
]);

alexkuc avatar Jun 10 '22 10:06 alexkuc

@alexkuc Correct, it is possible to add a media object via the enclosure element, but it is recommended to use only one object:

For best support in the widest number of aggregators, an item SHOULD NOT contain more than one enclosure.

https://www.rssboard.org/rss-profile#element-channel-item-enclosure


In the documentation it can be found in the reader section: https://docs.laminas.dev/laminas-feed/reader/#entry-api-methods

froschdesign avatar Jun 10 '22 10:06 froschdesign

Thank you for the link, @froschdesign. W3 was unfortunately ambiguous whether you can use more than 1 but your link clears up that nicely. I have left the code here for others in case they face similar dilemma.

@froschdesign is it still necessary to keep this issue open? Seems to me that functionality for adding media objects is already in place

alexkuc avatar Jun 10 '22 11:06 alexkuc

Seems to me that functionality for adding media objects is already in place

In the Media RSS specification you will find a lot more: https://www.rssboard.org/media-rss

froschdesign avatar Jun 10 '22 12:06 froschdesign

Ah, I see now:

RSS enclosures are already being used to syndicate audio files and images. Media RSS extends enclosures to handle other media types, such as short films or TV, as well as provide additional metadata with the media.

alexkuc avatar Jun 10 '22 12:06 alexkuc