{"id":26284620,"url":"https://github.com/youssef-ben/video-converter","last_synced_at":"2026-01-24T19:54:30.330Z","repository":{"id":38984377,"uuid":"253147964","full_name":"Youssef-ben/video-converter","owner":"Youssef-ben","description":"The Online video converter is a web/desktop application that will allows you to download youtube videos as MP4s or convert them to MP3s without any restriction.","archived":false,"fork":false,"pushed_at":"2024-09-07T22:43:20.000Z","size":12542,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-07T12:45:07.459Z","etag":null,"topics":["ffmpeg","fluent-ffmpeg","react-bootstrap","reactjs","ytdl-core"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/Youssef-ben.png","metadata":{"files":{"readme":"ReadMe.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2020-04-05T03:29:35.000Z","updated_at":"2024-10-31T13:49:00.000Z","dependencies_parsed_at":"2025-03-14T18:37:05.820Z","dependency_job_id":null,"html_url":"https://github.com/Youssef-ben/video-converter","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/Youssef-ben/video-converter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youssef-ben%2Fvideo-converter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youssef-ben%2Fvideo-converter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youssef-ben%2Fvideo-converter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youssef-ben%2Fvideo-converter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Youssef-ben","download_url":"https://codeload.github.com/Youssef-ben/video-converter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youssef-ben%2Fvideo-converter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28735519,"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":["ffmpeg","fluent-ffmpeg","react-bootstrap","reactjs","ytdl-core"],"created_at":"2025-03-14T18:37:00.464Z","updated_at":"2026-01-24T19:54:30.315Z","avatar_url":"https://github.com/Youssef-ben.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Videos and youtube converter\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Youssef-ben/video-converter\"\u003e\n    \u003cimg\n      src=\"./assets/images/logo.png\"\n      alt=\"Videos and youtube converter\"\n      width=\"200\"\n      style=\"max-width: 100%; border-radius: 50%;\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n![vytc workflow](https://github.com/Youssef-ben/video-converter/actions/workflows/vytc-ci.yml/badge.svg)\n\n## Purpose\n\nThe idea of this project came from the fact that most of the free tools that exist on the have some restrictions like the length of the video, must watch ads, or a confusion UI with a lot of download buttons. With this, the need to create a free tool that has none of the inconvenience or restrictions like the others became stronger.\n\nThe **Videos and youtube converter** is a web/server application that will allows you to download youtube videos as `MP4s` or convert them to `MP3s` without any restriction.\n\n## Disclaimer\n\nThis application should be used for **non-copyrighted** and open-source videos only and should be for personal use only.\n\nIf you wish to use any copyrighted videos from Youtube you must obtain expressed permission from the copyright owner.\n\n## Future Improvements\n\n- [ ] Make a desktop app using electron.\n- [ ] Add multiple videos to be downloaded.\n- [ ] Allow users to browse files to convert.\n\n## Project structure\n\n```mk\nvideo-converter\n|  +-- src/                         # vytc source code projects\n|  |  +-- Clients/                  # vytc client apps.\n|  |      +-- common                # vytc common library used by the web and mobile.\n|  |      +-- mobile                # vytc mobile app using React Native\n|  |      +-- web                   # vytc web app using React\n|  |  +-- Server/                   # vytc Server REST API.\n|\n|  +-- docker/\n|  |  +-- docker-compose.yml\n|  |  +-- Dockerfile\n|\n|  +-- docs/\n|  |  +-- Architectural_design/\n|  |  +-- getting-started.md\n|\n|  +-- Assets/\n|  |  +-- Images/\n|  |  +-- Postman/\n```\n\n## Stack\n\n### Server stack\n\n- NodeJS 16+\n- Express\n- TypeScript\n- Mocha\n- Swagger\n- Tsoa\n- ytdl-core\n- fluent-ffmpeg\n- ffmpeg-static\n- Socket.io.server\n\n### Clients stack\n\n- ReactJS\n- React Native (Expo)\n- TypeScript\n- Semantic UI\n- React router\n- Socket.io.client\n- I18Next\n\n## Getting Started\n\nOnce you've cloned the project make the following changes:\n\n- Create a `.env` file for all the projects based on `.env.example` file for each project.\n\n```bash\nmake generate-env\n```\n\n- Create a configuration file for the Server project `./src/server/src/config/config.\u003cenv\u003e.json`\n  to override the default configuration to your liking.\n\n### Docker\n\nNote:\n\n- You need to have Gnu Make installed.\n- The default Server port is: `3000`\n- The default Client port is: `3001`\n\n```bash\n# Builds the Server and Client images.\nmake build-images\n\n# Start the Server and Client containers.\nmake start\n\n# Stop the Server and Client containers.\nmake stop\n\n# Remove the Server and Client containers\nmake remove\n\n# Stops and remove the Server and Client container and delete the images.\nmake clean\n```\n\n### Yarn\n\nRunning the project in debug mode.\n\n#### Server\n\n##### Open a new instance of the Server vsCode editor\n\n```bash\nmake open-server\n```\n\n##### Start Server\n\nUse the following commands to start the `Server`:\n\n```bash\n# Install the dependencies.\nyarn\n\n# Start the server.\nyarn start\n```\n\n#### Client\n\n##### Open a new instance of the Client vsCode editor\n\n```bash\nmake open-client\n```\n\n##### Start Client\n\nUse the following commands to start the `Client`:\n\n```bash\n# Install the dependencies.\nyarn\n\n# Start the client.\nyarn start\n```\n\n## Preview\n\n### Web application\n\n![Preview login](assets/images/screenshots/1.login.png)\n![Preview video search](assets/images/screenshots/2.home.png)\n![Preview video preview](assets/images/screenshots/3.download.png)\n![Preview download](assets/images/screenshots/4.download-progress.png)\n![Preview download finished](assets/images/screenshots/5.download-finished.png)\n\n### Mobile application\n\nThe mobile application has two themes `Light` and `Dark`.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg align=\"center\" width=\"30%\" height=\"30%\" style=\"margin-bottom:15px\" src=\"./assets/images/screenshots/1.mobile.login.png\"/\u003e\n  \u003cimg align=\"center\" width=\"30%\" height=\"30%\" style=\"margin-bottom:15px\" src=\"./assets/images/screenshots/2.mobile.home.png\"/\u003e\n  \u003cimg align=\"center\" width=\"30%\" height=\"30%\" style=\"margin-bottom:15px\" src=\"./assets/images/screenshots/3.mobile.download.png\"/\u003e\n  \u003cimg align=\"center\" width=\"30%\" height=\"30%\" style=\"margin-bottom:15px\" src=\"./assets/images/screenshots/4.mobile.download.progress.png\"/\u003e\n  \u003cimg align=\"center\" width=\"30%\" height=\"30%\" style=\"margin-bottom:15px\" src=\"./assets/images/screenshots/5.mobile.download.finshed.png\"/\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoussef-ben%2Fvideo-converter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyoussef-ben%2Fvideo-converter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoussef-ben%2Fvideo-converter/lists"}