[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"marketplace-site-banners":3,"github-stars":9,"genny":115},[4],{"id":5,"icon":6,"content":7,"link":8,"include_paths":6,"exclude_paths":6},"5cf2f5f6-aecf-4395-8c23-69de326fdf02",null,"Directus V12 is here","https:\u002F\u002Fdirectus.com\u002Fresources\u002Fv12-built-for-the-whole-team",{"id":10,"node_id":11,"name":12,"full_name":13,"private":14,"owner":15,"html_url":33,"description":34,"fork":14,"url":35,"forks_url":36,"keys_url":37,"collaborators_url":38,"teams_url":39,"hooks_url":40,"issue_events_url":41,"events_url":42,"assignees_url":43,"branches_url":44,"tags_url":45,"blobs_url":46,"git_tags_url":47,"git_refs_url":48,"trees_url":49,"statuses_url":50,"languages_url":51,"stargazers_url":52,"contributors_url":53,"subscribers_url":54,"subscription_url":55,"commits_url":56,"git_commits_url":57,"comments_url":58,"issue_comment_url":59,"contents_url":60,"compare_url":61,"merges_url":62,"archive_url":63,"downloads_url":64,"issues_url":65,"pulls_url":66,"milestones_url":67,"notifications_url":68,"labels_url":69,"releases_url":70,"deployments_url":71,"created_at":72,"updated_at":73,"pushed_at":74,"git_url":75,"ssh_url":76,"clone_url":77,"svn_url":33,"homepage":78,"size":79,"stargazers_count":80,"watchers_count":80,"language":81,"has_issues":82,"has_projects":82,"has_downloads":82,"has_wiki":14,"has_pages":14,"has_discussions":82,"forks_count":83,"mirror_url":6,"archived":14,"disabled":14,"open_issues_count":84,"license":85,"allow_forking":82,"is_template":14,"web_commit_signoff_required":14,"has_pull_requests":82,"pull_request_creation_policy":90,"topics":91,"visibility":32,"forks":83,"open_issues":84,"watchers":80,"default_branch":111,"temp_clone_token":6,"custom_properties":112,"organization":113,"network_count":83,"subscribers_count":114},7122594,"MDEwOlJlcG9zaXRvcnk3MTIyNTk0","directus","directus\u002Fdirectus",false,{"login":12,"id":16,"node_id":17,"avatar_url":18,"gravatar_id":19,"url":20,"html_url":21,"followers_url":22,"following_url":23,"gists_url":24,"starred_url":25,"subscriptions_url":26,"organizations_url":27,"repos_url":28,"events_url":29,"received_events_url":30,"type":31,"user_view_type":32,"site_admin":14},15967950,"MDEyOk9yZ2FuaXphdGlvbjE1OTY3OTUw","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F15967950?v=4","","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus","https:\u002F\u002Fgithub.com\u002Fdirectus","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Ffollowers","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Ffollowing{\u002Fother_user}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Fgists{\u002Fgist_id}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Fstarred{\u002Fowner}{\u002Frepo}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Fsubscriptions","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Forgs","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Frepos","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Fevents{\u002Fprivacy}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Freceived_events","Organization","public","https:\u002F\u002Fgithub.com\u002Fdirectus\u002Fdirectus","The flexible backend for all your projects 🐰 Turn your DB into a headless CMS, admin panels, or apps with a custom UI, instant APIs, auth & more.","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fforks","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fkeys{\u002Fkey_id}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcollaborators{\u002Fcollaborator}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fteams","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fhooks","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fissues\u002Fevents{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fevents","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fassignees{\u002Fuser}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fbranches{\u002Fbranch}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Ftags","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fgit\u002Fblobs{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fgit\u002Ftags{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fgit\u002Frefs{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fgit\u002Ftrees{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fstatuses\u002F{sha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Flanguages","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fstargazers","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcontributors","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fsubscribers","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fsubscription","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcommits{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fgit\u002Fcommits{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcomments{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fissues\u002Fcomments{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcontents\u002F{+path}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcompare\u002F{base}...{head}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fmerges","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002F{archive_format}{\u002Fref}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fdownloads","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fissues{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fpulls{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fmilestones{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fnotifications{?since,all,participating}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Flabels{\u002Fname}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Freleases{\u002Fid}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fdeployments","2012-12-12T01:35:36Z","2026-07-18T05:08:19Z","2026-07-17T21:10:45Z","git:\u002F\u002Fgithub.com\u002Fdirectus\u002Fdirectus.git","git@github.com:directus\u002Fdirectus.git","https:\u002F\u002Fgithub.com\u002Fdirectus\u002Fdirectus.git","https:\u002F\u002Fdirectus.com",447310,36507,"TypeScript",true,4850,399,{"key":86,"name":87,"spdx_id":88,"url":6,"node_id":89},"other","Other","NOASSERTION","MDc6TGljZW5zZTA=","all",[92,93,94,95,96,97,12,98,99,100,101,102,103,104,105,106,107,108,109,110],"api","app","cms","composable","data-visualization","database","graphql","headless-cms","javascript","mariadb","mssql","mysql","no-code","node","postgresql","sql","sqlite","typescript","vue","main",{},{"login":12,"id":16,"node_id":17,"avatar_url":18,"gravatar_id":19,"url":20,"html_url":21,"followers_url":22,"following_url":23,"gists_url":24,"starred_url":25,"subscriptions_url":26,"organizations_url":27,"repos_url":28,"events_url":29,"received_events_url":30,"type":31,"user_view_type":32,"site_admin":14},326,{"metadata":6,"logo":116,"helpful_resources":117,"extensions":121,"date_updated":123,"user_updated":124,"date_created":125,"user_created":126,"sort":6,"id":127,"category":128,"description":129,"slug":130,"name":131,"content":132,"website":133,"status":134,"external_resources":135,"extensionDetails":136},"340cbaae-2140-4370-a359-23aa8b5b4e4e",[118],{"title":119,"url":120},"Genny API Documentation","https:\u002F\u002Fdocs.lovo.ai\u002F",[122],"@directus-labs\u002Fai-speech-generation-operation","2025-07-30T17:41:30.510Z","1a9ab95a-93bc-4908-af85-0d42bb6e6aa6","2025-07-11T14:29:17.261Z","1cd0a355-b103-477d-9375-61e88f3110f8","70b4168c-4ef6-46e8-b72e-4d3b1aa636de","AI","Text-to-speech generation with Genny's AI voice synthesis API","genny","Genny","\u003Cp>Genny is an AI-powered text-to-speech platform from LOVO that lets you generate lifelike voiceovers using advanced voice synthesis technology.\u003C\u002Fp>\n\u003Cp>With Genny's API, you can turn written content into natural-sounding speech in a wide range of voices and languages.\u003C\u002Fp>\n\u003Cp>In the context of data and content management with Directus, Genny is a valuable tool for transforming text-based assets into high-quality audio content. Whether you're creating accessible content for your website, generating voiceovers for videos, or adding narration to digital experiences, Genny makes it easy to automate the process using its API integration. The Directus extension for AI speech generation lets you trigger audio creation directly from your data workflows, so you can offer spoken versions of articles, product descriptions, or any other content stored in your Directus project.\u003C\u002Fp>\n\u003Cp>With Genny, teams can quickly scale audio production, enhance accessibility, and deliver dynamic content experiences - all while managing everything from a single platform.\u003C\u002Fp>","https:\u002F\u002Flovo.ai","published",[],[137],{"name":122,"description":138,"verified":14,"id":139,"readme":140,"type":141,"last_updated":142,"host_version":143,"downloads":144,"total_downloads":145,"sandbox":82,"license":146,"publisher":147,"versions":154,"formatted_name":190,"formatted_readme":191,"formatted_description":138,"images":192,"recent_downloads_7_days":145,"recent_downloads_30_days":145},"Use Genny's Text-to-Speech API to create new audio files.","7cba76de-9fa7-4146-834e-0e72b422be2c","# AI Speech Generation Operation\n\nGenerate realistic speech clips from text using the [Genny API](https:\u002F\u002Fdocs.genny.lovo.ai).\n\n![The operation shows hardcoded text, a speaker name country and gener, and a speed slider](https:\u002F\u002Fraw.githubusercontent.com\u002Fdirectus-labs\u002Fextension-ai-speech-generation-operation\u002Fmain\u002Fdocs\u002Foptions.png)\n\nThis operation contains four required configuration options - a Genny API key, the text to use in the clip, a speaker from the selecton of voices, and a speed (between 0.1 and 3 - 1 being 'normal'). It returns a string which is a direct URL to the generated audio file.\n\n## Output\n\nThe output is a plain string which is a URL to the generated audio file.\n\n## Flow Setup\n\nUse the **AI Speech Generation** operation, using the `{{ step }}` variable syntax to dynamically create a prompt.\n\nImmediately after the operation, create a **Webhook \u002F Request URL** operation with the name \"Import\". Use a `POST` Method and a URL of `https:\u002F\u002Fyour-directus-project-url\u002Ffiles\u002Fimport`, being sure to provide your specific Directus Project URL. If public file uploads are not enabled, you will need to add an `Authorization` header with the value `Bearer token`, where `token` must be a static token from a user who has permissions to create files.\n\nUse the following Request Body:\n\n```json\n{\n\t\"url\": \"{{$last}}\"\n}\n```\n\nThis operation will return the id of the new file at `{{ import.data.data.id }}`. You can use this ID in file relational fields.\n","operation","2024-03-15T12:59:37.852Z","^10.10.0",[],0,"MIT",{"username":148,"verified":82,"id":149,"github_username":148,"github_name":150,"github_blog":151,"github_bio":6,"github_location":152,"github_company":6,"github_avatar_url":153},"phazonoverload","8486d50d-a6bc-45c6-8627-60f3c144732c","Kevin Lewis","https:\u002F\u002Flws.io","Berlin","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1461554?v=4",[155,173],{"version":156,"package":139,"publisher":149,"type":141,"host_version":143,"publish_date":142,"verified":14,"id":157,"url_repository":6,"url_homepage":6,"url_bugs":6,"file_count":158,"unpacked_size":159,"sandbox":82,"sandbox_requested_scopes":160,"license":146,"bundled":168,"maintainers":169},"1.0.1","34a91556-334b-49b1-8122-0284837f1f86",2,2465,{"request":161,"log":166,"sleep":167},{"urls":162,"methods":164},[163],"https:\u002F\u002Fapi.genny.lovo.ai\u002Fapi\u002Fv1\u002F**",[165],"POST",{},{},[],[170,171,172],10550,10551,10552,{"version":174,"package":139,"publisher":149,"type":141,"host_version":143,"publish_date":175,"verified":14,"id":176,"url_repository":6,"url_homepage":6,"url_bugs":6,"file_count":177,"unpacked_size":178,"sandbox":82,"sandbox_requested_scopes":179,"license":6,"bundled":185,"maintainers":186},"1.0.0","2024-03-14T19:39:00.696Z","8d1c6acc-4d0a-494c-b840-68631b4ea7a1",4,5006,{"request":180,"log":183,"sleep":184},{"urls":181,"methods":182},[163],[165],{},{},[],[187,188,189],10547,10548,10549,"AI Speech Generation Operation","\u003Ch1>AI Speech Generation Operation\u003C\u002Fh1>\n\u003Cp>Generate realistic speech clips from text using the \u003Ca href=\"https:\u002F\u002Fdocs.genny.lovo.ai\">Genny API\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fdirectus-labs\u002Fextension-ai-speech-generation-operation\u002Fmain\u002Fdocs\u002Foptions.png\" alt=\"The operation shows hardcoded text, a speaker name country and gener, and a speed slider\">\u003C\u002Fp>\n\u003Cp>This operation contains four required configuration options - a Genny API key, the text to use in the clip, a speaker from the selecton of voices, and a speed (between 0.1 and 3 - 1 being 'normal'). It returns a string which is a direct URL to the generated audio file.\u003C\u002Fp>\n\u003Ch2>Output\u003C\u002Fh2>\n\u003Cp>The output is a plain string which is a URL to the generated audio file.\u003C\u002Fp>\n\u003Ch2>Flow Setup\u003C\u002Fh2>\n\u003Cp>Use the \u003Cstrong>AI Speech Generation\u003C\u002Fstrong> operation, using the \u003Ccode>{{ step }}\u003C\u002Fcode> variable syntax to dynamically create a prompt.\u003C\u002Fp>\n\u003Cp>Immediately after the operation, create a \u003Cstrong>Webhook \u002F Request URL\u003C\u002Fstrong> operation with the name \"Import\". Use a \u003Ccode>POST\u003C\u002Fcode> Method and a URL of \u003Ccode>https:\u002F\u002Fyour-directus-project-url\u002Ffiles\u002Fimport\u003C\u002Fcode>, being sure to provide your specific Directus Project URL. If public file uploads are not enabled, you will need to add an \u003Ccode>Authorization\u003C\u002Fcode> header with the value \u003Ccode>Bearer token\u003C\u002Fcode>, where \u003Ccode>token\u003C\u002Fcode> must be a static token from a user who has permissions to create files.\u003C\u002Fp>\n\u003Cp>Use the following Request Body:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-json\">{\n\t\"url\": \"{{$last}}\"\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>This operation will return the id of the new file at \u003Ccode>{{ import.data.data.id }}\u003C\u002Fcode>. You can use this ID in file relational fields.\u003C\u002Fp>\n",[]]