{"id":42744510,"url":"https://github.com/zlargon/google-tts","last_synced_at":"2026-01-29T19:09:38.594Z","repository":{"id":40751711,"uuid":"54779201","full_name":"zlargon/google-tts","owner":"zlargon","description":"Google TTS (Text-To-Speech) for node.js","archived":false,"fork":false,"pushed_at":"2023-01-06T16:05:35.000Z","size":1694,"stargazers_count":275,"open_issues_count":25,"forks_count":55,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-05-17T20:45:20.329Z","etag":null,"topics":["google-tts","text-to-speech","tts"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/google-tts-api","language":"JavaScript","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/zlargon.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-03-26T13:00:53.000Z","updated_at":"2024-05-17T20:45:20.329Z","dependencies_parsed_at":"2023-02-06T06:17:25.927Z","dependency_job_id":null,"html_url":"https://github.com/zlargon/google-tts","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/zlargon/google-tts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zlargon%2Fgoogle-tts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zlargon%2Fgoogle-tts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zlargon%2Fgoogle-tts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zlargon%2Fgoogle-tts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zlargon","download_url":"https://codeload.github.com/zlargon/google-tts/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zlargon%2Fgoogle-tts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28882763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T16:41:59.663Z","status":"ssl_error","status_checked_at":"2026-01-29T16:39:39.641Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["google-tts","text-to-speech","tts"],"created_at":"2026-01-29T19:09:37.876Z","updated_at":"2026-01-29T19:09:38.579Z","avatar_url":"https://github.com/zlargon.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# google-tts\n\nGoogle TTS (Text-To-Speech) for node.js\n\n[![][npm-img]][npm-url]\n\n[![][dependency-img]][dependency-url]\n[![][dependency-dev-img]][dependency-dev-url]\n[![][install-size-img]][install-size-result]\n\n[![][gh-action-img]][gh-action-url]\n[![][coverage-img]][coverage-url]\n\n## Installation\n\n```bash\n$ npm install --save google-tts-api\n$ npm install -D typescript @types/node # Only for TypeScript\n```\n\n## Change Log\n\nPlease see [CHANGELOG](https://github.com/zlargon/google-tts/blob/master/CHANGELOG.md).\n\n## Usage\n\n| Method              | Options (all optional)                          | Return Type                                         | Handle Long Text |\n| ------------------- | ----------------------------------------------- | --------------------------------------------------- | :--------------: |\n| `getAudioUrl`       | `lang`, `slow`, `host`                          | `string`                                            |                  |\n| `getAudioBase64`    | `lang`, `slow`, `host`, `timeout`               | `Promise\u003cstring\u003e`                                   |                  |\n| `getAllAudioUrls`   | `lang`, `slow`, `host`, `splitPunct`            | `{ shortText: string; url: string; }[]`             |        ✅        |\n| `getAllAudioBase64` | `lang`, `slow`, `host`, `timeout`, `splitPunct` | `Promise\u003c{ shortText: string; base64: string; }[]\u003e` |        ✅        |\n\n### Options (all optional)\n\n| Option       | Type      | Default                      | Description                                                                                                                    |\n| ------------ | --------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |\n| `lang`       | `string`  | en                           | See all avaiable language code at https://cloud.google.com/speech/docs/languages                                               |\n| `slow`       | `boolean` | false                        | Use the slow audio speed if set `slow` to `true`                                                                               |\n| `host`       | `string`  | https://translate.google.com | You can change the `host` if the default host could not work in your region (e.g. https://translate.google.com.cn).            |\n| `timeout`    | `number`  | 10000 (ms)                   | (Only for `getAudioBase64` and `getAllAudioBase64`) Set timeout for the HTTP request.                                          |\n| `splitPunct` | `string`  |                              | (Only for `getAllAudioUrls` and `getAllAudioBase64`) Set the punctuation to split the long text to short text. (e.g. \"，、。\") |\n\n## Examples\n\n### 1. `getAudioUrl(text, [option])`\n\n```js\nimport * as googleTTS from 'google-tts-api'; // ES6 or TypeScript\nconst googleTTS = require('google-tts-api'); // CommonJS\n\n// get audio URL\nconst url = googleTTS.getAudioUrl('Hello World', {\n  lang: 'en',\n  slow: false,\n  host: 'https://translate.google.com',\n});\nconsole.log(url); // https://translate.google.com/translate_tts?...\n```\n\n### 2. `getAudioBase64(text, [option])`\n\n```js\nimport * as googleTTS from 'google-tts-api'; // ES6 or TypeScript\nconst googleTTS = require('google-tts-api'); // CommonJS\n\n// get base64 text\ngoogleTTS\n  .getAudioBase64('Hello World', {\n    lang: 'en',\n    slow: false,\n    host: 'https://translate.google.com',\n    timeout: 10000,\n  })\n  .then(console.log) // base64 text\n  .catch(console.error);\n```\n\n### 3. `getAllAudioUrls(text, [option])` (For text longer than 200 characters)\n\n```js\nimport * as googleTTS from 'google-tts-api'; // ES6 or TypeScript\nconst googleTTS = require('google-tts-api'); // CommonJS\n\nconst results = googleTTS.getAllAudioUrls('LONG_TEXT_...', {\n  lang: 'en',\n  slow: false,\n  host: 'https://translate.google.com',\n  splitPunct: ',.?',\n});\nconsole.log(results);\n// [\n//   { shortText: '...', url: '...' },\n//   { shortText: '...', url: '...' },\n//   ...\n// ];\n```\n\n### 4. `getAllAudioBase64(text, [option])` (For text longer than 200 characters)\n\n```js\nimport * as googleTTS from 'google-tts-api'; // ES6 or TypeScript\nconst googleTTS = require('google-tts-api'); // CommonJS\n\ngoogleTTS\n  .getAllAudioBase64('LONG_TEXT_...', {\n    lang: 'en',\n    slow: false,\n    host: 'https://translate.google.com',\n    timeout: 10000,\n    splitPunct: ',.?',\n  })\n  .then(console.log)\n  // [\n  //   { shortText: '...', base64: '...' },\n  //   { shortText: '...', base64: '...' },\n  //   ...\n  // ];\n  .catch(console.error);\n```\n\n[More Examples](https://github.com/zlargon/google-tts/tree/master/example)\n\n## License\n\nMIT\n\n[npm-url]: https://nodei.co/npm/google-tts-api\n[npm-img]: https://nodei.co/npm/google-tts-api.png\n[install-size-img]: https://packagephobia.com/badge?p=google-tts-api\n[install-size-result]: https://packagephobia.com/result?p=google-tts-api\n[dependency-url]: https://david-dm.org/zlargon/google-tts\n[dependency-img]: https://img.shields.io/david/zlargon/google-tts.svg\n[dependency-dev-url]: https://david-dm.org/zlargon/google-tts#info=devDependencies\n[dependency-dev-img]: https://img.shields.io/david/dev/zlargon/google-tts.svg\n[gh-action-url]: https://github.com/zlargon/google-tts/actions\n[gh-action-img]: https://github.com/zlargon/google-tts/actions/workflows/build.yml/badge.svg\n[coverage-url]: https://coveralls.io/github/zlargon/google-tts\n[coverage-img]: https://img.shields.io/coveralls/github/zlargon/google-tts\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzlargon%2Fgoogle-tts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzlargon%2Fgoogle-tts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzlargon%2Fgoogle-tts/lists"}