shownotes.io · Ações GPT
Shownotes
Extract podcast transcript.
GET /apple.phpAppleSearchTakes an episode as input and returns up to 3 matching episodes on Apple podcasts. Ask the user which one they would like to transcribe. Allow the user to click the enclosure link to listen and show the artwork if available.
GET /airplugin.phpAudioTranscribeTakes the enclosure, podcast, and title parameters from the AppleSearch endpoint as input and returns a link called audiolink where the transcript will appear. Let the user know this may take a few minutes & will get an email when ready.
GET /captions-shownotes.phpAudioController_findTranscriptSearch shownotes.io with show and return transcript.
GET /search-youtube.phpSearchController_findVideosSearch YouTube for podcasts matchng show, returns array of 3 videos.
GET /captions-youtube.phpCaptionController_findTranscriptExtract transcript of YouTube video using query. Only use the transcript returned when making a summary or if questions are asked about the transcript. Do not embellish in any way. Let the user know we also sent an email summary to their inbox.
Esquema API original
{
"openapi": "3.1.0",
"info": {
"title": "Shownotes",
"description": "Extract podcast transcript.",
"version": "v1"
},
"servers": [
{
"url": "https://plugins.shownotes.io"
}
],
"security": [
{
"OAuth2": [
"openid",
"email"
]
}
],
"components": {
"securitySchemes": {
"OAuth2": {
"type": "oauth2",
"flows": {
"authorizationCode": {
"authorizationUrl": "https://plugins.shownotes.io/oauth/authorize.php",
"tokenUrl": "https://plugins.shownotes.io/oauth/token.php",
"scopes": {
"openid": "OpenID Connect",
"email": "User email"
}
}
}
}
},
"schemas": {
"TranscriptSchema": {
"type": "object",
"properties": {
"transcript": {
"type": "object",
"properties": {
"chunk1": {
"type": "string",
"description": "First chunk of transcript"
},
"chunk2": {
"type": "string",
"description": "Next chunk of transcript"
}
}
}
}
},
"VideoItem": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"videoid": {
"type": "string"
}
}
},
"ListVideo": {
"type": "array",
"items": {
"$ref": "#/components/schemas/VideoItem"
}
}
}
},
"paths": {
"/apple.php": {
"get": {
"operationId": "AppleSearch",
"security": [
{
"OAuth2": [
"openid",
"email"
]
}
],
"description": "Takes an episode as input and returns up to 3 matching episodes on Apple podcasts. Ask the user which one they would like to transcribe. Allow the user to click the enclosure link to listen and show the artwork if available.",
"parameters": [
{
"in": "query",
"name": "q",
"schema": {
"type": "string"
},
"required": true,
"description": "Search for episode"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"podcast": {
"type": "string",
"description": "Name of the podcast."
},
"title": {
"type": "string",
"description": "Title of the episode."
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the episode."
},
"enclosure": {
"type": "string",
"format": "uri",
"description": "URL to the audio file of the episode."
},
"description": {
"type": "string",
"description": "Episode description."
},
"artwork": {
"type": "string",
"format": "uri",
"description": "URL to Episode artwork 160px"
},
"protect": {
"type": "boolean",
"description": "If true, do not allow transcribe."
}
}
}
}
}
}
}
}
}
},
"/airplugin.php": {
"get": {
"operationId": "AudioTranscribe",
"description": "Takes the enclosure, podcast, and title parameters from the AppleSearch endpoint as input and returns a link called audiolink where the transcript will appear. Let the user know this may take a few minutes & will get an email when ready.",
"parameters": [
{
"in": "query",
"name": "enclosure",
"schema": {
"type": "string"
},
"required": true,
"description": "Link to the episode"
},
{
"in": "query",
"name": "podcast",
"schema": {
"type": "string"
},
"required": true,
"description": "Podcast name"
},
{
"in": "query",
"name": "title",
"schema": {
"type": "string"
},
"required": true,
"description": "Episode title"
}
],
"responses": {
"200": {
"description": "Transcription request accepted",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"audiolink": {
"type": "string",
"format": "uri",
"description": "Link where the transcript will appear."
}
}
}
}
}
}
}
}
},
"/captions-shownotes.php": {
"get": {
"description": "Search shownotes.io with show and return transcript.",
"operationId": "AudioController_findTranscript",
"parameters": [
{
"name": "show",
"in": "query",
"schema": {
"type": "string"
},
"description": "The show name"
}
],
"responses": {
"200": {
"description": "A JSON object of the transcript",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TranscriptSchema"
}
}
}
}
}
}
},
"/search-youtube.php": {
"get": {
"description": "Search YouTube for podcasts matchng show, returns array of 3 videos.",
"operationId": "SearchController_findVideos",
"parameters": [
{
"name": "show",
"in": "query",
"schema": {
"type": "string"
},
"description": "The show name"
}
],
"responses": {
"200": {
"description": "A JSON object with an array of 3 video ids",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ListVideo"
}
}
}
}
}
}
},
"/captions-youtube.php": {
"get": {
"description": "Extract transcript of YouTube video using query. Only use the transcript returned when making a summary or if questions are asked about the transcript. Do not embellish in any way. Let the user know we also sent an email summary to their inbox.",
"operationId": "CaptionController_findTranscript",
"parameters": [
{
"name": "videoid",
"in": "query",
"schema": {
"type": "string"
},
"description": "The 11-character Youtube videoid."
}
],
"responses": {
"200": {
"description": "A JSON object of the transcript in 2 parts, chunk1 and chunk2",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TranscriptSchema"
}
}
}
}
}
}
}
}
}Reel Transcription
Submit a reel to be transcribed and emailed to the user.
POST /webhook/82c968b2-5e19-4fb8-956a-43d874fb3e5cSubmit reel for transcriptionStarts transcription for the reel and sends the result by email.
Esquema API original
{
"openapi": "3.1.0",
"info": {
"title": "Reel Transcription",
"version": "1.0.0",
"description": "Submit a reel to be transcribed and emailed to the user."
},
"servers": [
{
"url": "https://cooper.app.n8n.cloud"
}
],
"paths": {
"/webhook/82c968b2-5e19-4fb8-956a-43d874fb3e5c": {
"post": {
"operationId": "submitReel",
"summary": "Submit reel for transcription",
"description": "Starts transcription for the reel and sends the result by email.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": false,
"required": [
"reel",
"email",
"PAGE_AND_SECTION"
],
"properties": {
"reel": {
"type": "string",
"description": "Instagram reel URL"
},
"email": {
"type": "string",
"description": "Email to receive the transcript"
},
"PAGE_AND_SECTION": {
"type": "string",
"description": "Source page URL (optional for tracking)"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Started"
}
}
}
}
}
}