remotion_lambda 0.0.0 → 4.0.232

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8219b61aaeb065b1bb435e5f85e545946ec544f49e83433ca0e9f9b9c7df3689
4
- data.tar.gz: 789964b080ba9339b7807328f9915ab66a2bf5b3ae6d2581393b108324217bfc
3
+ metadata.gz: 4610b43a026fe3205b88f0453a764c0b6678579f193b4a6cf132d865377824c4
4
+ data.tar.gz: a03d483e39b6746607590b51c45d6e2bf2dc354935de9d43c80b896bdfd57bc3
5
5
  SHA512:
6
- metadata.gz: 6a546dc4b2b4a8c4fd8aed7bf190b353483758c17704b9c2327918ece682d77a465d8d1f826c2b824a3b2ce5ff0fc9831fd5822b11880f42427f03744ae36390
7
- data.tar.gz: 4353482a59bf684a08fe6795a39de6840dad0299a3f187f1baa75d9092c27cb8669c3efcbfd3fc2e87fa625d66127c3bbe4b1a1611fcb1048591a6fc83512a8f
6
+ metadata.gz: 4a3e7b186cc3210354bcbdfacc3d0baf6b0d715b6eca3d3a9abb604055a9457e3b9b11f8ebbb1439ca4a74f202a1116a08c9128964327f1427d4a93f8748506c
7
+ data.tar.gz: 2777108ff38e738def35a7bd097f9c72ddc943de55e4dfbb31b449565ee7ef868e7c35760b883f8f8826302b054ec4dd8223e9e836701a3d955f8200ab7f95ce
@@ -0,0 +1,98 @@
1
+ require_relative 'version'
2
+
3
+ def get_render_media_on_lambda_payload(
4
+ bucket_name: nil,
5
+ codec:,
6
+ audio_bitrate: nil,
7
+ audio_codec: nil,
8
+ color_space: nil,
9
+ composition: nil,
10
+ concurrency_per_lambda: 1,
11
+ crf: nil,
12
+ delete_after: nil,
13
+ download_behavior: nil,
14
+ encoding_buffer_size: nil,
15
+ encoding_max_rate: nil,
16
+ env_variables: {},
17
+ every_nth_frame: 1,
18
+ force_height: nil,
19
+ force_path_style: false,
20
+ force_width: nil,
21
+ frame_range: nil,
22
+ frames_per_lambda: nil,
23
+ image_format: "jpeg",
24
+ input_props: {},
25
+ jpeg_quality: 80,
26
+ log_level: "info",
27
+ max_retries: 1,
28
+ metadata: {},
29
+ muted: false,
30
+ number_of_gif_loops: 0,
31
+ offthread_video_cache_size_in_bytes: nil,
32
+ out_name: nil,
33
+ overwrite: false,
34
+ pixel_format: nil,
35
+ prefer_lossless: false,
36
+ privacy: "public",
37
+ pro_res_profile: nil,
38
+ renderer_function_name: nil,
39
+ scale: 1,
40
+ serve_url: "testbed-v6",
41
+ timeout_in_milliseconds: 30000,
42
+ video_bitrate: nil,
43
+ webhook: nil,
44
+ x264_preset: nil,
45
+ chromium_options: {}
46
+ )
47
+
48
+ payload = {
49
+ audioBitrate: audio_bitrate,
50
+ audioCodec: audio_codec,
51
+ codec: codec,
52
+ colorSpace: color_space,
53
+ composition: composition,
54
+ concurrencyPerLambda: concurrency_per_lambda,
55
+ chromiumOptions: chromium_options,
56
+ crf: crf,
57
+ deleteAfter: delete_after,
58
+ downloadBehavior: download_behavior,
59
+ encodingBufferSize: encoding_buffer_size,
60
+ encodingMaxRate: encoding_max_rate,
61
+ envVariables: env_variables,
62
+ everyNthFrame: every_nth_frame,
63
+ forceHeight: force_height,
64
+ forcePathStyle: force_path_style,
65
+ forceWidth: force_width,
66
+ frameRange: frame_range,
67
+ framesPerLambda: frames_per_lambda,
68
+ imageFormat: image_format,
69
+ inputProps: {
70
+ type: "payload",
71
+ payload: JSON.generate(input_props)
72
+ },
73
+ jpegQuality: jpeg_quality,
74
+ logLevel: log_level,
75
+ maxRetries: max_retries,
76
+ metadata: metadata,
77
+ muted: muted,
78
+ numberOfGifLoops: number_of_gif_loops,
79
+ offthreadVideoCacheSizeInBytes: offthread_video_cache_size_in_bytes,
80
+ outName: out_name,
81
+ overwrite: overwrite,
82
+ pixelFormat: pixel_format,
83
+ preferLossless: prefer_lossless,
84
+ privacy: privacy,
85
+ proResProfile: pro_res_profile,
86
+ rendererFunctionName: renderer_function_name,
87
+ scale: scale,
88
+ serveUrl: serve_url,
89
+ timeoutInMilliseconds: timeout_in_milliseconds,
90
+ type: "start",
91
+ version: VERSION,
92
+ videoBitrate: video_bitrate,
93
+ webhook: webhook,
94
+ x264Preset: x264_preset,
95
+ bucketName: bucket_name
96
+ }
97
+ payload
98
+ end
@@ -0,0 +1,19 @@
1
+ def get_render_progress_payload(
2
+ render_id:,
3
+ bucket_name:,
4
+ force_path_style: false,
5
+ log_level: 'info',
6
+ s3_output_provider: nil
7
+ )
8
+ payload = {
9
+ "type" => "status",
10
+ "renderId" => render_id,
11
+ "bucketName" => bucket_name,
12
+ "version" => VERSION,
13
+ "forcePathStyle" => force_path_style,
14
+ "logLevel" => log_level,
15
+ "s3OutputProvider" => s3_output_provider
16
+ }
17
+
18
+ payload
19
+ end
@@ -0,0 +1,60 @@
1
+ require_relative 'version'
2
+
3
+ def get_render_still_on_lambda_payload(
4
+ bucket_name: nil,
5
+ composition: nil,
6
+ delete_after: nil,
7
+ download_behavior: nil,
8
+ env_variables: {},
9
+ force_height: nil,
10
+ force_path_style: false,
11
+ force_width: nil,
12
+ image_format: "jpeg",
13
+ input_props: {},
14
+ jpeg_quality: 80,
15
+ log_level: "info",
16
+ max_retries: 1,
17
+ metadata: {},
18
+ offthread_video_cache_size_in_bytes: nil,
19
+ out_name: nil,
20
+ overwrite: false,
21
+ privacy: "public",
22
+ scale: 1,
23
+ serve_url: "testbed-v6",
24
+ timeout_in_milliseconds: 30000,
25
+ chromium_options: {},
26
+ frame: 0
27
+ )
28
+
29
+ payload = {
30
+ composition: composition,
31
+ chromiumOptions: chromium_options,
32
+ deleteAfter: delete_after,
33
+ downloadBehavior: download_behavior,
34
+ envVariables: env_variables,
35
+ forceHeight: force_height,
36
+ forcePathStyle: force_path_style,
37
+ forceWidth: force_width,
38
+ imageFormat: image_format,
39
+ inputProps: {
40
+ type: "payload",
41
+ payload: JSON.generate(input_props)
42
+ },
43
+ jpegQuality: jpeg_quality,
44
+ logLevel: log_level,
45
+ maxRetries: max_retries,
46
+ offthreadVideoCacheSizeInBytes: offthread_video_cache_size_in_bytes,
47
+ outName: out_name,
48
+ privacy: privacy,
49
+ scale: scale,
50
+ serveUrl: serve_url,
51
+ timeoutInMilliseconds: timeout_in_milliseconds,
52
+ type: "still",
53
+ version: VERSION,
54
+ bucketName: bucket_name,
55
+ attempt: 1,
56
+ streamed: false,
57
+ frame: frame,
58
+ }
59
+ payload
60
+ end
@@ -0,0 +1,19 @@
1
+ module RemotionLambda
2
+ class S3OutputProvider
3
+ def initialize(access_key_id:, endpoint:, region:, secret_access_key:)
4
+ @region = region
5
+ @access_key_id = access_key_id
6
+ @secret_access_key = secret_access_key
7
+ @endpoint = endpoint
8
+ end
9
+
10
+ def to_json(*args)
11
+ {
12
+ region: @region,
13
+ accessKeyId: @access_key_id,
14
+ secretAccessKey: @secret_access_key,
15
+ endpoint: @endpoint
16
+ }.to_json(*args)
17
+ end
18
+ end
19
+ end
data/lib/sdk.rb CHANGED
@@ -1 +1,61 @@
1
- puts "Hello, World!"
1
+ require 'aws-sdk-lambda'
2
+ require 'json'
3
+ require 'logger'
4
+ require_relative 'version'
5
+
6
+ module RemotionLambda
7
+ class Client
8
+ attr_reader :bucket_name, :serve_url
9
+
10
+ def initialize(
11
+ region: ENV.fetch('AWS_REGION', 'us-east-1'),
12
+ aws_profile: nil
13
+ )
14
+ @region = region
15
+ @aws_profile = aws_profile
16
+ @lambda_client = create_lambda_client
17
+ end
18
+
19
+ def get_render_progress(function_name, payload)
20
+ body = invoke(function_name, payload)
21
+ raise "Failed to fetch progress: #{body['message']}" if body["type"] == "error"
22
+ body
23
+ end
24
+
25
+ def render_media_on_lambda(function_name, payload)
26
+ body = invoke(function_name, payload)
27
+ raise "Failed to call renderMediaOnLambda: #{body['message']}" if body["type"] == "error"
28
+ body
29
+ end
30
+
31
+ def render_still_on_lambda(function_name, payload)
32
+ body = invoke(function_name, payload)
33
+ raise "Failed to call renderStillOnLambda: #{body['message']}" if body["type"] == "error"
34
+ body
35
+ end
36
+
37
+ private
38
+
39
+ # Lambda methods
40
+ def invoke(function_name, payload)
41
+ response = @lambda_client.invoke({
42
+ function_name: function_name,
43
+ payload: JSON.generate(payload)
44
+ })
45
+
46
+ JSON.parse(response.payload.string)
47
+ end
48
+
49
+ def create_lambda_client
50
+ Aws::Lambda::Client.new(region: @region, credentials: aws_credentials)
51
+ end
52
+
53
+ def aws_credentials
54
+ if @aws_profile
55
+ Aws::SharedCredentials.new(profile_name: @aws_profile)
56
+ else
57
+ Aws::Credentials.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'])
58
+ end
59
+ end
60
+ end
61
+ end
metadata CHANGED
@@ -1,21 +1,67 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: remotion_lambda
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 4.0.232
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonny Burger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-22 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2024-11-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: aws-sdk-lambda
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">"
32
+ - !ruby/object:Gem::Version
33
+ version: 2.0.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">"
39
+ - !ruby/object:Gem::Version
40
+ version: 2.0.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: logger
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.0.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.0
13
55
  description: A Ruby SDK for Remotion Lambda
14
56
  email: jonny@remotion.dev
15
57
  executables: []
16
58
  extensions: []
17
59
  extra_rdoc_files: []
18
60
  files:
61
+ - lib/render_media_on_lambda_payload.rb
62
+ - lib/render_progress_payload.rb
63
+ - lib/render_still_on_lambda_payload.rb
64
+ - lib/s3_output_provider.rb
19
65
  - lib/sdk.rb
20
66
  homepage: https://rubygems.org/gems/remotion_lambda
21
67
  licenses: