laminas-feed
laminas-feed copied to clipboard
Add functions to get Media (images/videos/audios) from entry description/contents
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
@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
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
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
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
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
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
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
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 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
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
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
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.