diff options
| author | Omar Roth <omarroth@hotmail.com> | 2019-02-22 20:36:16 -0600 |
|---|---|---|
| committer | Omar Roth <omarroth@hotmail.com> | 2019-02-22 20:36:16 -0600 |
| commit | 7f75a7ca0be1c778aa721d8902874eb12a529a6b (patch) | |
| tree | f2e2f8ed75446d46bbde2d17009e14354858b707 /src | |
| parent | bdc9196b4a5ac28ed31023790616e4d0ee48501d (diff) | |
| download | invidious-7f75a7ca0be1c778aa721d8902874eb12a529a6b.tar.gz invidious-7f75a7ca0be1c778aa721d8902874eb12a529a6b.tar.bz2 invidious-7f75a7ca0be1c778aa721d8902874eb12a529a6b.zip | |
Add support for changing signature param
Diffstat (limited to 'src')
| -rw-r--r-- | src/invidious/signatures.cr | 10 | ||||
| -rw-r--r-- | src/invidious/videos.cr | 12 |
2 files changed, 12 insertions, 10 deletions
diff --git a/src/invidious/signatures.cr b/src/invidious/signatures.cr index b2ed89d2..8b760398 100644 --- a/src/invidious/signatures.cr +++ b/src/invidious/signatures.cr @@ -39,7 +39,12 @@ def fetch_decrypt_function(id = "CvFH_6DNRCY") return decrypt_function end -def decrypt_signature(a, code) +def decrypt_signature(fmt, code) + if !fmt["s"]? + return "" + end + + a = fmt["s"] a = a.split("") code.each do |item| @@ -53,7 +58,8 @@ def decrypt_signature(a, code) end end - return a.join("") + signature = a.join("") + return "&#{fmt["sp"]?}=#{signature}" end def splice(a, b) diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr index 9c2d8745..03770af7 100644 --- a/src/invidious/videos.cr +++ b/src/invidious/videos.cr @@ -286,10 +286,8 @@ class Video end end - if streams[0]? && streams[0]["s"]? - streams.each do |fmt| - fmt["url"] += "&signature=" + decrypt_signature(fmt["s"], decrypt_function) - end + streams.each do |fmt| + fmt["url"] += decrypt_signature(fmt, decrypt_function) end return streams @@ -381,10 +379,8 @@ class Video end end - if adaptive_fmts[0]? && adaptive_fmts[0]["s"]? - adaptive_fmts.each do |fmt| - fmt["url"] += "&signature=" + decrypt_signature(fmt["s"], decrypt_function) - end + adaptive_fmts.each do |fmt| + fmt["url"] += decrypt_signature(fmt, decrypt_function) end return adaptive_fmts |
