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

CBC Gem updated and now download is broken #6395

Closed
10 of 11 tasks
andelius opened this issue Mar 2, 2023 · 16 comments · Fixed by #6499
Closed
10 of 11 tasks

CBC Gem updated and now download is broken #6395

andelius opened this issue Mar 2, 2023 · 16 comments · Fixed by #6499
Labels
site-bug Issue with a specific website

Comments

@andelius
Copy link

andelius commented Mar 2, 2023

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

  • I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

Region

Canada

Provide a description that is worded well enough to be understood

I was able to download videos from CBC Gem a couple of days ago, but they've very recently (possibly only today) updated the website and how it displays the videos. As far as I can tell the URLs remain the same but the video will no longer download.

I tried downloading URLs I knew worked before and trying completely new URLs.

Provide verbose output that clearly demonstrates the problem

  • Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
  • If using API, add 'verbose': True to YoutubeDL params instead
  • Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output

[debug] Command-line config: ['--username', 'PRIVATE', '--password', 'PRIVATE', '--embed-subs', '--embed-metadata', '--embed-thumbnail', '-i', '-vU', 'https://gem.cbc.ca/nadiyas-family-favourites/s01e01']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2023.02.17 [a0a7c01] (pip)
[debug] Python 3.10.0 (CPython AMD64 64bit) - Windows-10-10.0.19044-SP0 (OpenSSL 1.1.1l  24 Aug 2021)
[debug] exe versions: ffmpeg 2021-10-28-git-e84c83ef98-full_build-www.gyan.dev (setts), ffprobe 2021-10-28-git-e84c83ef98-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.11.0, brotli-1.0.9, certifi-2021.10.08, mutagen-1.45.1, sqlite3-2.6.0, websockets-10.0
[debug] Proxy map: {}
[debug] Loaded 1782 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2023.02.17, Current version: 2023.02.17
yt-dlp is up to date (2023.02.17)
[generic] Extracting URL: https://gem.cbc.ca/nadiyas-family-favourites/s01e01
[generic] s01e01: Downloading webpage
WARNING: [generic] Falling back on generic information extractor
[generic] s01e01: Extracting information
[debug] Looking for embeds
WARNING: [generic] s01e01: Failed to parse JSON: Expecting property name enclosed in double quotes in '': line 1 column 2 (char 1)
ERROR: Unsupported URL: https://gem.cbc.ca/nadiyas-family-favourites/s01e01
Traceback (most recent call last):
  File "C:\Users\XXX\AppData\Local\Programs\Python\Python310\lib\site-packages\yt_dlp\YoutubeDL.py", line 1502, in wrapper
    return func(self, *args, **kwargs)
  File "C:\Users\XXX\AppData\Local\Programs\Python\Python310\lib\site-packages\yt_dlp\YoutubeDL.py", line 1578, in __extract_info
    ie_result = ie.extract(url)
  File "C:\Users\XXX\AppData\Local\Programs\Python\Python310\lib\site-packages\yt_dlp\extractor\common.py", line 693, in extract
    ie_result = self._real_extract(url)
  File "C:\Users\XXX\AppData\Local\Programs\Python\Python310\lib\site-packages\yt_dlp\extractor\generic.py", line 2509, in _real_extract
    raise UnsupportedError(url)
yt_dlp.utils.UnsupportedError: Unsupported URL: https://gem.cbc.ca/nadiyas-family-favourites/s01e01
@andelius andelius added site-bug Issue with a specific website triage Untriaged issue labels Mar 2, 2023
@cagenuts
Copy link

cagenuts commented Mar 2, 2023

yt-dlp will still work but since Wednesday it will only download 720p. You have to filter for m3u8 and pump that into your command instead of the old style URL. The metadata tags are now also not support but that's because of the m3u8. If anyone can fix this for 1080p it will be great!

@andelius
Copy link
Author

andelius commented Mar 2, 2023

@cagenuts out of curiosity do you have Gem Premium? I wonder if 1080 is locked behind premium now?

@cagenuts
Copy link

cagenuts commented Mar 2, 2023

Sadly I don't but I suspect that is the case now.

@tkakanowski
Copy link

@cagenuts can you please provide command line you used that was successful for 720p? I've run into a similar issue, but I want to confirm that it is different before raising a ticket. I've tried a number of things and am now getting a Failed to parse JSON error in all cases.

