remotion_lambda 0.0.1 → 4.0.232

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 68c925296b90b09934171014ec9e4469dbdc2156d94c3bf83eb94e1d4750f461
4
- data.tar.gz: 9117fd2b602a4385a23d6497868a5e6fc9b02e3e832b66fdd1c350809cb07656
3
+ metadata.gz: 4610b43a026fe3205b88f0453a764c0b6678579f193b4a6cf132d865377824c4
4
+ data.tar.gz: a03d483e39b6746607590b51c45d6e2bf2dc354935de9d43c80b896bdfd57bc3
5
5
  SHA512:
6
- metadata.gz: 7173c3306bd26632c0704ea378fced5f49d44978db086737083e2cce5940429712bbf212b9a897273160b5adb52dc23f07c3ca70d8b298c68e10f26e9c887367
7
- data.tar.gz: d8a63edce11238df2f70962bf817e903e7bf89e115c7cbe9e6d488b45dad78bc6f062ffd411c46e69287de13c2333bbc4b69ca8c9d0df6946ecd38660ab5b699
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.1
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: