Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scrippsnetworks Extractor No Longer Working (HGTV.com, Foodnetwork.com, etc.) #14389

Closed
awalz92 opened this issue Oct 3, 2017 · 10 comments
Closed

Comments

@awalz92
Copy link

@awalz92 awalz92 commented Oct 3, 2017

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2017.10.01. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

  • I've verified and I assure that I'm running youtube-dl 2017.10.01

What is the purpose of your issue?

  • Bug report (encountered problems with youtube-dl)
  • Site support request (request for adding support for a new site)
  • Feature request (request for a new functionality)
  • Question
  • Other

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:

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', 'http://watch.foodnetwork.com/show/BY/Beat-Bobby-Flay/2758145/Back-with-a-Vengeance/']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2017.09.24
[debug] Python version 3.4.4 - Windows-10-10.0.10586
[debug] exe versions: ffmpeg N-82151-g1e660fe, ffprobe N-82151-g1e660fe
[debug] Proxy map: {}
[generic] Back-with-a-Vengeance: Requesting header
WARNING: Falling back on generic information extractor.
[generic] Back-with-a-Vengeance: Downloading webpage
[generic] Back-with-a-Vengeance: Extracting information
ERROR: Unsupported URL: http://watch.foodnetwork.com/show/BY/Beat-Bobby-Flay/2758145/Back-with-a-Vengeance/
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmp1uop9avr\build\youtube_dl\YoutubeDL.py", line 777, in extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmp1uop9avr\build\youtube_dl\extractor\common.py", line 434, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmp1uop9avr\build\youtube_dl\extractor\generic.py", line 2980, in _real_extract
youtube_dl.utils.UnsupportedError: Unsupported URL: http://watch.foodnetwork.com/show/BY/Beat-Bobby-Flay/2758145/Back-with-a-Vengeance/

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included:


Description of your issue, suggested solution and other information

Both sites received updates, which now have differently formatted URLs, and no longer work. The other Scripps sites (Travel Channel, DIY Network, etc.) aesthetically appear to be the same, but I'm unable to determine single video URLs to test them.

@awalz92 awalz92 changed the title HGTV.com and Foodnetwork.com No Longer Working with scrippsnetworks Extractor Scrippsnetworks Extractor No Longer Working (HGTV.com, Foodnetwork.com, etc.) Oct 3, 2017
@miztertea
Copy link

@miztertea miztertea commented Oct 5, 2017

Also diynetwork.com

 youtube-dl.exe -v http://watch.diynetwork.com/show/DICH/The-Vanilla-Ice-Project/3816648/A-Hot-R
od-Garage/
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', 'http://watch.diynetwork.com/show/DICH/The-Vanilla-Ice-Project/3816648/A-Hot-Rod-Garage/']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2017.10.01
[debug] Python version 3.4.4 - Windows-10-10.0.15063
[debug] exe versions: ffmpeg N-86383-g4705edb, ffprobe N-86383-g4705edb
[debug] Proxy map: {}
[generic] A-Hot-Rod-Garage: Requesting header
WARNING: Falling back on generic information extractor.
[generic] A-Hot-Rod-Garage: Downloading webpage
[generic] A-Hot-Rod-Garage: Extracting information
ERROR: Unsupported URL: http://watch.diynetwork.com/show/DICH/The-Vanilla-Ice-Project/3816648/A-Hot-Rod-Garage/
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpf3fd6ifp\build\youtube_dl\YoutubeDL.py", line 783, in extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpf3fd6ifp\build\youtube_dl\extractor\common.py", line 434, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpf3fd6ifp\build\youtube_dl\extractor\generic.py", line 3051, in _real_extract
youtube_dl.utils.UnsupportedError: Unsupported URL: http://watch.diynetwork.com/show/DICH/The-Vanilla-Ice-Project/3816648/A-Hot-Rod-Garage/
@tv21
Copy link

@tv21 tv21 commented Oct 6, 2017

I'm also having this issue, but I discovered it goes a bit deeper than just not finding the URL. Let's say you actually discover the m3u8 filename and use that as the target address. It will then hand off to ffmpeg which will start to download segments and convert them to .mp4 (which is major problem number 1 for me personally - I don't need the output as .mp4, I actually need to convert it back to a .ts file afterwards). But right around the first commercial break it starts displaying thousands of errors of this form:

[mp4 @ 0x58e66c0] Non-monotonous DTS in output stream 0:1; previous: 26703410, current: 14303232; changing to 26703411. This may result in incorrect timestamps in the output file.
[mp4 @ 0x58e66c0] Non-monotonous DTS in output stream 0:0; previous: 54417019, current: 29186190; changing to 54417020. This may result in incorrect timestamps in the output file.
[mp4 @ 0x58e66c0] Non-monotonous DTS in output stream 0:0; previous: 54417020, current: 29189160; changing to 54417021. This may result in incorrect timestamps in the output file.

And once it does that, the file is completely hosed. But further examination indicates this is a ffmpeg bug - something about the way it combines the files is off. In reality it may be as little as one of the fragments that has that issue, but for some reason ffmpeg corrupts everything after that. If you try to play the resulting file, it plays fine to the first commercial break, but then horrible things happen, and then it usually ends prematurely (even though the whole file is there, it's so corrupted nothing will play it).

Now if you use wget to download that first .m3u8 file and open it in a text editor, you will see it contains links to other .m3u8 files of various screen resolutions. If you take the one for 1920x1080 and download that one and open it, you will see it contains links to all the various .ts fragments, in the order they should be played. If you wget all those files individually, and then join them using ffmpeg (but doing a straight copy using the -c copy option, and making the output file another .ts file you will probably only see one or two of those errors, not thousands. Kodi can use the .ts file directly and it plays fine.

So to recap, the fix for that issue is this:

  1. Get the correct m3u8 file link - this is your department, I don't know how you do the magic on this. I do know that using the --get-url option isn't working at the moment so that's the first problem.
  2. Look in that m3u8 file and get the link to the 1920x1080 stream .m3u8 file (unless some lower resolution has been specified)
  3. Download THAT file and open it to get the links to the individual file fragments.
  4. Download them all using wget or something functionally like it.
  5. Using the order of the files from the second .m3u8 files, NOW you can use ffmpeg or something functionally like it to combine the fragments into one. Note you may get an error or two from individual files but these are typically at commercial breaks anyway. Do a straight copy of the codecs (-c copy option), and for the love of all that is holy PLEASE make the output a .ts file.
  6. Now if the user has specifically asked for some other format, you can run ffmpeg again on the .ts file and convert it to some other format, because at this point the resulting .ts file should no longer be corrupt (we hope). BUT PLEASE LET THOSE OF US WHO USE IT KEEP THE .ts FILE! PLEASE DON'T FORCE IT TO .mp4!
@stinkteeth
Copy link

@stinkteeth stinkteeth commented Oct 9, 2017

@tv21 What is your ffmpeg command string? The hls saves fine into a ts file container for me.

Alternatively, the legacy "theplatform" pid is still available - which allows http mp4 progressive transfer.

There are a series of requests to amazonaws.com and then finally web.api.video.snidigital.com. The "theplatform" pid is in the last request having episodes?count=. Most of these requests are done via POST. If it is a public video, the pid is all that is needed. If it is an auth video, then the adobepass signature info must be appended to "theplatform" request.

It probably will be a fair bit of work to fix the extractor for the scripps sites. There is one signature for the series of requests that I suspect is being done on the server side. I'm not sure if "theplatform" is being entirely transitioned out in favor of the new hls system, or just depreciated but kept on.

@tv21
Copy link

@tv21 tv21 commented Oct 13, 2017

stinkteeth, the ONLY part of your post that I understood was "What is your ffmpeg command string?" Well, that and your comments in your last paragraph.

I only use ffmpeg to combine the individual .ts files into one large one, so I use:

ffmpeg -f concat -safe 0 -i fflist.txt -c copy "../out.ts" || { echo "ffmpeg failed to concatenate files"; exit 1; }

fflist text contains a list of files in the format:

file 'first.ts'
flie 'second.ts'
file 'third.ts'
...

etc. Not sure why ffmpeg requires the word "file" and the single quotes around the filenames, but it does.

I use this in a small bash script I have written to automate some of the process (not all of it; you still have to figure out the correct m3u8 filename manually), which is why the error exit is present. Also the output filename is specified as "../out.ts" because this is running in a temporary directory off the main user directory, but I want the out.ts file to be in the actual user directory.

I will also note that I have not encountered any more errors in the files since the first time I tried this, so the errors must have been a oddity in that one program.

Oh, and after reading your post again, I'm not sure if you were asking this, but most of this stuff does require a provider login.

@dstftw dstftw closed this Oct 14, 2017
@StevenDTX
Copy link

@StevenDTX StevenDTX commented Oct 14, 2017

Thanks a lot @dstftw !

dstftw added a commit that referenced this issue Oct 14, 2017
@rredford6
Copy link

@rredford6 rredford6 commented Oct 19, 2017

@tv21 If they're simply transport stream files, you can just cat them, e.g.

cat file000.ts file001.ts file002.ts > combined.ts
@remitamine
Copy link
Collaborator

@remitamine remitamine commented Nov 17, 2018

@NEET-Engineer
Copy link

@NEET-Engineer NEET-Engineer commented Nov 17, 2018

@remitamine Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
8 participants
You can’t perform that action at this time.