summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorsyeopite <syeopite@syeopite.dev>2023-07-23 01:52:53 -0700
committersyeopite <syeopite@syeopite.dev>2023-07-23 14:40:08 -0700
commit8e18d445a7adf9a0c0887249003a7b84f0fb95af (patch)
tree15ee8f6fcf4060185d5cddc71d941ae2805afefc /src
parent7e5935a9da5355bbdd4c047edf692b0ce57722c7 (diff)
downloadinvidious-8e18d445a7adf9a0c0887249003a7b84f0fb95af.tar.gz
invidious-8e18d445a7adf9a0c0887249003a7b84f0fb95af.tar.bz2
invidious-8e18d445a7adf9a0c0887249003a7b84f0fb95af.zip
Add method to generate params for transcripts api
Diffstat (limited to 'src')
-rw-r--r--src/invidious/videos/transcript.cr34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/invidious/videos/transcript.cr b/src/invidious/videos/transcript.cr
new file mode 100644
index 00000000..c50f7569
--- /dev/null
+++ b/src/invidious/videos/transcript.cr
@@ -0,0 +1,34 @@
+module Invidious::Videos
+ # Namespace for methods primarily relating to Transcripts
+ module Transcript
+ def self.generate_param(video_id : String, language_code : String, auto_generated : Bool) : String
+ if !auto_generated
+ is_auto_generated = ""
+ elsif is_auto_generated = "asr"
+ end
+
+ object = {
+ "1:0:string" => video_id,
+
+ "2:base64" => {
+ "1:string" => is_auto_generated,
+ "2:string" => language_code,
+ "3:string" => "",
+ },
+
+ "3:varint" => 1_i64,
+ "5:string" => "engagement-panel-searchable-transcript-search-panel",
+ "6:varint" => 1_i64,
+ "7:varint" => 1_i64,
+ "8:varint" => 1_i64,
+ }
+
+ params = object.try { |i| Protodec::Any.cast_json(i) }
+ .try { |i| Protodec::Any.from_json(i) }
+ .try { |i| Base64.urlsafe_encode(i) }
+ .try { |i| URI.encode_www_form(i) }
+
+ return params
+ end
+ end
+end