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.
Facebook's extracted mpd (MPEG-DASH manifest) is missing base url for live stream #11530
Comments
Nope. Instead you should just pass the MPD URL to players instead of the document. |
|
The problem is that the mpd url is not disclosed. It is known by youtube-dl internally but not by the user and the mpd file and the media player. The user sends the video url but not the MPD url. People are not reading. |
|
I provide this: https://www.facebook.com/YesThatKevinSmith/videos/10153977324206930/ youtube-dl exposes only in debug mode not production code: https://video.xx.fbcdn.net/hvideo-frc1/v/dash-abr1/10153977324231930.mpd?_nc_rl=AfDeJiUm0OgCdFjV&oh=bbe9ff443988d7923f64d4a3ca1e3638&oe=58614952 |
You can use -g:
|
|
Okay, thanks for clarifying. But, it should be in the FAQ or man page. |
|
It's indeed on the man page:
|
Please follow the guide below
xinto all the boxes [ ] relevant to your issue (like that [x])Make sure you are using the latest version: run
youtube-dl --versionand ensure your version is 2016.12.22. 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?
The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue
If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
youtube-dl -v -o t.out "https://www.facebook.com/YesThatKevinSmith/videos/10153977324206930/"
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v', u'-o', u't.out', u'https://www.facebook.com/YesThatKevinSmith/videos/10153977324206930/']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2016.12.12-gentoo_no_offensive_sites (confirmed in latest live 9999 ebuild/commit also)
[debug] Python version 2.7.12 - Linux-4.4.26-gentoo-x86_64-AMD_Phenom-tm-_9850_Quad-Core_Processor-with-gentoo-2.3
[debug] exe versions: ffmpeg 3.2.2, ffprobe 3.2.2, rtmpdump 2.4
[debug] Proxy map: {}
[facebook] 10153977324206930: Downloading webpage
[facebook] 10153977324206930: Downloading webpage
[debug] Invoking downloader on u'https://video.xx.fbcdn.net/hvideo-frc1/v/dash-abr1/10153977324231930.mpd?_nc_rl=AfDeJiUm0OgCdFjV&oh=bbe9ff443988d7923f64d4a3ca1e3638&oe=58614952'
[download] Destination: t.out
[download] 100% of 3.83KiB in 00:00
Description of your issue, suggested solution and other information
The MPD extracted or produced is not adding enough information to the manifest for media players to parse in non-verbose mode. It provides the relative location "../" for media and initialization but not the server/domain or the necessary directories.
There needs to be post-processing of the extracted documents before they are sent out the pipe (to vlc or mplayer) as stdin to another player or dumped to a file. After it downloads the extracted mpd file, it should use an XML editor or module to inject the base URL
<BaseURL>node with server address into the MPD manifest exactly under the<MPD>node.The affected code is in youtube_dl/extractors/facebook.py
Examples of MPD manifest:
https://youtu.be/447-60cdu2s?t=1m27s
https://developer.mozilla.org/en-US/Apps/Fundamentals/Audio_and_video_delivery/Setting_up_adaptive_streaming_media_sources
It should look like: