Recently, trying to embed youtube videos in mosaic has broken. It's due to Youtube changing their api slightly and noembed.com has not been updated with fixes.
Any thoughts on how to fix this in Mosaic? I'm not keen on relying on a 3rd party site to figure out embed codes for us, especially if it's maintenance has gone away. I'm not keen on rewriting all this perl into a plone package either. Maybe plone.org can host a noembed fork? What's the best way out of this one?
I use a custom fragment and that works:
If it is OK to paste all the iframe code from youtube: view/data/iframe is the complete embed code.
The CSS is to make it responsive, so I set the height (as percent of width) in the settings.
def editmode(self):
form = self.request.form
if '_layouteditor' in form:
return True
if 'disabled' in self.data:
return self.data['disabled'] == False
return True
this is a good workaround, but I still am concerned that "core mosaic" (can I call it that?) is broken as long as noembed.com is broken. Insert->Media->Embed will not do youtube, and I think that's a big feature of mosaic.
Ok, it's in plone.app.standardtiles . I'd like to raise the question - should this package really depend on the proper functioning of noembed.com ? That site seems to be unmaintained.
I noticed the same issue 2 days ago, was still investigating myself. At first only a few URL's/video's would break at noembed.com's api and return 503, but others kept working fine. (You can test at https://noembed/com/demo .
Also in my case some recent vidoes but also older ones (> 2 yeers) from a customers channel would randomly break and others still worked. With one video there was even a variation in it if you use youtu.be or youtube.com in the request URL to the service :-S . But it seems to deteriorate now with more and more videos becoming unavailable.
Another observation:
I customised/extended the default embed tile with some styling options and I also did some rewrites on the url to youtube-nocookie.com.
But now that I'm debugging my code tile that does this it seems 100% broken because I was depending on a url key being returned in the json response from noembed.com. It's no longer there in the answer and it's also not in the oEmbed answer I get directly from Youtube's oembed api. But I have no clue if noembed was adding this before or if Youtube changed this and noembed was only passing it along.
Fortunately in my project this extended Embed tile was already relabeled to a 'youtube tile', so I don't need the provider choosing and will query https://www.youtube.com/ directly.
I remember reading somewhere in november or december that Youtube is planning on removing the https://www.youtube-nocookie.com option alltogether in the near future: take it with tracking/advertising cookies or host your video's somewhere else. :-/
Also, there was no obvious easy-to-use alternative, because available libraries were generic oEmbed libraries requiring some custom configuration for each supported service.
Hi Asko. No reason to feel guily about this. I was always aware of this feature and dependency on noembed, but too lazy to host our separate noembed.com service.
I've debugged this issue quite a bit this week to see if I could find a pattern and I'm not so sure if the https is the only reason for the breakage. I've tested quite a bit of video's on different channels and for some noembed.com breaks and for others the service works flawlessly. I'm also uncertain if the still working lookups (80%?) I counted wored because of caching of still succesful responses, then I would have expected to slowly see more and more queries fail.
Maybe we should/could host a noembed.com copy on one of the Plone Foundation managed servers?