{"id":23786371,"url":"https://github.com/nickclyde/chatgpt-genius-plugin","last_synced_at":"2025-04-13T00:44:51.048Z","repository":{"id":155928633,"uuid":"632674641","full_name":"nickclyde/chatgpt-genius-plugin","owner":"nickclyde","description":"Get song meanings, write song parodies, learn about artists and more with this ChatGPT plugin!","archived":false,"fork":false,"pushed_at":"2023-05-06T00:04:43.000Z","size":6883,"stargazers_count":10,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T00:44:44.373Z","etag":null,"topics":["chatgpt","chatgpt-plugin","genius","lyrics"],"latest_commit_sha":null,"homepage":"","language":"Python","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/nickclyde.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}},"created_at":"2023-04-25T22:40:56.000Z","updated_at":"2025-04-02T18:40:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"761c5e5d-3996-4f74-a486-844067fa69f7","html_url":"https://github.com/nickclyde/chatgpt-genius-plugin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"openai/plugins-quickstart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nickclyde%2Fchatgpt-genius-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nickclyde%2Fchatgpt-genius-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nickclyde%2Fchatgpt-genius-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nickclyde%2Fchatgpt-genius-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nickclyde","download_url":"https://codeload.github.com/nickclyde/chatgpt-genius-plugin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248650419,"owners_count":21139672,"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-plugin","genius","lyrics"],"created_at":"2025-01-01T14:26:10.210Z","updated_at":"2025-04-13T00:44:51.025Z","avatar_url":"https://github.com/nickclyde.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ChatGPT Genius Plugin\n\nGet song meanings, write song parodies, learn about artists and more with this ChatGPT plugin!  \n\n![GIF of plugin in action](./assets/plugin.gif)\n  \nYou'll need plugin developer access to be able to install this plugin. If you do not already have plugin developer access on ChatGPT, please [join the waitlist](https://openai.com/waitlist/plugins).\n\n## Setup\n\nFirst, you'll need a Genius account and API Client. [Sign up or login here](https://genius.com/api-clients), then [create a new API client](https://genius.com/api-clients/new) with the following details:\n- App website URL: https://chat.openai.com\n- Redirect URI: https://chat.openai.com/aip/plugin-some_plugin_id/oauth/callback (you will replace `some_plugin_id` with your plugin ID later)\n\nTake note of the Client ID and Client Secret generated for you.\n\nNext, to install the required packages for this plugin, run the following command:\n\n```bash\npip install -r requirements.txt\n```\n\nA domain name is needed in order to use OAuth with this plugin. See [OpenAI docs](https://platform.openai.com/docs/plugins/authentication/oauth) on using plugins with OAuth.\n\n~~To get a domain for your local app, you can run this app on a service like [replit](https://replit.com/github) that provides a domain for you.~~ Turns out that Genius blocks IPs from VPS providers like replit. Guess you have to self host this one! ¯\\\\_(ツ)_/¯\n\nAlternatively, sign up for [ngrok](https://ngrok.com/) and install:\n\n```\nbrew install ngrok\nngrok config add-authtoken YOUR_AUTH_TOKEN\nngrok http 8000\n```\n\nOr, if you wanna get real fancy, buy your own domain and set up a reverse proxy on your network.\n\nOnce you have your domain, open `.well-known/ai-plugin.json` and replace any instances of `https://chatgpt-genius-plugin.mydomain.com` in the file with your domain. \n\nTo run the plugin, enter the following command:\n\n```bash\nuvicorn main:app --reload --host 0.0.0.0\n```\n\nOnce the local server is running:\n\n1. Navigate to https://chat.openai.com. \n2. In the Model drop down, select \"Plugins\" (note, if you don't see it there, you don't have access yet).\n3. Select \"Plugin store\"\n4. Select \"Develop your own plugin\"\n5. Enter in `chatgpt-genius-plugin.mydomain.com` or whatever your domain is, then select \"Find manifest file\".\n6. It will ask for your Client ID and Client Secret. Enter the values from you Genius API Client.\n7. OpenAI will give you a verification token. Enter this in `.well-known/ai-plugin.json` in the `verification_tokens` object. Restart your server and then continue in ChatGPT.\n8. After installing the plugin, it will ask you to login with Genius. Click the button, and you'll see \"Invalid authorization\". Look in the URL to get your plugin ID from the redirect URI query param (it should be in the oauth request). Go back to your Genius API Client and edit. Update the redirect URI to `https://chat.openai.com/aip/plugin-your_plugin_id/oauth/callback`, where `your_plugin_id` should be some unique UUID. Now save your Genius API client with the corrected Redirect URI.\n9. Refresh the tab with \"Invalid authorization\" - it should go through now!\n\nThe plugin should now be installed and enabled! You can try out a number of different questions:\n\n- What are the full lyrics of the song with the lyrics \"I threw a wish in the well don't ask me, I'll never tell\"\n- Tell me about the EP \"Become\" by Beach House.\n- Can you show me the cover art for the album \"Expert in a Dying Field\" by The Beths?\n- What is the meaning of the song \"Kyoto\" by Phoebe Bridgers?\n- Get the lyrics for \"Plimsoll Punks\" by Alvvays and rewrite them as a song parody called \"Feline Punks\" about how cats can be real punks sometimes.\n\n## Development\n\nThis is mostly just a [fastapi](https://fastapi.tiangolo.com/) wrapper around the [LyricsGenius](https://github.com/johnwmillr/LyricsGenius) python client for the Genius API. If you'd like to make any contributions, PRs are welcome! Here is the [readthedocs page for LyricsGenius](https://lyricsgenius.readthedocs.io/en/master/index.html).\n\nYou may also find OpenAI's [Developer community forum](https://community.openai.com/c/chat-plugins/20) useful.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnickclyde%2Fchatgpt-genius-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnickclyde%2Fchatgpt-genius-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnickclyde%2Fchatgpt-genius-plugin/lists"}