Replies: 2 comments 5 replies
-
I've noticed a lot of the Cipher class and setup was written by @felipeucelli; do you happen to be able to help me out with this? any help is greatly appreciated :] |
Beta Was this translation helpful? Give feedback.
-
Hello @danelynnn The Cipher class works to find the signature functions of the Previously, the lack of the To obtain a functional stream, in addition to decoding these parameters, you also need to send the base.js Clients currently requiring this decryption are: YouTube changes base.js on average every 4 days. So you need to use the correct base.js to get the stream. Each stream has an expiration timestamp, that is, they expire after a certain time, requiring a new stream to be requested. PoToken clients are those that need the proof of origin token to work. If this token is not passed, only the itag 18 stream will work. Currently the PoToken clients are: If you want to use a streamData from outside pytubefix, you need to make sure it is not expired, the version of base.js, whether the signatureTimestamp was sent in the request and the correct decryption in the 'n' parameter and the siganture cipher. I don't recommend using the WEB client to obtain streams because of the need for PoToken. |
Beta Was this translation helpful? Give feedback.
-
So I've been tinkering around with the Cipher class and how it processes stream data with 403 links, and while I am not smart enough to actually learn it, I have been trying to use it on a couple streamingData dictionaries I've found myself, outside of the library, through the WEB client. For some reason, running the same functions as found in apply_signature doesn't actually make the links valid, and not 403 (it's actually changing the 'n' parameter, but it's still invalid). The same links produced and processed within the library are actually working, though, even without poToken support.
My previous setup was using the iOS client, which doesn't need to go through all this hassle, as those links don't actually produce 403's, but I am wanting to fight through using the WEB client and to figure it out, but no luck. How could I go about debugging this?
Beta Was this translation helpful? Give feedback.
All reactions