{"id":30363747,"url":"https://github.com/pedroestevaodev/bot-maker","last_synced_at":"2026-05-08T09:34:15.795Z","repository":{"id":54882044,"uuid":"329920216","full_name":"pedroestevaodev/bot-maker","owner":"pedroestevaodev","description":"This project is inspired by Filipe Deschamps' series and combines several technologies to create a bot that automatically generates and uploads videos to YouTube.","archived":false,"fork":false,"pushed_at":"2025-05-16T01:35:12.000Z","size":6029,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-19T19:44:18.262Z","etag":null,"topics":["after-effects","api","automation","bot","felipe-deschamps","google","google-api","google-cloud-platform","javascript","nodejs","watson","youtube"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/playlist?list=PLMdYygf53DP4YTVeu0JxVnWq01uXrLwHi","language":"JavaScript","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/pedroestevaodev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2021-01-15T13:30:13.000Z","updated_at":"2025-05-16T01:35:15.000Z","dependencies_parsed_at":"2025-04-30T20:48:56.801Z","dependency_job_id":"a7330a9a-4c47-4d00-be45-c21437b060a1","html_url":"https://github.com/pedroestevaodev/bot-maker","commit_stats":null,"previous_names":["pedroestevaodev/bot-maker","pedro-estevao/bot-maker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pedroestevaodev/bot-maker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedroestevaodev%2Fbot-maker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedroestevaodev%2Fbot-maker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedroestevaodev%2Fbot-maker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedroestevaodev%2Fbot-maker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pedroestevaodev","download_url":"https://codeload.github.com/pedroestevaodev/bot-maker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedroestevaodev%2Fbot-maker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32775024,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["after-effects","api","automation","bot","felipe-deschamps","google","google-api","google-cloud-platform","javascript","nodejs","watson","youtube"],"created_at":"2025-08-19T19:20:28.224Z","updated_at":"2026-05-08T09:34:15.759Z","avatar_url":"https://github.com/pedroestevaodev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# YouTube Video Automation Bot  \n\n\u003cp style=\"text-align: center;\"\u003e  \n    \u003ca href=\"https://www.pedroestevao.com\"\u003e  \n        \u003cimg src=\"https://res.cloudinary.com/dge3g9rcw/image/upload/v1740089731/github/lhl9qlfjt914igxz2dl9.webp\" alt=\"Repository illustration\" /\u003e  \n    \u003c/a\u003e  \n\u003c/p\u003e  \n\nThis project is inspired by **Filipe Deschamps' series** and combines multiple technologies to create a bot that automatically generates and uploads videos to YouTube. Using **IBM Watson, Adobe After Effects, Wikipedia, Google Images API, Algorithmia, JavaScript, and Node.js**, this bot performs the following automated tasks:  \n\n- Collects text from Wikipedia.\n- Downloads and resizes images from Google Images.  \n- Creates videos using After Effects templates in a headless environment.  \n- Fully uploads to YouTube, including title, description, tags, and thumbnail.  \n\n## Technologies Used  \n\n- **IBM Watson**: Text-to-speech processing and data analysis.  \n- **Adobe After Effects**: Video editing and rendering via script.  \n- **Wikipedia API**: Source of text for the videos.  \n- **Google Images API**: Retrieves images related to the content.  \n- **Algorithmia**: Automated image and data processing.  \n- **JavaScript/Node.js**: Core logic of the bot and process automation.  \n\n## Features  \n\n1. **Data Collection**: The bot uses the Wikipedia API to gather text about a specific topic.  \n2. **Image Downloading**: With the Google Images API, it fetches relevant images and resizes them as needed.  \n3. **Video Creation**: The images and text are inserted into an After Effects template, which is rendered in a headless environment via script.  \n4. **YouTube Upload**: The generated video is automatically uploaded to YouTube, including title, description, tags, and a custom thumbnail.  \n\n## Requirements  \n\n- Node.js  \n- Adobe After Effects with headless scripting support  \n- API Key for Google Images and Wikipedia  \n- IBM Watson account for text-to-speech (optional)  \n\n## Installation  \n\n1. Clone this repository:  \n\n   ```bash  \n   git clone https://github.com/pedroestevaodev/bot-maker.git\n   cd bot-maker\n   ```  \n\n2. Install dependencies:  \n\n   ```bash  \n   npm install  \n   ```  \n\n## API: Algorithmia\n\nTo test the bots, you need to create your access key. Visit [Algorithmia](https://algorithmia.com/) and sign up. After logging into your account, go to the **Dashboard**, find **API Keys** in the menu, and **copy your key**.\n\nIn the project, navigate to the **./credentials** folder and create a file named `algorithmia.json`. Then, add your API key as follows:\n\n```json\n{\n   \"apiKey\": \"YOUR_API_KEY_HERE\"\n}\n```\n\n## API: Watson\n\nSimilarly, go to [IBM](https://cloud.ibm.com/login) and obtain your **Watson** credentials.\n\nOnce logged in, go to **Catalog \u003e AI \u003e Natural Language Understanding**. Click *Create* on the new page. Then, in the side menu, look for **Service Credentials**.\n\nWith the credentials in hand, create a `watson-nlu.json` file inside **./credentials**:\n\n```json\n{\n   \"apikey\": \"...\",\n   \"iam_apikey_description\": \"...\",\n   \"iam_apikey_name\": \"...\",\n   \"iam_role_crn\": \"...\",\n   \"iam_serviceid_crn\": \"...\",\n   \"url\": \"...\"\n}\n```\n\n## Setup: Google Cloud Platform\n\nBefore creating the APIs, you must link your Google account with [Google Cloud Platform](https://cloud.google.com/). Log into **Google Cloud Platform**, click **Start Free Trial**, and accept the **Terms and Conditions**.\n\n\u003e **Note:** Some **Google Cloud Platform** resources require payment information, but we will only use the **free** resources.\n\n### Creating a Project\n\nNow, let's create a project to link the APIs. Click **Select Project** at the top of the page, then **New Project**. Name the project and click **Create**.\n\nOnce the project is created, it will appear in a menu where you can select it.\n\n### API: Custom Search API\n\nWith the project created, let's enable and configure the API. Click on **APIs \u0026 Services \u003e Library** in the left menu.\n\nSearch for **Custom Search API**, click **Enable**, and wait for activation.\n\nOnce activated, a message will prompt you to create API credentials. Click **Create Credentials**.\n\nSelect **Custom Search API** from the dropdown and click **What credentials do I need?**.\n\nCopy your API Key, click **Done**, and return to the project folder. Navigate to **./credentials** and create a new file called **google-search.json** with the following content:\n\n```json\n{\n   \"apiKey\": \"YOUR_API_KEY_HERE\"\n}\n```\n\n## API: Custom Search Engine\n\nNow, let's configure a custom Google search engine. Visit [Custom Search Engine](https://cse.google.com/cse/create/new), enter **google.com** as the **site to search**, choose your preferred language, and click **Advanced Options**. Select the most generic **Thing** schema and click **Create**.\n\n\u003e **Note:** Learn more about schemas at [schema.org](https://schema.org/docs/full.html).\n\nNext, go to **Control Panel**, enable **Image Search**, and click **Copy to Clipboard**.\n\nBack in **google-search.json**, add a new property with the search engine ID, resulting in:\n\n```json\n{\n   \"apiKey\": \"YOUR_API_KEY_HERE\",\n   \"searchEngineId\": \"YOUR_SEARCH_ENGINE_ID\"\n}\n```\n\n## API: YouTube\n\nNow, let's set up the YouTube API. The process is similar to Custom Search API.\n\nGo to [Google Cloud](https://cloud.google.com/) and enable the **YouTube API**. Click **APIs \u0026 Services \u003e Library**, search for **YouTube**, and click **Enable**.\n\n\u003e **Note:** In the tutorial, it is recommended to create a new project specifically for the YouTube API.\n\nClick **OAuth Consent Screen** and enter only the **Application Name** (you can customize other fields later).\n\nGo to **Create Credentials \u003e OAuth Client ID**, select **Web Application**, choose an **Application Name**, and enter the following:\n\n- **Authorized JavaScript origins:** `http://localhost:5000`\n- **Authorized redirect URIs:** `http://localhost:5000/oauth2callback`\n\nClick **Create**.\n\nA window will appear with your credentials. Click **OK**, then download the credentials file, rename it to **google-youtube.json**, and save it inside the **./credentials** folder.\n\n## How to Use  \n\n1. Run the bot:  \n\n   ```bash  \n   node index.js\n   ```  \n\n2. The bot will automatically collect data, create the video, and upload it to your YouTube channel.\n\n## Contribution  \n\nContributions are welcome! Feel free to open issues and submit pull requests.  \n\n## License  \n\nThis project is licensed under the **MIT License**.  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedroestevaodev%2Fbot-maker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpedroestevaodev%2Fbot-maker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedroestevaodev%2Fbot-maker/lists"}