{"id":22583001,"url":"https://github.com/jerdog/pptkaraoke-unsplash","last_synced_at":"2025-08-11T06:47:39.266Z","repository":{"id":258303416,"uuid":"873627565","full_name":"jerdog/pptkaraoke-unsplash","owner":"jerdog","description":"Powerpoint Karaoke using Reveal.js + Unsplash API (via Netlify Functions)","archived":false,"fork":false,"pushed_at":"2024-10-18T11:42:48.000Z","size":3174,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-19T14:37:52.997Z","etag":null,"topics":["karaoke","karaoke-party","reveal-js"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jerdog.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":"2024-10-16T13:36:02.000Z","updated_at":"2024-10-18T11:42:52.000Z","dependencies_parsed_at":"2024-10-22T20:21:39.223Z","dependency_job_id":null,"html_url":"https://github.com/jerdog/pptkaraoke-unsplash","commit_stats":null,"previous_names":["jerdog/pptkaraoke-unsplash"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jerdog/pptkaraoke-unsplash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerdog%2Fpptkaraoke-unsplash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerdog%2Fpptkaraoke-unsplash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerdog%2Fpptkaraoke-unsplash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerdog%2Fpptkaraoke-unsplash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jerdog","download_url":"https://codeload.github.com/jerdog/pptkaraoke-unsplash/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerdog%2Fpptkaraoke-unsplash/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269843493,"owners_count":24484115,"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-08-11T02:00:10.019Z","response_time":75,"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":["karaoke","karaoke-party","reveal-js"],"created_at":"2024-12-08T06:13:11.241Z","updated_at":"2025-08-11T06:47:39.181Z","avatar_url":"https://github.com/jerdog.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PowerPoint Karaoke + Unsplash API\n\n## Overview\n\nThis project is a web application for [PowerPoint Karaoke](https://en.wikipedia.org/wiki/PowerPoint_karaoke), with a twist: all of the images are randomly pulled from the [Unsplash API](https://unsplash.com/developers) on load.\n\n## Usage\n\nTo use this project, you will first need to [fork it](https://github.com/jerdog/pptkaraoke-unsplash/fork), then clone that fork to your local machine (see below), and then open the `index.html` file in your browser. You will of course need to edit specific information for your presentation/event (see below), but by default the slideshow shows 5 slides, auto-advancing every 15 seconds. The below parameters can be adjusted in the URL:\n\n- `?slides=X` - the number of slides to show (default 8 for a 2min karaoke presentation)\n- `?delay=X` - the delay between slides in seconds (default 15)\n\nFor example: `https://localhost:8888/index-1.html/?slides=10\u0026delay=10` will show 10 slides, auto-advancing every 10 seconds (1min 40sec presentation). Not including those parameters will show the default 8 slides, auto-advancing every 15 seconds (2min presentation).\n\n## Configuration\n\nFile descriptions:\n\n- `index.html` - the main HTML file for the default presentation overview file. You will need to edit this file to include your own presentation information, along with links to the subsequent presentations you'll be using.\n- `index-1.html` - the first karaoke presentation file. You will edit the Presentation Title on the first slide, and then provide the value for the search query used to pull images from Unsplash for the presentation.\n- `index-*.html` - the subsequent karaoke presentation files that you will duplicate from the first, and then edit accordingly.\n- `img/placeholder_logo.png` - the image used as a placeholder for the conference/event overlay logo. Add your logo here, and then update it in each of the presentation files (see below):\n```html\n\u003cdiv class=\"slides\" id=\"slides-container\"\u003e\n  \u003cdiv class=\"overlay\"\u003e\n    \u003cimg src=\"img/placeholder_logo.png\" width=\"100px\"\u003e\n  \u003c/div\u003e\n```\n- `netlify/functions/unsplash.js` - the Unsplash API Netlify Function that is used to pull images from Unsplash. You will need to edit this file to include your Unsplash API key.\n- `netlify/functions/randomTalkTitle.js` - random talk title pulled from the `netlify/functions/talkTitles.json` file. Edit the `talkTitles.json` file with your own talk titles.\n- `netlify.toml` - the Netlify configuration file. By default, this is the bare minimum needed to build the project on Netlify.\n\n\n\nIn order to use this project, there are some prerequisites you will need to satisfy, and then do some local development. Those are identified below.\n\n### Prerequisites\n\n1. [Get an account on Netlify](https://www.netlify.com/)\n2. [Create an application on Unsplash](https://unsplash.com/developers) and get an API key\n\n### Development steps\n\n1. Fork this repo](https://github.com/jerdog/pptkaraoke-unsplash/fork), and then clone the fork to your local machine\n   ```\n   git clone https://github.com/YOUR_USERNAME/pptkaraoke-unsplash.git\n   cd pptkaraoke-unsplash\n   ```\n2. Run `npm install` to install the dependencies\n3. Copy the `.env-example` file to `.env` and fill in the `ACCESS_KEY` with the API key (the Access Key, ***not the Secret key***) you got from Unsplash above.\n4. Run `npm run build` to build the project\n5. Run `netlify dev` to start the local development server\n6. Open `http://localhost:8888/index.html` in your browser (or `http://localhost:8888/index-1.html` to jump straight to the first karaoke presentation)\n7. You should see the presentation running locally, and use the `SPACEBAR` key to advance to the next slide, with an image pulled from Unsplash on each one. If not, check the console for any errors.\n\n### Deploying to Netlify\n\nIf you want to have this project deployed to Netlify, you will need to do the following:\n\n*NOTE: Know that if you do this, and then publicize the link, you run the risk of hitting Unsplash's API rate limits (50 requests/hr). You likely won't need to deploy, and can just use this locally.*\n\n1. [Connect the repo](https://app.netlify.com/start) to Netlify\n2. Add an environment variable to the project in Netlify, with the key `ACCESS_KEY` and the value being the API key you got from Unsplash above. *NOTE: This is the Access Key, ***not the Secret key***.*\n  - Site Configuration \u003e Environment Variables \u003e Add a variable\n3. Push your changes to GitHub, and then Netlify will automatically build and deploy the project.\n4. Access the project at the URL Netlify provides.\n\n## Acknowledgements\n\n* [Unsplash API](https://unsplash.com/developers)\n* [Reveal.js](https://revealjs.com/)\n* [Netlify](https://www.netlify.com/)\n\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerdog%2Fpptkaraoke-unsplash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjerdog%2Fpptkaraoke-unsplash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerdog%2Fpptkaraoke-unsplash/lists"}