You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
RedditVideoMakerBot/README.md

244 lines
7.6 KiB

# 🇻🇳 Threads Video Maker Bot - Phiên Bản Việt Nam 🎥
Tạo video tự động từ nội dung **Threads (Meta)** và đăng lên **TikTok**, **YouTube**, **Facebook**.
Được phát triển dựa trên nền tảng Reddit Video Maker Bot, tối ưu hóa cho thị trường Việt Nam.
## Tính Năng Chính ✨
- 📱 **Threads Integration**: Lấy nội dung tự động từ Threads (Meta) thay vì Reddit
- 🎙️ **TTS Tiếng Việt**: Hỗ trợ đọc tiếng Việt qua Google Translate TTS, OpenAI, và nhiều engine khác
- 📤 **Auto-Upload**: Tự động đăng video lên TikTok, YouTube, Facebook
-**Lên Lịch Tự Động**: Cron-based scheduling với múi giờ Việt Nam
- 🎬 **Video Chất Lượng**: Background gaming, nhạc nền lofi, subtitle overlay
- 🔄 **Pipeline Hoàn Chỉnh**: Từ lấy nội dung → TTS → Screenshot → Video → Upload
## Cài Đặt 🛠️
### Yêu Cầu
- Python 3.10, 3.11 hoặc 3.12
- FFmpeg
- Tài khoản Threads Developer (Meta)
### Bước 1: Clone và cài đặt
```bash
git clone https://github.com/thaitien280401-stack/RedditVideoMakerBot.git
cd RedditVideoMakerBot
pip install -r requirements.txt
```
### Bước 2: Cấu hình
Chạy lần đầu để tạo file `config.toml`:
```bash
python main.py
```
Hoặc copy từ template:
```bash
cp utils/.config.template.toml config.toml
```
### Bước 3: Điền thông tin API
Chỉnh sửa `config.toml`:
```toml
[threads.creds]
access_token = "YOUR_THREADS_ACCESS_TOKEN"
user_id = "YOUR_THREADS_USER_ID"
[settings.tts]
voice_choice = "googletranslate" # Hỗ trợ tiếng Việt tốt nhất
```
## Sử Dụng 🚀
### Chế độ Manual (Mặc định)
```bash
python main.py
```
### Chế độ Auto (Tạo + Upload)
```bash
python main.py --mode auto
```
### Chế độ Scheduled (Lên lịch tự động)
```bash
python main.py --mode scheduled
```
### Legacy Reddit Mode
```bash
python main.py --reddit
```
## Cấu Hình Upload 📤
### YouTube
```toml
[uploaders.youtube]
enabled = true
client_id = "YOUR_GOOGLE_CLIENT_ID"
client_secret = "YOUR_GOOGLE_CLIENT_SECRET"
refresh_token = "YOUR_GOOGLE_REFRESH_TOKEN"
```
### TikTok
```toml
[uploaders.tiktok]
enabled = true
client_key = "YOUR_TIKTOK_CLIENT_KEY"
client_secret = "YOUR_TIKTOK_CLIENT_SECRET"
refresh_token = "YOUR_TIKTOK_REFRESH_TOKEN"
```
### Facebook
```toml
[uploaders.facebook]
enabled = true
page_id = "YOUR_FACEBOOK_PAGE_ID"
access_token = "YOUR_FACEBOOK_PAGE_ACCESS_TOKEN"
```
## Cấu Hình Scheduler ⏰
```toml
[scheduler]
enabled = true
cron = "0 8,14,20 * * *" # Chạy lúc 8h, 14h, 20h hàng ngày
timezone = "Asia/Ho_Chi_Minh"
max_videos_per_day = 4
```
## Kiến Trúc Hệ Thống 🏗️
```
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Threads API │────▶│ Video Engine │────▶│ Upload Manager │
│ (Meta Graph) │ │ TTS + FFmpeg │ │ YT/TT/FB APIs │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
threads/ video_creation/ uploaders/
threads_client.py threads_screenshot.py youtube_uploader.py
voices.py tiktok_uploader.py
final_video.py facebook_uploader.py
upload_manager.py
scheduler/
pipeline.py (APScheduler)
```
you will then have to upload manually. This is for the sake of avoiding any sort of community guideline issues.
## Requirements
- Python 3.10
- Playwright (this should install automatically in installation)
## Installation 👩‍💻
1. Clone this repository:
```sh
git clone https://github.com/elebumm/RedditVideoMakerBot.git
cd RedditVideoMakerBot
```
2. Create and activate a virtual environment:
- On **Windows**:
```sh
python -m venv ./venv
.\venv\Scripts\activate
```
- On **macOS and Linux**:
```sh
python3 -m venv ./venv
source ./venv/bin/activate
```
3. Install the required dependencies:
```sh
pip install -r requirements.txt
```
4. Install Playwright and its dependencies:
```sh
python -m playwright install
python -m playwright install-deps
```
---
**EXPERIMENTAL!!!!**
- On macOS and Linux (Debian, Arch, Fedora, CentOS, and based on those), you can run an installation script that will automatically install steps 1 to 3. (requires bash)
- `bash <(curl -sL https://raw.githubusercontent.com/elebumm/RedditVideoMakerBot/master/install.sh)`
- This can also be used to update the installation
---
5. Run the bot:
```sh
python main.py
```
6. Visit [the Reddit Apps page](https://www.reddit.com/prefs/apps), and set up an app that is a "script". Paste any URL in the redirect URL field, for example: `https://jasoncameron.dev`.
7. The bot will prompt you to fill in your details to connect to the Reddit API and configure the bot to your liking.
8. Enjoy 😎
9. If you need to reconfigure the bot, simply open the `config.toml` file and delete the lines that need to be changed. On the next run of the bot, it will help you reconfigure those options.
(Note: If you encounter any errors installing or running the bot, try using `python3` or `pip3` instead of `python` or `pip`.)
For a more detailed guide about the bot, please refer to the [documentation](https://reddit-video-maker-bot.netlify.app/).
## Video
https://user-images.githubusercontent.com/66544866/173453972-6526e4e6-c6ef-41c5-ab40-5d275e724e7c.mp4
## Contributing & Ways to improve 📈
In its current state, this bot does exactly what it needs to do. However, improvements can always be made!
I have tried to simplify the code so anyone can read it and start contributing at any skill level. Don't be shy :) contribute!
- [ ] Creating better documentation and adding a command line interface.
- [x] Allowing the user to choose background music for their videos.
- [x] Allowing users to choose a reddit thread instead of being randomized.
- [x] Allowing users to choose a background that is picked instead of the Minecraft one.
- [x] Allowing users to choose between any subreddit.
- [x] Allowing users to change voice.
- [x] Checks if a video has already been created
- [x] Light and Dark modes
- [x] NSFW post filter
Please read our [contributing guidelines](CONTRIBUTING.md) for more detailed information.
### For any questions or support join the [Discord](https://discord.gg/qfQSx45xCV) server
## Developers and maintainers.
Elebumm (Lewis#6305) - https://github.com/elebumm (Founder)
Jason Cameron - https://github.com/JasonLovesDoggo (Maintainer)
Simon (OpenSourceSimon) - https://github.com/OpenSourceSimon
CallumIO (c.#6837) - https://github.com/CallumIO
Verq (Verq#2338) - https://github.com/CordlessCoder
LukaHietala (Pix.#0001) - https://github.com/LukaHietala
Freebiell (Freebie#3263) - https://github.com/FreebieII
Aman Raza (electro199#8130) - https://github.com/electro199
Cyteon (cyteon) - https://github.com/cyteon
## LICENSE
[Roboto Fonts](https://fonts.google.com/specimen/Roboto/about) are licensed under [Apache License V2](https://www.apache.org/licenses/LICENSE-2.0)