liufuhua007

add readme

Showing 1 changed file with 291 additions and 0 deletions
1 +# xj-marketing
2 +social-auto-upload 该项目旨在自动化发布视频到各个社交媒体平台
3 +
4 +social-auto-upload This project aims to automate the posting of videos to various social media platforms.
5 +
6 +
7 +## 💡Feature
8 +- 中国主流社交媒体平台:
9 + - [x] 抖音
10 + - [x] 视频号
11 + - [x] bilibili
12 + - [x] 小红书
13 + - [x] 快手
14 + - [ ] 百家号
15 + - [ ] 网易号
16 +
17 +- 部分国外社交媒体:
18 + - [x] tiktok
19 + - [ ] youtube
20 +
21 +---
22 +- [ ] 易用版本(支持非开发人员使用):Gui or Cli
23 +- [ ] API 封装
24 + - [ ] Docker 部署
25 +- [ ] 自动化上传(schedule)
26 +- [x] 定时上传(cron)
27 +- [ ] cookie 管理
28 +- [ ] 国外平台proxy 设置
29 +- [ ] 多线程上传
30 +- [ ] slack 推送
31 +
32 +
33 +# 💾Installation
34 +```
35 +pip install -r requirements.txt
36 +playwright install chromium firefox
37 +```
38 +
39 +
40 +# 核心模块解释
41 +
42 +### 1. 视频文件准备(video prepare)
43 +filepath 本地视频目录,目录包含(filepath Local video directory containing)
44 +
45 +- 视频文件(video files)
46 +- 视频meta信息txt文件(video meta information txt file)
47 +
48 +举例(for example):
49 +
50 +file:2023-08-24_16-29-52 - 这位勇敢的男子为了心爱之人每天坚守 .mp4
51 +
52 +meta_file:2023-08-24_16-29-52 - 这位勇敢的男子为了心爱之人每天坚守 .txt
53 +
54 +meta_file 内容(content):
55 +```angular2html
56 +这位勇敢的男子为了心爱之人每天坚守 🥺❤️‍🩹
57 +#坚持不懈 #爱情执着 #奋斗使者 #短视频
58 +```
59 +
60 +### Usage
61 +1. 设置conf 文件中的 `LOCAL_CHROME_PATH`(在douyin、视频号 tiktok可能出现chromium 不兼容的各种问题,建议设置本地的chrome)
62 +2. 这里分割出来3条路
63 + - 可自行研究源码,免费、任意 穿插在自己的项目中
64 + - 可参考下面的各个平台的使用指南,`examples`文件夹中有各种示例代码
65 + - 使用cli 简易使用(支持tiktok douyin 视频号)
66 +
67 +#### cli 用法
68 +```python
69 +python cli_main.py <platform> <account_name> <action: upload, login> [options]
70 +```
71 +查看详细的参数说明使用:
72 +```python
73 +python cli_main.py -h
74 +```
75 +```python
76 +usage: cli_main.py [-h] platform account_name action ...
77 +
78 +Upload video to multiple social-media.
79 +
80 +positional arguments:
81 + platform Choose social-media platform: douyin tencent tiktok kuaishou
82 + account_name Account name for the platform: xiaoA
83 + action Choose action
84 + upload upload operation
85 + login login operation
86 + watch watch operation
87 +
88 +options:
89 + -h, --help show this help message and exit
90 +
91 +```
92 +示例
93 +```python
94 +python cli_main.py douyin test login
95 +douyin平台,账号名为test,动作为login
96 +
97 +python cli_main.py douyin test upload "C:\Users\duperdog\Videos\2023-11-07_05-27-44 - 这位少女如梦中仙... .mp4" -pt 0
98 +douyin平台, 账号名为test, 动作为upload, 视频文件(需对应的meta文件,详见上), 发布方式(pt):0 立即发布
99 +
100 +python cli_main.py douyin test upload "C:\Users\superdog\Videos\2023-11-07_05-27-44 - 这位少女如梦中仙... .mp4" -pt 1 -t "2024-6-14 12:00"
101 +douyin平台, 账号名为test, 动作为upload, 视频文件, 发布方式(pt):1 定时发布, 发布时间(t) 2024-6-14 12:00
102 +```
103 +
104 +---
105 +
106 +## 各平台详细说明
107 +
108 +### 1. 抖音
109 +<img src="media/show/pdf3.gif" alt="douyin show" width="500"/>
110 +
111 +使用playwright模拟浏览器行为
112 +> 抖音前端实现,诸多css class id 均为随机数,故项目中locator多采用相对定位,而非固定定位
113 +1. 准备视频目录结构
114 +2. cookie获取:get_douyin_cookie.py 扫码登录
115 +3. 上传视频:upload_video_to_douyin.py
116 +
117 +
118 +
119 +其他部分解释:
120 +```
121 +douyin_setup handle 参数为True,为手动获取cookie False 则是校验cookie有效性
122 +
123 +generate_schedule_time_next_day 默认从第二天开始(此举为避免选择时间的意外错误)
124 +参数解释:
125 +- total_videos 本次上传视频个数
126 +- videos_per_day 每日上传视频数量
127 +- daily_times 视频发布时间 默认6、11、14、16、22点
128 +- start_days 从第N天开始
129 +```
130 +
131 +> 2023年12月15日补充:使用chromium可能会出现无法识别视频封面图片的情况
132 +> 解决方案:
133 +> 1. 下载chrome
134 +> 2. 找到chrome的安装目录
135 +> 3. 将本地chrome 路径conf文件中 LOCAL_CHROME_PATH = "xxx/xxx/chrome.exe"
136 +
137 +
138 +参考项目:
139 +- https://github.com/wanghaisheng/tiktoka-studio-uploader
140 +- https://github.com/Superheroff/douyin_uplod
141 +- https://github.com/lishang520/DouYin-Auto-Upload.git
142 +
143 +---
144 +
145 +### 2. 视频号
146 +使用playwright模拟浏览器行为
147 +1. 准备视频目录结构
148 +2. cookie获取:get_tencent_cookie.py 扫码登录
149 +3. 上传视频:upload_video_to_tencent.py
150 +
151 +
152 +
153 +其他部分解释:
154 +```
155 +参考上面douyin_setup 配置
156 +```
157 +
158 +> 视频号使用chromium会出现不支持上传视频,需要自行指定本地浏览器
159 +> 解决方案:
160 +> 1. 下载chrome
161 +> 2. 找到chrome的安装目录
162 +> 3. 将本地chrome 路径conf文件中 LOCAL_CHROME_PATH = "xxx/xxx/chrome.exe"
163 +
164 +---
165 +
166 +
167 +### 3. 小红书
168 +该实现,借助ReaJason的[xhs](https://github.com/ReaJason/xhs),再次感谢。
169 +
170 +1. 目录结构同上
171 +2. cookie获取,可使用chrome插件:EditThisCookie
172 +- 设置导出格式
173 +![Alt text](media/20231009111131.png)
174 +- 导出
175 +![Alt text](media/20231009111214.png)
176 +3. 黏贴至 uploader/xhs_uploader/accounts.ini文件中
177 +
178 +
179 +#### 解释与注意事项:
180 +
181 +```
182 +xhs签名方式分为两种:
183 +- 本地签名 sign_locl (默认)
184 +- 自建签名服务 sign
185 +
186 +测试下来发现本地签名,在实际多账号情况下会存在问题
187 +故如果你有多账号分发,建议采用自建签名服务(todo 上传docker配置)
188 +```
189 +##### 疑难杂症
190 +遇到签名问题,可尝试更新 "utils/stealth.min.js"文件
191 +https://github.com/requireCool/stealth.min.js
192 +
193 +24.4.10 大多数人小红书失败的原因在于你的cookie有问题,请参照你cookie是不是如我这样
194 +![正确的cookie](media/xhs_error_cookie.png)
195 +
196 +关于xhs部分可参考作者: https://reajason.github.io/xhs/basic
197 +
198 +##### todo
199 +- 扫码登录方式(实验下来发现与浏览器获取的存在区别,会有问题,未来再研究)
200 +
201 +
202 +参考项目:
203 +- https://github.com/ReaJason/xhs
204 +
205 +---
206 +
207 +### 4. bilibili
208 +该实现,借助biliup的[biliup-rs](https://github.com/biliup/biliup-rs),再次感谢。
209 +1. 准备视频目录结构
210 +2. cookie获取:`biliup.exe -u account.json login` 选项你喜欢的登录方式
211 +![登录方式](media/get_bili_cookie.png)
212 +3. 上传视频:upload_video_to_bilibili.py
213 +
214 +#### 解释与注意事项:
215 +
216 +```
217 +bilibili cookie 长期有效(至少我运行2年以来是这样的)
218 +其他平台 诸如linux mac 服务器运行 请自行研究
219 +```
220 +参考项目:
221 +- https://github.com/biliup/biliup-rs
222 +
223 +---
224 +
225 +### 5. tiktok
226 +使用playwright模拟浏览器行为(Simulating Browser Behavior with playwright)
227 +1. 准备视频目录结构(Prepare the video directory structure)
228 +2. 将本地chrome路径配置到conf文件中 LOCAL_CHROME_PATH = "xxx/xxx/chrome.exe"(Configure the local chrome path to the conf file)
229 +3. cookie获取(generate your cookie):get_tk_cookie.py
230 +![get tiktok cookie](media/tk_login.png)
231 +4. 上传视频(upload video):upload_video_to_tiktok.py
232 +
233 +24.7.3 update local chrome support:
234 +- you can upload your custom thumbnail(place `png` file at the path of `videos`)
235 +- if not, the system will take the first frame of the video as the thumbnail.
236 +- chrome drive can't login by gmail oauth. the google don't support it. (if you want login by google oauth you can use the `tk_uploader/main.py` old firefox.)
237 +- before the upload process change the language to eng.
238 +
239 +其他部分解释:
240 +```
241 +参考上面douyin_setup 配置
242 +```
243 +
244 +other part explain(for eng friends):
245 +```
246 +tiktok_setup handle parameter is True to get cookie manually False to check cookie validity
247 +
248 +generate_schedule_time_next_day defaults to start on the next day (this is to avoid accidental time selection errors)
249 +Parameter explanation:
250 +- total_videos Number of videos uploaded this time
251 +- videos_per_day Number of videos uploaded per day
252 +- daily_times The video posting times are 6, 11, 14, 16, 22 by default.
253 +- start_days Starts on the nth day.
254 +```
255 +参考项目:
256 +- https://github.com/wkaisertexas/tiktok-uploader
257 +
258 +---
259 +
260 +### 其余部分(todo)
261 +整理后上传
262 +
263 +---
264 +
265 +## 其他优秀项目
266 +- https://github.com/KLordy/auto_publish_videos
267 + - db支持
268 + - 定期自动发布
269 + - cookie db管理
270 + - 视频去重
271 + - 消息推送
272 +
273 +
274 +## 🐾Communicate
275 +[Donate as u like](https://www.buymeacoffee.com/hysn2001m)
276 +
277 +如果你也是`一个人`,喜欢`折腾`, 想要在如此恶劣的大环境寻找突破
278 +
279 +希望探索 #技术变现 #AI创业 #跨境航海 #自动化上传 #自动化视频 #技术探讨
280 +
281 +可以来群里和大家交流
282 +
283 +|![Nas](media/mp.jpg)|![赞赏](media/QR.png)|
284 +|:-:|:-:|
285 +|后台回复 `上传` 加群交流|如果你觉得有用|
286 +
287 +
288 +## Star History
289 +> 如果这个项目对你有帮助,⭐以表示支持
290 +
291 +[![Star History Chart](https://api.star-history.com/svg?repos=dreammis/social-auto-upload&type=Date)](https://star-history.com/#dreammis/social-auto-upload&Date)
...\ No newline at end of file ...\ No newline at end of file