{"id":40532887,"url":"https://github.com/shotstack/video-to-mp3-demo","last_synced_at":"2026-01-20T22:09:08.198Z","repository":{"id":204834507,"uuid":"712730225","full_name":"shotstack/video-to-mp3-demo","owner":"shotstack","description":"A demo project showing how to use the Shotstack Ingest API to convert a video to MP3 audio.","archived":false,"fork":false,"pushed_at":"2024-07-17T11:00:56.000Z","size":137,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-07-17T13:30:27.595Z","etag":null,"topics":["audio-processing","conversion","converter","file-format","transcoding","transformation","video-processing","video-transcoding"],"latest_commit_sha":null,"homepage":"https://shotstack.io/demo/video-to-mp3/","language":"JavaScript","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/shotstack.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-11-01T04:14:56.000Z","updated_at":"2024-07-17T11:00:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"091a3878-7132-4564-a614-3856b436a064","html_url":"https://github.com/shotstack/video-to-mp3-demo","commit_stats":null,"previous_names":["shotstack/video-to-mp3-demo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shotstack/video-to-mp3-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shotstack%2Fvideo-to-mp3-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shotstack%2Fvideo-to-mp3-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shotstack%2Fvideo-to-mp3-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shotstack%2Fvideo-to-mp3-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shotstack","download_url":"https://codeload.github.com/shotstack/video-to-mp3-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shotstack%2Fvideo-to-mp3-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28615912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T21:52:42.722Z","status":"ssl_error","status_checked_at":"2026-01-20T21:52:20.513Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["audio-processing","conversion","converter","file-format","transcoding","transformation","video-processing","video-transcoding"],"created_at":"2026-01-20T22:09:07.566Z","updated_at":"2026-01-20T22:09:08.191Z","avatar_url":"https://github.com/shotstack.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shotstack Video to MP3 Demo\n\nThis demo shows you how to use the Shotstack Ingest API to [convert a video to\nmp3](https://shotstack.io/demo/video-to-mp3/). The Ingest API is a [video transformation\nAPI](https://shotstack.io/product/ingest-api/) that can be used to upload, store and convert videos and images to a\nvariety of formats, sizes, frame-rates, speeds and more.\n\nAn HTML web form lets the user upload a video or enter the URL of a video that is hosted online. The user can then\nsubmit the form which will convert the video to and mp3 audio file. The file can be played back in the browser or\ndownloaded. It is also possible to change the speed and pitch of the audio when converted to an mp3 file.\n\nView the live demo at: https://shotstack.io/demo/video-to-mp3/\n\nThe demo is built using Node.js and can be used with either Express Framework or deployed as a serverless projects using\nAWS Lambda and API Gateway.\n\n### Requirements\n\n- Node 16+\n- Shotstack API key: https://dashboard.shotstack.io/register\n\n### Project Structure\n\nThe project is divided in to a two components:\n\n#### Backend API\n\nThe backend API has an endpoint that receives the video and any speed settings. The parameters are prepared in the [JSON\nformat](https://shotstack.io/docs/api/#tocs_source) required by the Ingest API and posted to the API. A status endpoint\nis called to check the progress of the transformation and when complete the mp3 audio file URL is returned.\n\nThe backend API source code is in the **api** directory.\n\n#### Frontend Web Form \u0026 Player\n\nThe frontend is a simple HTML form using Bootstrap that allows the user to upload a video file. They can also adjust\nplayback speed and pitch. The form uses jQuery to submit the data to the backend API and poll the status of the current\nconversion. There is also an audio player that is loaded with the final audio file when ready.\n\nThe front end API source code is in the **web** directory.\n\n### Installation\n\nInstall node module dependencies:\n\n```bash\ncd api\nnpm install\n```\n\n### Configuration\n\nCopy the .env.dist file and rename it .env:\n\n```\ncp .env.dist .env\n```\n\nReplace the environment variables below with your Shotstack API key (stage key) and a writable S3 bucket name:\n\n```bash\nSHOTSTACK_API_KEY=replace_with_your_shotstack_key\nSHOTSTACK_HOST=https://api.shotstack.io/ingest/stage/\nAWS_S3_UPLOADS_BUCKET=replace_with_an_s3_bucket_name\n```\n\n### Run Locally\n\nTo start the API and serve the front end form (from the **api** directory):\n\n```bash\nnpm run start\n```\n\nThen visit [http://localhost:3000](http://localhost:3000)\n\n\n### Deploy Serverless Application (optional)\n\nThe project has been built as a serverless application using the Serverless Framework and AWS Lambda. To understand more\nabout the Serverless Framework and how to set everything up consult the documentation:\nhttps://serverless.com/framework/docs/providers/aws/\n\nTo deploy to AWS Lambda (from the **api** directory):\n\n```bash\nnpm run deploy\n```\n\nOnce the API is deployed set the `var apiEndpoint` variable in **web/app.js** to the returned API Gateway URL.\n\nRun the **web/index.html** file locally or use AWS S3 static hosting to serve the web page.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshotstack%2Fvideo-to-mp3-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshotstack%2Fvideo-to-mp3-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshotstack%2Fvideo-to-mp3-demo/lists"}