{"id":41691316,"url":"https://github.com/germainlefebvre4/s3streamer","last_synced_at":"2026-01-24T20:18:44.018Z","repository":{"id":287911654,"uuid":"965964661","full_name":"germainlefebvre4/S3Streamer","owner":"germainlefebvre4","description":"Stream your videos hosted on a AWS S3 bucket (or S3 compatible API).","archived":false,"fork":false,"pushed_at":"2025-04-17T07:31:09.000Z","size":553,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-17T02:11:33.811Z","etag":null,"topics":["aws","aws-s3","interface","nodejs","player","s3-api","s3-compatible","streaming","video","webui"],"latest_commit_sha":null,"homepage":"https://germainlefebvre.fr/S3Streamer/","language":"HTML","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/germainlefebvre4.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,"zenodo":null}},"created_at":"2025-04-14T07:33:17.000Z","updated_at":"2025-04-17T07:29:37.000Z","dependencies_parsed_at":"2025-04-14T16:29:26.532Z","dependency_job_id":"4db2ff96-b71a-4f99-af3d-c0053d54ef28","html_url":"https://github.com/germainlefebvre4/S3Streamer","commit_stats":null,"previous_names":["germainlefebvre4/s3streamer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/germainlefebvre4/S3Streamer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/germainlefebvre4%2FS3Streamer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/germainlefebvre4%2FS3Streamer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/germainlefebvre4%2FS3Streamer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/germainlefebvre4%2FS3Streamer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/germainlefebvre4","download_url":"https://codeload.github.com/germainlefebvre4/S3Streamer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/germainlefebvre4%2FS3Streamer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28736503,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T19:23:36.361Z","status":"ssl_error","status_checked_at":"2026-01-24T19:23:28.966Z","response_time":89,"last_error":"SSL_read: 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":["aws","aws-s3","interface","nodejs","player","s3-api","s3-compatible","streaming","video","webui"],"created_at":"2026-01-24T20:18:43.506Z","updated_at":"2026-01-24T20:18:44.006Z","avatar_url":"https://github.com/germainlefebvre4.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# S3 Video Streaming Application\n\nA Node.js application for streaming video files hosted on AWS S3 directly in a web browser.\n\n## Features\n\n- Lists video files from a specified S3 bucket\n- Streams videos efficiently using pre-signed URLs\n- User-friendly web interface with video playback functionality\n- Responsive design that works on desktop and mobile devices\n\n## Prerequisites\n\n- Node.js v22+ (using nvs)\n- AWS account with S3 bucket containing video files\n- AWS access key ID and secret access key with permissions to list and read objects from the S3 bucket\n\n## Setup\n\n1. Clone this repository\n2. Configure your environment variables:\n\n```bash\ncp .env.example .env\n```\n\nThen edit the `.env` file with your AWS credentials and bucket information:\n\n```\nAWS_ACCESS_KEY_ID=your_access_key_id\nAWS_SECRET_ACCESS_KEY=your_secret_access_key\nAWS_REGION=your_aws_region\nAWS_S3_ENDPOINT_URL=https://s3.your_aws_region.amazonaws.com\nAWS_S3_BUCKET_NAME=your_bucket_name\nPORT=3000\nNODE_ENV=development\n```\n\n3. Install dependencies:\n\n```bash\npnpm install\n```\n\n## Running the Application\n\n### Development Mode\n\n```bash\npnpm run dev\n```\n\nThis will start the server with nodemon, which will automatically restart on file changes.\n\n### Production Mode\n\n```bash\npnpm start\n```\n\n## Usage\n\n1. Open your browser and navigate to `http://localhost:3000` (or the port you specified in the .env file)\n2. You'll see a list of video files from your S3 bucket\n3. Click on any video to start streaming it in the browser\n4. Use the back button to return to the video list\n\n## How It Works\n\n1. The server retrieves a list of video files from the specified S3 bucket\n2. When a user selects a video, the server generates a pre-signed URL for that specific file\n3. The browser is redirected to the pre-signed URL, allowing direct streaming from S3\n4. The pre-signed URL has a limited validity period for security (default: 1 hour)\n\n## Security Considerations\n\n- This application uses pre-signed URLs with a short expiration time\n- AWS credentials are stored in the .env file, which should never be committed to version control\n- CORS is enabled to allow streaming from S3 to your application\n\n## License\n\nISC\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgermainlefebvre4%2Fs3streamer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgermainlefebvre4%2Fs3streamer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgermainlefebvre4%2Fs3streamer/lists"}