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
Add support for Adobe Pass Auth TV Provider YouTubeTV #14984
Comments
Want to chime in here. I'm not sure exactly how to do this, but I may be able to help a bit. The login page for youtube tv is the same as the login for the standard youtube login. Hopefully, a good deal of that code could be reused. |
Looking forward to this feature |
Is a YoutubeTV account still needed? I've got an active account... |
I am really looking forward to this, as well. |
I'm still hoping that this will be worked on. Keeping an account saved in case somebody wants to pick it up. |
Being able to download from tv.youtube.com and adding YouTube TV as a MSO is two separate issues I blindly fiddled with adobepass.py and got nowhere. Maybe someone with skills will give it a shot When you login manually in a browser it goes to this order
This might be useless |
I've got one as well. |
Is there any potential update on this? Would love to use youtube-dl instead of browser plugins but unfortunately many sites won't simply accept a cookie and require MSO so I can't download from there. Haven't seen any update on this in months |
Like others I've been unable to use YouTube TV as a TV Provider, but I've found a really simple solution that lets me use my login cookies, and hopefully it will point the youtube-dl devs (I'm not much of a Python person myself...) in the direction of a "cookie ap-mso provider" approach that will work for (hopefully) all unsupported providers:
This is where "your mileage may vary." I can detail the change I made for Disney (go) sites, and I presume it's very similar for other extractors. Later on I'll discuss what I think is the "real" solution -- this is just a hack that'll get you going until it's properly fixed.
if video_data.get('accesslevel') == '1':
requestor_id = site_info.get('requestor_id', 'DisneyChannels')
resource = site_info.get('resource_id') or self._get_mvpd_resource(
requestor_id, title, video_id, None)
auth = self._extract_mvpd_auth(
url, video_id, requestor_id, resource)
data.update({
'token': auth,
'token_type': 'ap',
'adobe_requestor_id': requestor_id,
})
else:
self._initialize_geo_bypass({'countries': ['US']}) What this block is doing, as best as I can tell, is seeing if a video is considered "protected" (
I can confirm that this works with YouTube TV as my provider and the Disney video sites (Disney, Disney Junior, etc.). This is obviously a hack, but it points us in the direction of... A Proper SolutionWhat I "think" the proper solution for providers like YouTube TV that aren't supported (and apparently won't be any time soon) is to make a generic "cookie" MSO provider, e.g.: youtube-dl --ap-mso cookie --cookies <path_to_cookies.txt> <url, etc.>` This flag would be used to indicate that Alternately, perhaps Thoughts? I can certainly try to make a PR for this, though Python isn't really my choice of language. |
@handcraftedbits I was very eager to see if your solution worked. I followed the steps exactly, triple checked, even. But when I try it, this happens. Can you see if you can download this URL from your machine after performing those steps? Perhaps there was another change in youtube-dl that broke your workaround? https://tv.youtube.com/watch/yOGRebatQvg
|
You will need to go to the individual provider website. It only works for me on disney and not abc but it’s something!
…Sent from my iPhone
On Feb 6, 2020, at 7:11 PM, Harrison Thomas ***@***.***> wrote:
@handcraftedbits I was very eager to see if your solution worked. I followed the steps exactly, triple checked, even. But when I try it, this happens. Can you see if you can download this URL from your machine after performing those steps? Perhaps there was another change in youtube-dl that broke your workaround?
https://tv.youtube.com/watch/yOGRebatQvg
./youtube-dl --cookies ./yttv.txt https://tv.youtube.com/watch/yOGRebatQvg [generic] yOGRebatQvg: Requesting header WARNING: Falling back on generic information extractor. [generic] yOGRebatQvg: Downloading webpage [generic] yOGRebatQvg: Extracting information ERROR: Unsupported URL: https://tv.youtube.com/watch/yOGRebatQvg
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
@dellis87 How do you determine the provider for a show? Like I'm trying to download the bachelor, for example. Is there a way to tell on YoutubeTV's website to see who the 'individual provider' is? |
It would be whatever channel that show is on. Like the bachelor is ABC I think.
…Sent from my iPhone
On Feb 6, 2020, at 8:18 PM, Harrison Thomas ***@***.***> wrote:
@dellis87 How do you determine the provider for a show? Like I'm trying to download the bachelor, for example. Is there a way to tell on YoutubeTV's website to see who the 'individual provider' is?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
@harryt04 , in my example I was referring to using YouTube TV credentials to download a Disney video stream. It's very likely that youtube-dl doesn't support video streams originating from YouTube TV itself, and that's why you're getting an error. The example I listed is only valid for the @dellis87 , just curious, but what extractor does youtube-dl say it's using when you download from an ABC site? Is it not |
It is go.py. It gives error about not being able to find the files required for download or something like that. |
So any progress, over the 3 years this has been an issue? |
So I just spent way too much time on this and finally got it working (at least for nbc.com) but it's pretty ineffieicient.
so for example in nbc.py (specifically the nbcentertainment extractor), my code looks like this
For more detailed instructions on the coding side of this look at #14984 (comment) Also: You have to repeat this process for each item you're downloading, because AFAIK the "Short Auth" code is unique to the media item |
@alexmerm I think, similar to when I was using the |
I've been digging a little into the code, and I managed to get something working. Note, I've only tested this with Hulu on History.com, so I'm unsure about its effect on other sites. I hope this helps or inspires some of you :) PatchThe file in question: There is a dictionary variable
Further down in the file (Around line 1500), you should find some if statements about:
I simply inserted this elif in here:
The session is already authenticated in my browser, and by saving the cookies to a file, I'm actively moving my authenticated session from the browser to this program. That means no login logic is required, you're already logged in. Getting cookies.txtI've used Firefox with this plugin: https://github.com/lennonhill/cookies-txt. UsageYou could either import the whole project directly or compile it to an .exe If directly used (Like I do), put this in your 'ydl_opts' variable on initialization:
I believe the arguments for the .exe file should be exactly like @handcraftedbits mentioned: |
@Frekvens1 good to hear that someone with a better understanding of the codebase was able to get the cookie solution working! I think youtube-dl is more or less "dead" at this point and I've actually moved on to yt-dlp myself. Do you have a PR open in that project? Would love to see it implemented. Thanks again! |
@handcraftedbits, thanks for the feedback! I don't have the best understanding of the codebase, but thanks to you I managed to figure out something ;) I don't have any PR open in that project, maybe we should? I would love for this feature to be default! |
Just because that specific link is dead does not mean the issue is
resolved. Smh.
…On Sat, May 21, 2022, 11:02 AM Zombo ***@***.***> wrote:
Issue should be closed, URL is dead:
https://disneynow.com/shows/atomic-puppet/season-01/episode-26-finale-a-finale-b/vdka4074861
—
Reply to this email directly, view it on GitHub
<#14984 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/APLSCXXF6MAUTR44KEGBQGDVLD3ITANCNFSM4EIGE7YA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
89z wrote: > Issue should be closed, URL is dead:
Whoa there Kemosabe, don't get your panties in a bunch. I was replying to the fact that you wanted this closed simply because the 4 YEAR OLD test link is dead. That is not and should never be a viable criteria to close an issue. So let's slow your role and take a step back. I really have no preference for or against this being implemented, so "wishing" for it to be implemented is a stretch, at best. And to answer your very pretentious question, the answer is NO. I can't put forth any effort to provide a "single" example because again . . . I . . . .don't . . . .have . . . . YoutubeTV. PS Pretty sure pukkandan already has a potential fix within yt-dlp to cover this if it can work with cookies. |
Make sure you are using the latest version: run
youtube-dl --version
and ensure your version is 2017.12.14. 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:
Add the
-v
flag to your command line you run youtube-dl with (youtube-dl -v <your command line>
), copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):Would like to request support for YouTubeTV as an Adobe Pass MSO option. Running --ap-mso does not recognize YouTubeTV as an option that can be used. Going by the providers list https://sp.auth.adobe.com/adobe-services/config/ABC it should be able to use the service. If an account is needed, I do have an invite so access can be had.
The text was updated successfully, but these errors were encountered: