{"id":26556677,"url":"https://github.com/franklioxygen/mytube","last_synced_at":"2025-10-11T00:08:24.820Z","repository":{"id":281438131,"uuid":"945275070","full_name":"franklioxygen/MyTube","owner":"franklioxygen","description":"A YouTube/Bilibili video downloader and player application that allows you to download and save YouTube/Bilibili videos locally, along with their thumbnails. Organize your videos into collections for easy access and management.","archived":false,"fork":false,"pushed_at":"2025-03-21T14:09:07.000Z","size":184,"stargazers_count":45,"open_issues_count":1,"forks_count":10,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-07T07:35:09.592Z","etag":null,"topics":["bilibili","bilibili-download","docker","nas","video-hosting","video-player","youtube","youtube-dl","youtube-downloader"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/franklioxygen.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}},"created_at":"2025-03-09T03:33:55.000Z","updated_at":"2025-07-16T03:51:56.000Z","dependencies_parsed_at":"2025-03-09T04:36:11.303Z","dependency_job_id":null,"html_url":"https://github.com/franklioxygen/MyTube","commit_stats":null,"previous_names":["franklioxygen/mytube"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/franklioxygen/MyTube","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franklioxygen%2FMyTube","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franklioxygen%2FMyTube/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franklioxygen%2FMyTube/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franklioxygen%2FMyTube/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/franklioxygen","download_url":"https://codeload.github.com/franklioxygen/MyTube/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franklioxygen%2FMyTube/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279005645,"owners_count":26083940,"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-10-10T02:00:06.843Z","response_time":62,"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":["bilibili","bilibili-download","docker","nas","video-hosting","video-player","youtube","youtube-dl","youtube-downloader"],"created_at":"2025-03-22T11:24:57.796Z","updated_at":"2025-10-11T00:08:24.800Z","avatar_url":"https://github.com/franklioxygen.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MyTube\n\nA YouTube/Bilibili video downloader and player application that allows you to download and save YouTube/Bilibili videos locally, along with their thumbnails. Organize your videos into collections for easy access and management.\n\n[中文](README-zh.md)\n\n![Mar-08-2025 22-51-31](https://github.com/user-attachments/assets/1ca764ce-2787-4611-a5b6-a5f70413ea52)\n\n![Screenshot 2025-03-08 at 11 12 54 PM](https://github.com/user-attachments/assets/434adbdf-4b08-4641-86e3-c43c1592aea6)\n![Screenshot 2025-03-08 at 11 13 01 PM](https://github.com/user-attachments/assets/2b38a711-da32-4fc5-baa5-be66e3b8dcfa)\n![Screenshot 2025-03-08 at 11 13 16 PM](https://github.com/user-attachments/assets/7d010b67-6dac-45db-82d2-b9620915e2e2)\n\n## Features\n\n- Download YouTube and Bilibili videos with a simple URL input\n- Automatically save video thumbnails\n- Browse and play downloaded videos\n- View videos by specific authors\n- Organize videos into collections\n- Add videos to multiple collections\n- Responsive design that works on all devices\n\n## Directory Structure\n\n```\nmytube/\n├── backend/             # Express.js backend\n│   ├── uploads/         # Uploaded files directory\n│   │   ├── videos/      # Downloaded videos\n│   │   └── images/      # Downloaded thumbnails\n│   └── server.js        # Main server file\n├── frontend/            # React.js frontend\n│   ├── src/             # Source code\n│   │   ├── components/  # React components\n│   │   └── pages/       # Page components\n│   └── index.html       # HTML entry point\n├── start.sh             # Unix/Mac startup script\n├── start.bat            # Windows startup script\n└── package.json         # Root package.json for running both apps\n```\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js (v14 or higher)\n- npm (v6 or higher)\n\n### Installation\n\n1. Clone the repository:\n\n   ```\n   git clone \u003crepository-url\u003e\n   cd mytube\n   ```\n\n2. Install dependencies:\n\n   ```\n   npm install\n   cd frontend \u0026\u0026 npm install\n   cd ../backend \u0026\u0026 npm install\n   ```\n\n   This will install dependencies for the root project, frontend, and backend.\n\n#### Using npm Scripts\n\nAlternatively, you can use npm scripts:\n\n```\nnpm run dev       # Start both frontend and backend in development mode\n```\n\nOther available scripts:\n\n```\nnpm run start     # Start both frontend and backend in production mode\nnpm run build     # Build the frontend for production\n```\n\n### Accessing the Application\n\n- Frontend: http://localhost:5556\n- Backend API: http://localhost:5551\n\n## API Endpoints\n\n- `POST /api/download/youtube` - Download a YouTube video\n- `POST /api/download/bilibili` - Download a Bilibili video\n- `GET /api/videos` - Get all downloaded videos\n- `GET /api/videos/:id` - Get a specific video\n- `DELETE /api/videos/:id` - Delete a video\n- `GET /api/collections` - Get all collections\n- `POST /api/collections` - Create a new collection\n- `PUT /api/collections/:id` - Update a collection\n- `DELETE /api/collections/:id` - Delete a collection\n- `POST /api/collections/:id/videos` - Add a video to a collection\n- `DELETE /api/collections/:id/videos/:videoId` - Remove a video from a collection\n\n## Collections Feature\n\nMyTube allows you to organize your videos into collections:\n\n- **Create Collections**: Create custom collections to categorize your videos\n- **Add to Collections**: Add videos to one or more collections directly from the video player\n- **Remove from Collections**: Remove videos from collections with a single click\n- **Browse Collections**: View all your collections in the sidebar and browse videos by collection\n\n## User Interface\n\nThe application features a modern, dark-themed UI with:\n\n- Responsive design that works on desktop and mobile devices\n- Video grid layout for easy browsing\n- Video player with collection management\n- Author and collection filtering\n- Search functionality for finding videos\n\n## Environment Variables\n\nThe application uses environment variables for configuration. Here's how to set them up:\n\n### Frontend (.env file in frontend directory)\n\n```\nVITE_API_URL=http://localhost:5551/api\nVITE_BACKEND_URL=http://localhost:5551\nVITE_APP_PORT=5556\n```\n\n### Backend (.env file in backend directory)\n\n```\nPORT=5551\nUPLOAD_DIR=uploads\nVIDEO_DIR=uploads/videos\nIMAGE_DIR=uploads/images\nMAX_FILE_SIZE=500000000\n```\n\nCopy the `.env.example` files in both frontend and backend directories to create your own `.env` files and replace the placeholders with your desired values.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffranklioxygen%2Fmytube","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffranklioxygen%2Fmytube","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffranklioxygen%2Fmytube/lists"}