{"id":47286492,"url":"https://github.com/oligibson/studio","last_synced_at":"2026-03-16T06:03:17.360Z","repository":{"id":318760684,"uuid":"1074657351","full_name":"oligibson/studio","owner":"oligibson","description":"Studio provides a unified Ruby interface for creating, monitoring, and downloading AI-generated videos. It currently supports OpenAI Sora, Google Gemini Veo and KlingAI Video Models. It draws inspiration from the RubyLLM project.","archived":false,"fork":false,"pushed_at":"2025-11-21T17:28:13.000Z","size":35,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-21T19:20:47.774Z","etag":null,"topics":["ai","gemini","klingai","openai","ruby","sora-2","text-video","veo"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oligibson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-12T08:10:53.000Z","updated_at":"2025-11-21T17:28:17.000Z","dependencies_parsed_at":"2025-10-15T07:04:08.259Z","dependency_job_id":"a94d1b58-0210-4f3c-aefb-4a52b32f05fd","html_url":"https://github.com/oligibson/studio","commit_stats":null,"previous_names":["oligibson/studio"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/oligibson/studio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oligibson%2Fstudio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oligibson%2Fstudio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oligibson%2Fstudio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oligibson%2Fstudio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oligibson","download_url":"https://codeload.github.com/oligibson/studio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oligibson%2Fstudio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30570030,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-16T06:02:37.763Z","status":"ssl_error","status_checked_at":"2026-03-16T06:02:14.913Z","response_time":96,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","gemini","klingai","openai","ruby","sora-2","text-video","veo"],"created_at":"2026-03-16T06:03:06.894Z","updated_at":"2026-03-16T06:03:17.344Z","avatar_url":"https://github.com/oligibson.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ruby Studio\n\nStudio provides a unified Ruby interface for creating, monitoring, and downloading AI-generated videos. It currently supports OpenAI Sora, Google Gemini Veo and KlingAI Video Models. It draws inspiration from the RubyLLM project.\n\n## Installation\nInstall the dependencies:\n```ruby\nbundle install\n```\nConfigure your API keys:\n```ruby\nStudio.configure do |config|\n  config.openai_api_key = ENV['OPENAI_API_KEY']\n  config.gemini_api_key = ENV['GEMINI_API_KEY']\n  config.kling_access_key = ENV['KLING_ACCESS_KEY']\n  config.kling_secret_key = ENV['KLING_SECRET_KEY']\nend\n```\n## Working with Studio\n```ruby\nvideo = Studio.video\nvideo.create 'A calico cat playing a piano on stage'\n```\n```ruby\n# Download a video\nvideo.save('path/to/file')\n```\n```ruby\n# Get details about the video\nvideo.status\n```\n```ruby\n# Change the default model used for a video, the download location, and the aspect ratio\nvideo = Studio.video(model: 'sora-2-pro', provider: 'openai', output_dir:'tmp', aspect_ratio: \"9:16\")\n```\n```ruby\n# Change the model used for a specific video\nvideo.with_model('sora-2-pro').create 'A calico cat playing a piano on stage'\n```\n```ruby\n# Change the aspect ratio for a specific video\nvideo.with_ratio('16:9').create 'A calico cat playing a piano on stage'\n```\n```ruby\n# Change the length of video generated\nvideo.create('A calico cat playing a piano on stage', seconds: 8)\n```\n## Configure\nThe aim is to be able to configure once and use everywhere, but be able to override if needed.\n\n```ruby\nStudio.configure do |config|\n  config.default_model = 'sora-2' # See models.json for avaliable id's\n  config.default_aspect_ratio = '9:16' # or '16:9'\n  config.output_directory = 'videos'\nend\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foligibson%2Fstudio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foligibson%2Fstudio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foligibson%2Fstudio/lists"}