A podcast transcription service built on Azure that transcribes any new episode of your podcast and displays synchronized transcripts alongside your audio making your podcast more accessible. Read this blog post to learn more.
Please read the contribution guidlines for details on submitting pull requests.
Please read our Code of Conduct as well.
This project is licensed under the MIT License - see the LICENSE.md file for details
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes and also deploying this on Azure.
- Familiarize yourself with Azure Batch Transcription Concepts
- You will need an active Azure Subscription.
- Ensure you have dotnet core 2.2 or higher version on your machine.
- You will need Visual Studio 2017 or higher with the dotnet core and Azure workloads.
- Use Azure Shell that has the Azure CLI and Powershell tools installed.
-
Login in to Azure Shell and clone the repo.
-
Run the below commands to deploy required infrastructure on Azure.
cd src/AzPodcastTranscriber.Infra ./deploy.ps1 - SubscriptionName "<Sub Name>" - ResourceGroupName "<RG Name>"
- Clone the repository on your machine.
- Restore Nuget Packages and Build the solution.
- Right click --> Publish the Functions.
- Right click --> Publish the Web Project to Azure Web App.
-
Run the below commands to ignore changes to prevent accidentally committing your config secrets. Read more about the command here.
git update-index --skip-worktree ./src/AzPodcastTranscriber.Functions/local.settings.json git update-index --skip-worktree ./src/AzPodcastTranscriber.Web/appsettings.json
-
Copy Relevant settings to
local.settings.json
file from Azure. -
Set the Azure Functions as startup project and run it locally by pressing F5. Make a HTTP Post request to
OnRSSFeedUpdated
function with payload structure as below running onhttp://localhost:port/api/OnRSSFeedUpdated
{ "title": "Your favourite podcast episode", "primaryLink": "https://www.my-epidosde-link.mp3", "publishDate": "2019-05-30T00:00:00" }
-
You can check if the audio file is uploaded to storage account.
-
Testing the transcription webhook is tricky because the
localhost
URL is not publicly accessible. -
Once a transcription is completed, make a request to the
OnTranscriptionCompleted
function running locally onhttp://localhost:port/api/OnTranscriptionCompleted.
with below payload.{ "id": "GUID-That-you-can-get-from-transcription-api", }
- Update relevant Cosmos DB Details in the
appsettings.json
file of the Web Project. - Set the
AzPodcastTranscriber.Web
project as startup project and run it. You will be able to see completed transcriptions.