summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOmar Roth <omarroth@hotmail.com>2019-02-22 20:36:16 -0600
committerOmar Roth <omarroth@hotmail.com>2019-02-22 20:36:16 -0600
commit7f75a7ca0be1c778aa721d8902874eb12a529a6b (patch)
treef2e2f8ed75446d46bbde2d17009e14354858b707 /src
parentbdc9196b4a5ac28ed31023790616e4d0ee48501d (diff)
downloadinvidious-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.cr10
-rw-r--r--src/invidious/videos.cr12
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