{"id":13643414,"url":"https://github.com/listennotes/listennotes-chatgpt-plugin","last_synced_at":"2026-01-22T20:06:54.982Z","repository":{"id":176347101,"uuid":"653710746","full_name":"ListenNotes/listennotes-chatgpt-plugin","owner":"ListenNotes","description":"Listen Notes ChatGPT Plugin for AI-powered podcast search. Powered by PodcastAPI.com and Cloudflare Pages.","archived":false,"fork":false,"pushed_at":"2023-10-09T19:01:35.000Z","size":273,"stargazers_count":24,"open_issues_count":0,"forks_count":6,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-09T15:42:34.558Z","etag":null,"topics":["chatgpt","chatgpt-plugins","listennotes","podcast-api","podcast-database","podcast-search"],"latest_commit_sha":null,"homepage":"https://ai.listennotes.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ListenNotes.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}},"created_at":"2023-06-14T15:12:14.000Z","updated_at":"2024-09-21T04:17:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"14b2e063-2776-458d-878e-8b16203f1257","html_url":"https://github.com/ListenNotes/listennotes-chatgpt-plugin","commit_stats":null,"previous_names":["listennotes/listennotes-chatgpt-plugin"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ListenNotes%2Flistennotes-chatgpt-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ListenNotes%2Flistennotes-chatgpt-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ListenNotes%2Flistennotes-chatgpt-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ListenNotes%2Flistennotes-chatgpt-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ListenNotes","download_url":"https://codeload.github.com/ListenNotes/listennotes-chatgpt-plugin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249982626,"owners_count":21355735,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["chatgpt","chatgpt-plugins","listennotes","podcast-api","podcast-database","podcast-search"],"created_at":"2024-08-02T01:01:47.204Z","updated_at":"2026-01-22T20:06:54.974Z","avatar_url":"https://github.com/ListenNotes.png","language":"JavaScript","funding_links":[],"categories":["Browser-extensions"],"sub_categories":[],"readme":"# Listen Notes ChatGPT Plugin\n\nThis repository contains the source code for the Listen Notes ChatGPT plugin. This plugin is built with [PodcastAPI.com](https://www.podcastapi.com/) and deployed on serverless Cloudflare Pages using JavaScript. It allows users to interact with the Listen Notes Podcast Database through the ChatGPT interface. Users can search for podcasts, find episodes, get recommendations, and more.\n\n## Table of Contents\n\n- [Using the Plugin](#using-the-plugin)\n- [Running Locally](#running-locally)\n- [Deploying to Production](#deploying-to-production)\n- [Adapting the Plugin](#adapting-the-plugin)\n\n## Using the Plugin\n\nTo use the Listen Notes ChatGPT plugin, you'll need to enable the plugin on [chat.openai.com](https://chat.openai.com/) first:\n\n\u003cimg width=\"1062\" alt=\"Screenshot 2023-06-19 at 12 16 11 PM\" src=\"https://github.com/ListenNotes/listennotes-chatgpt-plugin/assets/1719237/0a4dbc00-c34c-40b4-b68d-048f3db6895f\"\u003e\n\n\nYou can try prompts like these:\n* \"what are some recent podcast episodes talking about Sam Altman, in English\"\n* \"give me a random podcast episode to listen\"\n* \"how many episodes does the daily podcast have\"\n* \"有哪些好的中文播客，关于犯罪的\"\n* \"find me some podcasts about charles manson\"\n\n\u003cimg width=\"683\" alt=\"Screenshot 2023-06-19 at 10 18 30 AM\" src=\"https://github.com/ListenNotes/listennotes-chatgpt-plugin/assets/1719237/4fd9973f-35a4-4d3c-be03-eb1732d2d38f\"\u003e\n\n\n\n## Running Locally\n\nTo run this repo on your local development environment, follow these steps:\n\n**0) Install [Cloudflare Wrangler](https://developers.cloudflare.com/workers/wrangler/install-and-update/)**\n```\nnpm install -g wrangler\n```\n\n**1) Clone the repository to your local machine.**\n```\ngit clone https://github.com/ListenNotes/listennotes-chatgpt-plugin.git\n```\n\n**2) Install the necessary dependencies.**\n```\nyarn install\n```\n\n**3) Create a `.dev.vars` file in the root directory of this project (at the same level as package.json).**\n\nPut these variables in the `.dev.vars` file:\n```\nLISTEN_API_KEY = \"your_podcast_api_key_from_podcastapi.com\"\n\nCHATGPT_SECRET = \"your_custom_secret_which_is_like_a_password\"\nCHATGPT_VERIFICATION_TOKEN = \"a_secret_generated_on_chat.openai.com\"\nNODE_VERSION = '17'\n```\n\n|Variables|Description|Required for dev?|\n|---------|-----------|-----------------|\n|LISTEN_API_KEY| API key for Podcast API, which can be obtained at [listennotes.com/api/pricing](https://www.listennotes.com/api/pricing/)| Yes|\n|CHATGPT_SECRET| A custom secret for interacting with proxy endpoints defined in [functions/api/v2](./functions/api/v2)| Yes|\n|CHATGPT_VERIFICATION_TOKEN| A verification token generated on chat.openai.com. For dev purposes, you can put a random string or leave it blank for now.| No|\n|NODE_VERSION| Pin the nodejs version to 17.0, which is to make Cloudflare Pages happy. | No|\n\n**4) Test the proxy endpoints**\n\nRun the dev server first:\n```\nyarn dev\n```\n\nThen use curl to send a request (Note: Replace $CHATGPT_SECRET with the value that you set in the `.dev.vars` file):\n```\ncurl -X GET --location \"http://localhost:8788/api/v2/search_podcasts?q=nba\" \\\n    -H \"Authorization: Bearer $CHATGPT_SECRET\"\n```\n\n## Adapting the Plugin\n\nThis plugin can be adapted to work with other APIs. To do this, you'll need to modify the endpoints and the corresponding functions in the code. \n\nSpecifically, you'll need to change three things:\n\n1) **Update [ai-plugin.json](./functions/.well-known/ai-plugin.json/index.js)**: Learn more on [openai.com](https://platform.openai.com/docs/plugins/getting-started/plugin-manifest).\n\n2) **Update [proxy endpoints](./functions/api/v2) with other APIs**: Those proxy endpoints are running on Cloudflare Pages edge to send API requests. You may want to learn [how Cloudflare Pages functions work](https://developers.cloudflare.com/pages/platform/functions/get-started/) first.\n\n3) **Update [openapi.json](./functions/chatgpt-plugin/openapi.json/index.js)**: ChatGPT relies on this openapi spec to know what proxy endpoints are available. You may want to learn more on [openai.com](https://platform.openai.com/docs/plugins/getting-started/openapi-definition).\n\n### Deploying to Production\n\nTo deploy the Listen Notes ChatGPT plugin to production on [Cloudflare Pages](https://pages.cloudflare.com/), follow these steps:\n\n1) **[Create a Cloudflare Pages project](https://dash.cloudflare.com/sign-up/workers-and-pages)**\n\nYou'll setup deployment configuration like this:\n\n\u003cimg width=\"945\" alt=\"Screenshot 2023-06-19 at 11 35 53 AM\" src=\"https://github.com/ListenNotes/listennotes-chatgpt-plugin/assets/1719237/01e751cf-b008-44ea-99a2-733b74993bca\"\u003e\n\n\nAnd setup environment variables:\n\n\u003cimg width=\"930\" alt=\"Screenshot 2023-06-19 at 11 36 46 AM\" src=\"https://github.com/ListenNotes/listennotes-chatgpt-plugin/assets/1719237/0666e0e7-90ee-406b-9d49-9bd98e37ee6c\"\u003e\n\n\nNote: At first, you may just put a random string for CHATGPT_VERIFICATION_TOKEN because you'll get the real verification token later from openapi.com.\n\nAnd setup custom domain for your Cloudflare Pages project:\n\n\u003cimg width=\"1290\" alt=\"Screenshot 2023-06-19 at 11 43 43 AM\" src=\"https://github.com/ListenNotes/listennotes-chatgpt-plugin/assets/1719237/fb6a9be3-5583-4213-8ade-c3a64e01bbed\"\u003e\n\n\n\n2) **[Test on chat.openai.com](https://chat.openai.com/)**\n\nGo to the Plugin store:\n\n\u003cimg width=\"1088\" alt=\"Screenshot 2023-06-19 at 11 42 42 AM\" src=\"https://github.com/ListenNotes/listennotes-chatgpt-plugin/assets/1719237/92340335-5cdd-4c79-9dc7-c662417202cf\"\u003e\n\n\nAnd follow the instructions to setup your plugin:\n\n\u003cimg width=\"391\" alt=\"Screenshot 2023-06-19 at 11 45 18 AM\" src=\"https://github.com/ListenNotes/listennotes-chatgpt-plugin/assets/1719237/4c217822-1ef6-421d-933f-50462f97ce9e\"\u003e\n\nYou'll see the verification token, then go back to the Cloudflare Pages dashboard to setup the value of CHATGPT_VERIFICATION_TOKEN (you can delete the old variable and add a new one):\n\n\u003cimg width=\"1246\" alt=\"Screenshot 2023-06-19 at 11 47 33 AM\" src=\"https://github.com/ListenNotes/listennotes-chatgpt-plugin/assets/1719237/66b920bb-cc37-4901-a147-ed35ea04b9d9\"\u003e\n\n\nTo make your Cloudflare Pages project pick up the new CHATGPT_VERIFICATION_TOKEN value, you'll have to redeploy:\n\n\u003cimg width=\"483\" alt=\"Screenshot 2023-06-19 at 11 48 45 AM\" src=\"https://github.com/ListenNotes/listennotes-chatgpt-plugin/assets/1719237/409372ec-903f-4023-919a-46c69e3008b4\"\u003e\n\n\nThen go back to the ChatGPT UI to verify the verification token.\n\nBy this point, you should be able to test your plugin on chat.openai.com.\n\n### Submit for review\n\nTo list your plugin on the Plugin Store, please refer to the guidelines provided on [this page](https://platform.openai.com/docs/plugins/review) for submitting your plugin for review.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flistennotes%2Flistennotes-chatgpt-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flistennotes%2Flistennotes-chatgpt-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flistennotes%2Flistennotes-chatgpt-plugin/lists"}