{"id":23623320,"url":"https://github.com/gbaeke/ytsummary","last_synced_at":"2026-05-08T03:38:22.967Z","repository":{"id":172990237,"uuid":"650058273","full_name":"gbaeke/ytsummary","owner":"gbaeke","description":"App to create summaries from YouTube transcripts","archived":false,"fork":false,"pushed_at":"2023-06-22T18:24:24.000Z","size":47,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-02T04:42:44.977Z","etag":null,"topics":["gpt","gpt4","streamlit","youtube"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gbaeke.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-06-06T08:43:53.000Z","updated_at":"2023-06-06T09:22:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"1b34ecce-2a1c-4ed3-adff-57171b007fb1","html_url":"https://github.com/gbaeke/ytsummary","commit_stats":null,"previous_names":["gbaeke/ytsummary"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gbaeke/ytsummary","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbaeke%2Fytsummary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbaeke%2Fytsummary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbaeke%2Fytsummary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbaeke%2Fytsummary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gbaeke","download_url":"https://codeload.github.com/gbaeke/ytsummary/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gbaeke%2Fytsummary/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279005461,"owners_count":26083902,"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","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["gpt","gpt4","streamlit","youtube"],"created_at":"2024-12-27T20:38:54.517Z","updated_at":"2025-10-10T22:47:07.542Z","avatar_url":"https://github.com/gbaeke.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Generate YouTube Summaries with GPT\n\nThis is a Python Streamlit app that asks for a URL to a YouTube video. Both standard and watch URLs are supported (e.g., https://www.youtube.com/watch?v=VIDEO_ID or https://youtu.be/VIDEO_ID).\n\nThe app will retrieve the YouTube transcript for the video and summarize it with either gpt-35-turbo, gpt-4, or gpt-4-32k. If the video is too long and the transcript passes 32k tokens, you will receive an error. There are ways to work around this limitation but they are not implemented in this app.\n\nEvery summary is saved to an Azure Storage Table for reference. If you ask for a summary a second time, you get the summary from table storage unless you override that from the options.\n\n➡️ A full description of the app can be found here: https://gpt-inity.addpotion.com/youtube-summarizer\n\nA look at the UI:\n\nhttps://www.youtube.com/watch?v=sSjalVRxuh8\n\n## Requirements\n\nThis app uses Azure OpenAI service and requires that you do three deployments in your selected region (I am using France Central):\n\n- gpt-35-turbo\n- gpt-4\n- gpt-4-32k\n\nThe deployments should be called exactly as above.\n\n⚠️ You need to request access to Azure OpenAI service first. After you have been given access, you have to request access to gpt-4 which gives you both the standard gpt-4 and gpt-4 with 32k context.\n\nThe app can easily be changed to support OpenAI directly, but you need to be granted API access to gpt-4 as well.\n\n## Price\n\nNote that gpt-4 and especially gpt-4-32k can be costly. It is not uncommon to summarize a longer YouTube at a cost of about 2 euros. The app gives an indication about the costs based on pricing information in a Python dictionary. The prices in the code were added in June 2023.\n\n## Using the app\n\nCreate an Azure OpenAI service with the three deployment listed above. Get the API key and endpoint, you will need that later.\n\nCreate a storage account and create a table called `summaries`. Get the storage account name and key. You will need it later.\n\nSteps:\n\n- Clone the repo\n- From the cloned folder, run `pip install -r requirements.txt` (requires Python and pip, app was tested with Python 3.11.2)\n    - or use a virtual environment (recommended)\n- Create a `.env` file in the folder with the following entries:\n    - API_KEY=AzureOpenAIAPIKey\n    - ENDPOINT=https://NAMEOFYOURSERVICE.openai.azure.com/\n    - DEPLOYMENT=\"gpt-4-32k\"\n    - STORAGE_ACCOUNT=NAMEOFYOURSTORAGEACCOUNT\n    - STORAGE_KEY=STORAGEKEY\n    - STORAGE_TABLE=summaries\n- Run `streamlit run Create_Summary.py` to open the app in the browser\n\nPaste in a YouTube URL to verify. Use the `List Summaries` page (link in the sidebar) to see that summaries are saved to the table.\n\n## Using Docker\n\nIf you have Docker installed, run the following command to create an image for the app:\n\n `docker build -t \u003cDOCKERID\u003e/image:tag` .\n\nE.g., `docker build -t gbaeke/ytsum:v1`\n\nYou can then push the image to Docker Hub with `docker push \u003cDOCKERID\u003e/image:tag` and use the app in Azure Container Apps, ACI etc...\n\nTo run the app, use the following command:\n\n```\ndocker run -p 8501:8501 -e API_KEY=YOURKEY -e ENDPOINT=YOURENDPOINT \\\n    -e DEPLOYMENT=gpt-4-32k -e STORAGE_ACCOUNT=YOURACCOUNT \\\n    -e STORAGE_KEY=YOURKEY -e STORAGE_TABLE=YOURTABLE gbaeke/yt\n```\n\nNow open `http://localhost:8501` to view the app.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgbaeke%2Fytsummary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgbaeke%2Fytsummary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgbaeke%2Fytsummary/lists"}