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

[video.familytime.tv] Site support request #4969

Open
10 tasks done
SnowSquire opened this issue Sep 19, 2022 · 2 comments
Open
10 tasks done

[video.familytime.tv] Site support request #4969

SnowSquire opened this issue Sep 19, 2022 · 2 comments
Labels
site-request Request to support a new website

Comments

@SnowSquire
Copy link

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

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

Checklist

  • I'm reporting a new site support request
  • I've verified that I'm running yt-dlp version 2022.09.01 (update instructions) or later (specify commit)
  • I've checked that all provided URLs are playable in a browser with the same IP and same login details
  • I've checked that none of provided URLs violate any copyrights or contain any DRM to the best of my knowledge
  • I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
  • I've read the guidelines for opening an issue
  • I've read about sharing account credentials and am willing to share it if required

Region

United States

Example URLs

Provide a description that is worded well enough to be understood

They use Kaltura player
an example m3u8 (stripped of the tokens so it wont work but you can easily find it as a.m3u8 in chrome dev tools).

#EXTM3U
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="en",URI="https://cfvod.kaltura.com/api_v3/index.php/service/caption_captionasset/action/serveWebVTT/captionAssetId/1_aildhin8/segmentDuration/300/version/11/a.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1556033,RESOLUTION=1280x720,SUBTITLES="subs"
https://cfvod.kaltura.com/scf/hls/p/513551/sp/51355100/serveFlavor/entryId/1_0feos1ae/v/11/pv/1/ev/22/flavorId/1_6m3sh1nf/name/a.mp4/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=156136,RESOLUTION=426x240,SUBTITLES="subs"
https://cfvod.kaltura.com/scf/hls/p/513551/sp/51355100/serveFlavor/entryId/1_0feos1ae/v/11/pv/1/ev/22/flavorId/1_8knesr6h/name/a.mp4/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=465829,RESOLUTION=640x360,SUBTITLES="subs"
https://cfvod.kaltura.com/scf/hls/p/513551/sp/51355100/serveFlavor/entryId/1_0feos1ae/v/11/pv/1/ev/22/flavorId/1_qfnfhi1o/name/a.mp4/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=639508,RESOLUTION=854x480,SUBTITLES="subs"
https://cfvod.kaltura.com/scf/hls/p/513551/sp/51355100/serveFlavor/entryId/1_0feos1ae/v/11/pv/1/ev/22/flavorId/1_8bb10xmz/name/a.mp4/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=793309,RESOLUTION=960x540,SUBTITLES="subs"
https://cfvod.kaltura.com/scf/hls/p/513551/sp/51355100/serveFlavor/entryId/1_0feos1ae/v/11/pv/1/ev/22/flavorId/1_peluq1x1/name/a.mp4/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1225414,RESOLUTION=1280x720,SUBTITLES="subs"
https://cfvod.kaltura.com/scf/hls/p/513551/sp/51355100/serveFlavor/entryId/1_0feos1ae/v/11/pv/1/ev/22/flavorId/1_ukg79qc2/name/a.mp4/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2764464,RESOLUTION=1920x1080,SUBTITLES="subs"
https://cfvod.kaltura.com/scf/hls/p/513551/sp/51355100/serveFlavor/entryId/1_0feos1ae/v/11/pv/1/ev/22/flavorId/1_iutw4pxk/name/a.mp4/index.m3u8

