Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upGitHub is where the world builds software
Millions of developers and companies build, ship, and maintain their software on GitHub — the largest and most advanced development platform in the world.
Embedded Videos Not Supported/Detected + Possible Solution #10168
Comments
|
Please post real URLs for unsupported sites. |
|
I often run into this issue too, mostly with Brightcove embeds but sometimes with others. Here is one such example. The embedded (autoplaying) video on this page will not be detected/does not download even though it is hosted on a supported site (The Platform): http://www.usanetwork.com/mrrobot/videos/rami-malek-talks-mr-robot-season20 I have to do a workaround for this example, click the share button in the top right of video player and then in the embed code find a link like this: http://player.theplatform.com/p/HNK2IC/qRe1IXDE_V0F/select/media/guid/2140458126/3052957?ec=f which downloads fine in youtube-dl. But it would be nice if I didn't have to do those extra step(s). |
|
@yan12125: There are so many URLs that this happens to. Luckily SeanPM5 filled in with a website, but I'll see if I can gather a large list of pages with embedded players from multiple different sites that we can later use for testing as well. @SeanPM5: that is exactly what I'm doing every single time there's an unsupported embedded player (almost always except when it's YouTube). I think this currently is a huge weakness in youtube-dl since it's so common to find embedded players. |
|
@SeanPM5's example looks like another form of ThePlatform embedded video. Indeed youtube-dl should support it but it's currently not. |
|
@yan12125: exactly, it should be supported because there are so many pages using embedded players. As I explained in the OP it could be supported:
|
|
Here's a line from the example given by @SeanPM5:
Scanning Anyway such a feature depends on #5587 |
|
@yan12125: I just used the iframe's In the example from @SeanPM5 the URL is in a div's Basically what we need for this to work is a list of the domains for all the supported sites. |
|
OK but please paste some links. A request without links is not valid. |
|
Below I've made a list of a few supported and unsupported embeds. All of the unsupported embeds would be working using the Currently Supported EmbedCurrently Unsupported EmbedTwitter |
|
Do you have real URLs? These look like human generated test cases. |
|
@yan12125: I uploaded these to webdevout.com/test (something like Pastebin that runs HTML) for the reason of keeping the sources simple just to prove that barebone embeds without any additional HTML don't work. There are a few "real" URLs in there as well though - have a look at USANetwork or Twitter. |
|
If this feature is implemented in the future, I'll add some test cases into youtube-dl. All test cases should be real videos. By the way, the Twitter page does not contain a video - it's just a link. |
|
@yan12125: Would that require every single supported site to contain test case for the embeds - because this would defy the point of the automatic extraction? There is a video on the bottom of the Twitter page. |
|
Oops the Twitter video is blocked by my Ad blocker (again).
Nope. Supporting for sites is added on-demand, that is, once there's a test case. |
|
Note to myself: The twitter video has the same pattern as the example in #10089 |
|
Here is another example, this time with Yahoo. This embedded video will not work: https://www.yahoo.com/tv/39-agents-of-s-h-i-1430049850908726.html even though it's a supported website and service. If you click the cog/gear icon in the bottom right of video player and look for link inside the iframe embed code: https://www.yahoo.com/tv/agents-h-e-l-d-121852367.html?format=embed that will download fine with youtube-dl. |
|
Added to the list. |
|
I found a good example for Twitter: https://www.joe.co.uk/news/disgraceful-scenes-in-manchester-as-uk-against-hate-protesters-break-police-lines-129177 |
Make sure you are using the latest version: run
youtube-dl --versionand ensure your version is 2016.07.26.2. If it's not read this FAQ entry and update. Issues with outdated version will be rejected.Before submitting an issue make sure you have:
What is the purpose of your issue?
A bit of background
I'm an avid youtube-dl user and every once in a while I try to download a video.
It sometimes happens that the video is embedded from another site (similar to YouTube), but youtube-dl doesn't detect it. This makes me have to dig through the source code to find the code for the embedded player and enter that into youtube-dl and this gets a bit annoying after 100 videos.
Luckily pretty much all embedded YouTube players are supported, but others are not.
So my question is, why can't we detect those as well? There is already a list of the supported sites so wouldn't it only be a matter of checking those domains in the source code and seeing if they're found in an attribute?
So what the hell can we do?
One way is to manually find and add support for every single embed that youtube-dl currently supports - the other is to automate it like I'm going to describe below:
So let's say that I enter this page: http://unsupported-embed.com/video?id=123 and youtube-dl doesn't support it.
Youtube-dl would then find all the attributes containing URLs (e.g <iframe src="**http://free-video-embeds.com**"></iframe>), add them to an array, loop through the array and check in the supported site list to find the embed. Once and if the embedded player is found it runs a new query for that URL to finally get the video.
Now this could be a bit heavy to run in default so we it could simply be added as a super useful parameter like
--extensive-embed-search.Currently Supported Embed
YouTube
Vimeo
Currently Unsupported Embed
Twitter
Yahoo
LiveLeak
Ebaum's World
USANetwork
...and many more