{"id":40532837,"url":"https://github.com/shotstack/mp4-to-mov-demo","last_synced_at":"2026-01-20T22:09:02.409Z","repository":{"id":208784206,"uuid":"718052936","full_name":"shotstack/mp4-to-mov-demo","owner":"shotstack","description":"A demo project showing how to convert an MP4 video to MOV format using the Shotstack Ingest API.","archived":false,"fork":false,"pushed_at":"2025-08-18T16:23:15.000Z","size":138,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-18T18:24:26.125Z","etag":null,"topics":["converter","mp4-converter","quicktime-codec","transcoding","video","video-processing","video-transcoding","video-transformer"],"latest_commit_sha":null,"homepage":"https://shotstack.io/demo/mp4-to-mov/","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,"zenodo":null}},"created_at":"2023-11-13T09:23:29.000Z","updated_at":"2023-11-24T10:17:20.000Z","dependencies_parsed_at":"2025-08-18T18:11:52.927Z","dependency_job_id":"0c877b9c-b103-4a5b-81fc-4f5b35cca119","html_url":"https://github.com/shotstack/mp4-to-mov-demo","commit_stats":null,"previous_names":["shotstack/mp4-to-mov-demo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shotstack/mp4-to-mov-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shotstack%2Fmp4-to-mov-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shotstack%2Fmp4-to-mov-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shotstack%2Fmp4-to-mov-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shotstack%2Fmp4-to-mov-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shotstack","download_url":"https://codeload.github.com/shotstack/mp4-to-mov-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shotstack%2Fmp4-to-mov-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28615920,"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":["converter","mp4-converter","quicktime-codec","transcoding","video","video-processing","video-transcoding","video-transformer"],"created_at":"2026-01-20T22:09:01.428Z","updated_at":"2026-01-20T22:09:02.396Z","avatar_url":"https://github.com/shotstack.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shotstack MP4 to MOV Demo\n\nThis sample application shows how you can use the Shotstack Ingest API to [convert MP4 videos to\nMOV](https://shotstack.io/demo/mp4-to-mov/) format. The Ingest API is a [video transformation\nAPI](https://shotstack.io/product/ingest-api/) that lets you upload, store, and convert videos and images into different\nformats, sizes, frame rates, speeds, and more.\n\nUsing an HTML web form, users can upload a video or put in a URL of an MP4 video online. After submitting the form, the\nvideo is converted from MP4 to MOV. The new file can be played in the browser or downloaded.\n\nView the live demo at: https://shotstack.io/demo/mp4-to-mov/\n\nThe demo is made with Node.js and works with the Express Framework or as a serverless project using AWS Lambda and API\nGateway.\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 file URL. The parameters are prepared in the [JSON\nformat](https://shotstack.io/docs/api/#tocs_source) the Ingest API expects and sent to the API. A status endpoint is\ncalled to check the progress of the transformation. When the mov file is ready the status is updated and the file URL of\nthe mov file is returned.\n\nThe backend API source code is in the **api** directory.\n\n#### Frontend Web Form \u0026 Player\n\nThe frontend uses Bootstrap and basic HTML to set up a form that allows the user to upload a video file or enter a file\nURL. jQuery is used for the interactive components of the application and to submit the data to the backend API and poll\nthe status. There is also a video player that plays the final mov file video 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%2Fmp4-to-mov-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshotstack%2Fmp4-to-mov-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshotstack%2Fmp4-to-mov-demo/lists"}