What i've noticed is they might do something non-standard with the subtitles. I get Can't support the subtitle(uri: https://cfvod.kaltura.com/api_v3/index.php/service/caption_captionasset/action/serveWebVTT/captionAssetId/1_aildhin8/segmentDuration/300/version/11/a.m3u8) when trying to to download the via ffmpeg, yt-dlp just ignores the subtiles (which I believe are in WebVTT format but split up accross a few different files, they should be merged upon download.

Provide verbose output that clearly demonstrates the problem

  • Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
  • Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output

[debug] Command-line config: ['https://video.familytime.tv/shows/monsuno/season/1/episode/1', '-vU']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.09.01 [5d7c7d6] (win32_exe)
[debug] Python 3.8.10 (CPython 64bit) - Windows-10-10.0.19044-SP0
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg 2022-05-29-git-a7e0997324-full_build-www.gyan.dev (setts), ffprobe 2022-05-29-git-a7e0997324-full_build-www.gyan.dev
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9, certifi-2022.06.15, mutagen-1.45.1, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {}
[debug] Loaded 1670 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2022.09.01, Current version: 2022.09.01
yt-dlp is up to date (2022.09.01)
[debug] [generic] Extracting URL: https://video.familytime.tv/shows/monsuno/season/1/episode/1
[generic] 1: Downloading webpage
WARNING: [generic] Falling back on generic information extractor
[generic] 1: Extracting information
[debug] Looking for Brightcove embeds
[debug] Looking for embeds
ERROR: Unsupported URL: https://video.familytime.tv/shows/monsuno/season/1/episode/1
Traceback (most recent call last):
  File "yt_dlp\YoutubeDL.py", line 1459, in wrapper
  File "yt_dlp\YoutubeDL.py", line 1535, in __extract_info
  File "yt_dlp\extractor\common.py", line 670, in extract
  File "yt_dlp\extractor\generic.py", line 3078, in _real_extract
yt_dlp.utils.UnsupportedError: Unsupported URL: https://video.familytime.tv/shows/monsuno/season/1/episode/1
@SnowSquire SnowSquire added site-request Request to support a new website triage Untriaged issue labels Sep 19, 2022
@pukkandan pukkandan removed the triage Untriaged issue label Sep 19, 2022
@coletdjnz
Copy link
Member

For devs:
The video itself is hosted by Kaltura, so we want to get at least the partner id and entry id to pass off to the Kaltura extracter.

The site makes a request to https://api-ott.familytime.tv/embeddedVideoPlayer?version=14.0&device_type=desktop&platform=web&partner=internal&language=en&connection=wifi&div_id=video_player&content_page_url=https%253A%252F%252Fvideo.familytime.tv%252Fshows%252Fmonsuno%252Fseason%252F1%252Fepisode%252F26&image_width=1280&max_bitrate=10000&id=5602&auto_play%5Bmobile%5D=true&auto_play%5Bdesktop%5D=true&timestamp=1663995965

Though there might be some trickery needed to get this to work (correct timestamp + ottera-referrer, ottera-cs-auth) I would have to guess

This responds with a javascript file. From this you want to extract one of the player sources urls.
e.g.

playerSources.hls = [{
      url: 'https://api-ott.familytime.tv/getmedia?version=14.0&partner=internal&id=5602&platform=web&payload=aHR0cHM6Ly9jZG5hcGlzZWMua2FsdHVyYS5jb20vcC81MTM1NTEvc3AvNTEzNTUxMDAvcGxheU1hbmlmZXN0L2VudHJ5SWQvMV8wZmVvczFhZS9mb3JtYXQvYXBwbGVodHRwL3Byb3RvY29sL2h0dHBzL2ZsYXZvcklkcy8xXzhrbmVzcjZoLDFfcWZuZmhpMW8sMV84YmIxMHhteiwxX3BlbHVxMXgxLDFfdWtnNzlxYzIsMV82bTNzaDFuZiwxX2l1dHc0cHhrL3ByZWZlcnJlZEJpdHJhdGUvMTUwMC9tYXhCaXRyYXRlLzEwMDAwL2EubTN1OA%3D%3D&file=a.m3u8&timestamp=1663996750&ip=193.37.254.71&override_expiration=1500&sign=4zSY4WNi5igTsM7D188uM6Ty8FQbmNi2TJWjW%2BSxpAM%3D',
      mimetype: 'application/x-mpegURL'
    }];

From this url you want to extract the payload parameter, urldecode it, and then base64 decode it.

You get something like https://cdnapisec.kaltura.com/p/513551/sp/51355100/playManifest/entryId/1_0feos1ae/format/applehttp/protocol/https/flavorIds/1_8knesr6h,1_qfnfhi1o,1_8bb10xmz,1_peluq1x1,1_ukg79qc2,1_6m3sh1nf,1_iutw4pxk/preferredBitrate/1500/maxBitrate/10000/a.m3u8

the string after /entryId/ is the Kaltura id (1_0feos1ae)
The partner id is 513551 (this can also be found in the playerConfig of in the above response)

pass onto kaltara extractor with url like kaltura:<partner id>:<entry id>.

+ extract any metadata you want (think you can get that from the https://api-ott.familytime.tv/search POST request)

@coletdjnz
Copy link
Member

#5190 seems to use a similar or the same API as this.

It looks like the underlying service is https://www.ottera.tv/? Might be worth adding support for the whole lot if possible in that case

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
site-request Request to support a new website
Projects
None yet
Development

No branches or pull requests

3 participants