@cagenuts
Copy link

cagenuts commented Mar 3, 2023

The Nature of Things S62E08.
yt-dlp "https://cbcrcott-gem.akamaized.net/be7489d5-5f73-4cd8-b845-1178f98051e7/CBC_THE_NATURE_OF_THINGS_S62E08.ism/desktop_master.m3u8?hdnea=st=1677839512~exp=1677839632~acl=/be7489d5-5f73-4cd8-b845-1178f98051e7/cbc_the_nature_of_things_s62e08.ism/desktop*~hmac=78059e97cfdc35919f4e065929c865f600f71d653357920d70d818961c29e5bb" --downloader aria2c --console-title -o "The Nature of Things.S62E08.mp4"
It downloads 720p but chooses the audio described track so you have to specify -f -f "audio-English" to download the .m4a stream and then mux with the video later or choose the video stream and audio stream like this 3687+audio-English

The top command is all one string but somehow it doesn't wrap nicely here.

@tkakanowski
Copy link

Thanks @cagenuts, appreciated!

@andelius
Copy link
Author

andelius commented Mar 3, 2023

Just got premium to try it out and it looks like this may be a Gem issue.
Switch the stream quality on the website produces no discernable difference in the video, and even with premium I can't find any higher quality streams than 720.
Gem may have removed their 1080 streams. This is concerning for paying customers since they're technically paying for full HD content but getting only 720. I may raise a ticket with CBC to see what they have to say.

@cagenuts
Copy link

cagenuts commented Mar 3, 2023

@andelius Good idea to open a ticket. Everything is a mess to be honest. Metadata is not available anymore.

@makew0rld
Copy link
Contributor

makew0rld commented Mar 6, 2023

I created the CBC Gem downloader currently used by yt-dlp. I can try and look into fixing this issue in the next week or two.

@cagenuts
Copy link

cagenuts commented Mar 7, 2023

I created the CBC Gem downloader currently used by yt-dlp. I can try and look into fixing this issue in the next week or two.

Thank you, that would greatly appreciated.

@JinglingB
Copy link

JinglingB commented Mar 9, 2023

Just add /media/ after https://gem.cbc.ca/. This works with my free account:

[gem.cbc.ca] Extracting URL: https://gem.cbc.ca/media/nadiyas-family-favourites/s01e01
[gem.cbc.ca] nadiyas-family-favourites/s01e01: Downloading JSON metadata
[gem.cbc.ca] Downloading JSON metadata
[gem.cbc.ca] Downloading JSON metadata
[gem.cbc.ca] Downloading JSON metadata
[gem.cbc.ca] Downloading JSON metadata
[gem.cbc.ca] nadiyas-family-favourites/s01e01: Downloading JSON metadata
[gem.cbc.ca] nadiyas-family-favourites/s01e01: Downloading m3u8 information
[gem.cbc.ca] nadiyas-family-favourites/s01e01: Downloading secret XML
[info] nadiyas-family-favourites/s01e01: Downloading 1 format(s): sec-1080+hls-audio-English
[info] There's no subtitles for the requested languages
[hlsnative] Downloading m3u8 manifest
[hlsnative] Fragment downloads will be delegated to aria2c
[hlsnative] Total fragments: 291

The extractor cannot find subtitles any more, but you can use CCExtractor to get an SRT out of the embedded EIA subtitles. I add --exec "\"C:\Program Files (x86)\CCExtractor\ccextractorwinfull.exe\" -autoprogram -trim --norollup" to my yt-dlp command-line to have them automatically extracted after download.

@makew0rld
Copy link
Contributor

Ok fix looks very simple, it's just that CBC's URLs changed to no longer have the /media/ part. Thanks for the tip @JinglingB. Will make a PR today or so.

@makew0rld
Copy link
Contributor

Made PR: #6499

@cagenuts
Copy link

@JinglingB Thanks for the catch, works like a bomb. I have to admit I wasn't even aware the extractor could find subs in the past. I just had to use ffmpeg to extract them from the closed captions but I'll try your CCExtractor option so thanks for that too.

@pukkandan pukkandan removed the triage Untriaged issue label Mar 10, 2023
pukkandan pushed a commit that referenced this issue Mar 10, 2023
Authored by: makeworld-the-better-one
Closes #6395
elyse0 pushed a commit to elyse0/yt-dlp that referenced this issue Mar 12, 2023
Authored by: makeworld-the-better-one
Closes yt-dlp#6395
qa4FKm3mUr added a commit to qa4FKm3mUr/yt-dlp that referenced this issue Jul 30, 2023
* [utils] Add hackish 'now' support for --download-sections

