[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"github-stars":3,"marketplace-site-banners":110,"@directus-labs\u002Fai-speech-generation-operation":115},{"id":4,"node_id":5,"name":6,"full_name":7,"private":8,"owner":9,"html_url":27,"description":28,"fork":8,"url":29,"forks_url":30,"keys_url":31,"collaborators_url":32,"teams_url":33,"hooks_url":34,"issue_events_url":35,"events_url":36,"assignees_url":37,"branches_url":38,"tags_url":39,"blobs_url":40,"git_tags_url":41,"git_refs_url":42,"trees_url":43,"statuses_url":44,"languages_url":45,"stargazers_url":46,"contributors_url":47,"subscribers_url":48,"subscription_url":49,"commits_url":50,"git_commits_url":51,"comments_url":52,"issue_comment_url":53,"contents_url":54,"compare_url":55,"merges_url":56,"archive_url":57,"downloads_url":58,"issues_url":59,"pulls_url":60,"milestones_url":61,"notifications_url":62,"labels_url":63,"releases_url":64,"deployments_url":65,"created_at":66,"updated_at":67,"pushed_at":68,"git_url":69,"ssh_url":70,"clone_url":71,"svn_url":27,"homepage":72,"size":73,"stargazers_count":74,"watchers_count":74,"language":75,"has_issues":76,"has_projects":76,"has_downloads":76,"has_wiki":8,"has_pages":8,"has_discussions":76,"forks_count":77,"mirror_url":78,"archived":8,"disabled":8,"open_issues_count":79,"license":80,"allow_forking":76,"is_template":8,"web_commit_signoff_required":8,"has_pull_requests":76,"pull_request_creation_policy":85,"topics":86,"visibility":26,"forks":77,"open_issues":79,"watchers":74,"default_branch":106,"temp_clone_token":78,"custom_properties":107,"organization":108,"network_count":77,"subscribers_count":109},7122594,"MDEwOlJlcG9zaXRvcnk3MTIyNTk0","directus","directus\u002Fdirectus",false,{"login":6,"id":10,"node_id":11,"avatar_url":12,"gravatar_id":13,"url":14,"html_url":15,"followers_url":16,"following_url":17,"gists_url":18,"starred_url":19,"subscriptions_url":20,"organizations_url":21,"repos_url":22,"events_url":23,"received_events_url":24,"type":25,"user_view_type":26,"site_admin":8},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,null,399,{"key":81,"name":82,"spdx_id":83,"url":78,"node_id":84},"other","Other","NOASSERTION","MDc6TGljZW5zZTA=","all",[87,88,89,90,91,92,6,93,94,95,96,97,98,99,100,101,102,103,104,105],"api","app","cms","composable","data-visualization","database","graphql","headless-cms","javascript","mariadb","mssql","mysql","no-code","node","postgresql","sql","sqlite","typescript","vue","main",{},{"login":6,"id":10,"node_id":11,"avatar_url":12,"gravatar_id":13,"url":14,"html_url":15,"followers_url":16,"following_url":17,"gists_url":18,"starred_url":19,"subscriptions_url":20,"organizations_url":21,"repos_url":22,"events_url":23,"received_events_url":24,"type":25,"user_view_type":26,"site_admin":8},326,[111],{"id":112,"icon":78,"content":113,"link":114,"include_paths":78,"exclude_paths":78},"5cf2f5f6-aecf-4395-8c23-69de326fdf02","Directus V12 is here","https:\u002F\u002Fdirectus.com\u002Fresources\u002Fv12-built-for-the-whole-team",{"name":116,"description":117,"verified":8,"id":118,"readme":119,"type":120,"last_updated":121,"host_version":122,"downloads":123,"total_downloads":124,"sandbox":76,"license":125,"publisher":126,"versions":133,"formatted_name":169,"formatted_readme":170,"formatted_description":117,"images":171,"recent_downloads_7_days":124,"recent_downloads_30_days":124},"@directus-labs\u002Fai-speech-generation-operation","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":127,"verified":76,"id":128,"github_username":127,"github_name":129,"github_blog":130,"github_bio":78,"github_location":131,"github_company":78,"github_avatar_url":132},"phazonoverload","8486d50d-a6bc-45c6-8627-60f3c144732c","Kevin Lewis","https:\u002F\u002Flws.io","Berlin","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1461554?v=4",[134,152],{"version":135,"package":118,"publisher":128,"type":120,"host_version":122,"publish_date":121,"verified":8,"id":136,"url_repository":78,"url_homepage":78,"url_bugs":78,"file_count":137,"unpacked_size":138,"sandbox":76,"sandbox_requested_scopes":139,"license":125,"bundled":147,"maintainers":148},"1.0.1","34a91556-334b-49b1-8122-0284837f1f86",2,2465,{"request":140,"log":145,"sleep":146},{"urls":141,"methods":143},[142],"https:\u002F\u002Fapi.genny.lovo.ai\u002Fapi\u002Fv1\u002F**",[144],"POST",{},{},[],[149,150,151],10550,10551,10552,{"version":153,"package":118,"publisher":128,"type":120,"host_version":122,"publish_date":154,"verified":8,"id":155,"url_repository":78,"url_homepage":78,"url_bugs":78,"file_count":156,"unpacked_size":157,"sandbox":76,"sandbox_requested_scopes":158,"license":78,"bundled":164,"maintainers":165},"1.0.0","2024-03-14T19:39:00.696Z","8d1c6acc-4d0a-494c-b840-68631b4ea7a1",4,5006,{"request":159,"log":162,"sleep":163},{"urls":160,"methods":161},[142],[144],{},{},[],[166,167,168],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",[]]