{"id":25519468,"url":"https://github.com/jivan052/angsnyc","last_synced_at":"2026-04-18T17:02:25.719Z","repository":{"id":277842562,"uuid":"933699230","full_name":"Jivan052/AngSnyc","owner":"Jivan052","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-29T15:53:56.000Z","size":938,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-01T00:25:46.691Z","etag":null,"topics":["express","html","tailwind","webapp","websocket"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jivan052.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-16T13:50:42.000Z","updated_at":"2025-11-29T15:53:59.000Z","dependencies_parsed_at":"2025-02-16T18:44:01.182Z","dependency_job_id":null,"html_url":"https://github.com/Jivan052/AngSnyc","commit_stats":null,"previous_names":["jivan052/angsny","jivan052/angsnyc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Jivan052/AngSnyc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jivan052%2FAngSnyc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jivan052%2FAngSnyc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jivan052%2FAngSnyc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jivan052%2FAngSnyc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jivan052","download_url":"https://codeload.github.com/Jivan052/AngSnyc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jivan052%2FAngSnyc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31976805,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T16:27:12.723Z","status":"ssl_error","status_checked_at":"2026-04-18T16:27:11.140Z","response_time":103,"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":["express","html","tailwind","webapp","websocket"],"created_at":"2025-02-19T17:19:42.245Z","updated_at":"2026-04-18T17:02:25.712Z","avatar_url":"https://github.com/Jivan052.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎬 AngSync Room\n\nA real-time YouTube video synchronization app that allows multiple users to watch the same video together and enjoy the real sync.\n![image](https://github.com/user-attachments/assets/d15a48d0-374a-41e2-a034-2c5a25ba4f6c)\n![image](https://github.com/user-attachments/assets/5e35391b-e991-4b5b-8f91-c2f2554210ce)\n\n\n## 🚀 Features\n✅ Create or join a sync room with a unique **Room ID**.  \n✅ Watch YouTube videos **in sync** with others.  \n✅ **Play, pause, and seek** functionality is synchronized across all users in the room.  \n✅ Change the **video URL dynamically**.  \n\n## 🛠️ Technologies Used\n- **Frontend**: HTML, JavaScript, TailwindCSS 🎨\n- **Backend**: Node.js, Express.js 🖥️\n- **WebSockets**: For real-time video synchronization 🔄\n- **YouTube IFrame API**: For embedding and controlling YouTube videos 🎥\n\n## ⚙️ Installation \u0026 Setup\n\n### 📌 Prerequisites\n- Install [Node.js](https://nodejs.org/)\n\n### 📝 Steps\n1. Clone the repository:\n   ```sh\n   git clone https://github.com/your-repo/angsync-room.git\n   ```\n2. Install dependencies:\n   ```sh\n   npm install\n   ```\n3. Start the server:\n   ```sh\n   node server.js\n   ```\n4. Open `http://localhost:8080/` in your browser. 🌐\n\n## 🛠️ How It Works\n### **Server-side (server.js) 🖥️**\n- Uses **Express.js** to serve the `index.html` file.\n- Uses **WebSockets** to establish real-time communication between users.\n- Manages rooms and keeps track of video state (**play, pause, seek, and URL changes**).\n\n### **Client-side (index.html \u0026 JavaScript) 🎭**\n- Connects to the **WebSocket** server.\n- Loads and controls the **YouTube video** using the **YouTube IFrame API**.\n- Sends and receives **synchronization messages** (play, pause, seek, change URL) through **WebSockets**.\n\n## 🔄 WebSocket Events\n| 🎯 Event Type | 🔁 Sent By | 📌 Purpose |\n|-------------|---------|---------|\n| `join`       | Client  | User joins a room 👥 |\n| `sync`       | Server  | Sends current video state to new users 🔄 |\n| `play`       | Client  | Notifies all users to **play** video ▶️ |\n| `pause`      | Client  | Notifies all users to **pause** video ⏸️ |\n| `seek`       | Client  | Synchronizes video position ⏩ |\n| `changeUrl`  | Client  | Updates video URL for all users 🔗 |\n\n## 🔧 Issues \u0026 Improvements\n🚨 **Sometimes pause/play actions don’t sync correctly.** Possible improvement: Implement a **timestamp-based synchronization mechanism**.  \n⚡ **Enhance error handling** for WebSocket disconnections.  \n🎨 **UI/UX improvements** for a better user experience.  \n\n## 📜 License\n📝 MIT License\n\n## 👤 Author\n📌 **Jivan Jamdar** 🚀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjivan052%2Fangsnyc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjivan052%2Fangsnyc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjivan052%2Fangsnyc/lists"}