require 'thread'
def process_multiple_videos(api, prompts)
threads = []
results = Queue.new
prompts.each do |prompt|
threads << Thread.new do
begin
request = Legnext::VideoDiffusionRequest.new(
prompt: prompt,
video_type: 1,
callback: 'https://your-domain.com/webhook'
)
response = api.generate_video(request)
results << { prompt: prompt, job_id: response.job_id }
rescue Legnext::ApiError => e
results << { prompt: prompt, error: e.message }
end
end
end
# Wait for all threads
threads.each(&:join)
# Collect results
all_results = []
all_results << results.pop until results.empty?
all_results
end
# Usage
api = Legnext::VideoGenerationApi.new
prompts = ['sunset', 'mountains', 'ocean']
results = process_multiple_videos(api, prompts)
results.each do |result|
if result[:error]
puts "Error for '#{result[:prompt]}': #{result[:error]}"
else
puts "Video '#{result[:prompt]}': #{result[:job_id]}"
end
end