* [utils] Add microseconds to unified_timestamp

* [common] Extract start and end keys for Dash fragments

* [utils] Allow using local timezone for 'now' timestamps

* Use local timezone for download sections

* Add fixme in modified parse_chapters function

A range like '*(now-1hour)-(now-30minutes)' doesn't work

* [youtube] Support --download-sections for YT Livestream from start

* Create last_segment_url only if necessary

* Improve parse_chapters comments

* Fix linter

* [extractor/iq] Set more language codes (yt-dlp#6476)

Authored by: D0LLYNH0

* [extractor/opencast] Add ltitools to `_VALID_URL` (yt-dlp#6371)

Authored by: C0D3D3V

* [downloader/curl] Fix progress reporting

Bug in 8c53322
Closes yt-dlp#6490

* [extractor/youtube] Bypass throttling for `-f17`

and related cleanup

Thanks @AudricV for the finding

* [extractor/twitch] Fix `is_live` (yt-dlp#6500)

Closes yt-dlp#6494
Authored by: elyse0

* [extractor/cbc:gem] Update `_VALID_URL` (yt-dlp#6499)

Authored by: makeworld-the-better-one
Closes yt-dlp#6395

* Support loading info.json with a list at it's root

* [extractor/hidive] Fix login

Fixes yt-dlp#6493 (comment)

* [extractor/opencast] Fix format bug (yt-dlp#6512)

Authored by: C0D3D3V

* [extractor/rokfin] Re-construct manifest url (yt-dlp#6507)

Authored by: vampirefrog

* [extractor/youtube] Add client name to `format_note` when `-v` (yt-dlp#6254)

Authored by: Lesmiscore, pukkandan

* [extractor/youtube] Add extractor-arg `include_duplicate_formats`

* [extractor/youtube] Construct fragment list lazily

Building fragment list for all formats take significant time for large videos

* Support negative durations

* Revert "[utils] Allow using local timezone for 'now' timestamps"

This reverts commit 1799a6a.

* Add fragment count

* Fix unified_timestamp

* Remove tz_aware date code

* Add debug for selected section

* Add initial documentation

* Fix linter

* Fix linter

* Allow days in parse_duration

* Improve option documentation

* Add some documentation

* Lock less agressively

This gives a speed performance of about 30%

* Fix return values of _extract_sequence_from_mpd

* Always compute last_seq

* Support for epoch timestamps

* Update options docs

* Restore README.md

I think this is auto-generated by some script

* Add warning about --download-sections without --live-from-start

* Fix bug after merge

* Update yt_dlp/options.py

* Cleanup

---------

Co-authored-by: Elyse <26639800+elyse0@users.noreply.github.com>
Co-authored-by: Sophire <115919609+sophie0x@users.noreply.github.com>
Co-authored-by: D0LLYNH0 <67797325+D0LLYNH0@users.noreply.github.com>
Co-authored-by: Daniel Vogt <daniel-vogt@mail.de>
Co-authored-by: pukkandan <pukkandan.ytdlp@gmail.com>
Co-authored-by: makeworld <25111343+makeworld-the-better-one@users.noreply.github.com>
Co-authored-by: Daniel Vogt <c0d3d3v@mag-keinen-spam.de>
Co-authored-by: vampirefrog <vampirefrog@users.noreply.github.com>
Co-authored-by: Lesmiscore <nao20010128@gmail.com>
Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com>
Co-authored-by: bashonly <bashonly@bashonly.com>
@cemerson
Copy link

cemerson commented Mar 9, 2024

3687

Can you show an example of a command getting the audio only? I'm getting the "Described Audio" too and I can't figure out how to just get English.

@bashonly
Copy link
Member

bashonly commented Mar 9, 2024

use yt-dlp -vF "URL" to see a list of formats available, and then select the formats for download with -f "VIDEO+AUDIO"

aalsuwaidi pushed a commit to aalsuwaidi/yt-dlp that referenced this issue Apr 21, 2024
Authored by: makeworld-the-better-one
Closes yt-dlp#6395
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
site-bug Issue with a specific website
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants