ShortVideo.AutoPublisher
ShortVideo.AutoPublisher æ¯å¥å®ç°ïŒæé³ïŒçŸå®¶å·ïŒå°çº¢ä¹ŠïŒè§é¢å·ïŒå€Žæ¡ïŒçå¹³å°çè§é¢èªåšååžçåäœè å·¥å ·ã
Ask AI about ShortVideo.AutoPublisher
Powered by Claude · Grounded in docs
I know everything about ShortVideo.AutoPublisher. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
ShortVideo.AutoPublisher çè§é¢èªåšååžåäœè å·¥å ·
åºäº WPF çå€å¹³å°çè§é¢äžé®ååžè§£å³æ¹æ¡
æºç äžèœœ | OpenClawéæäœ¿çšæå
äžãäº§åæŠè¿°
ShortVideo.AutoPublisher æ¯äžæ¬Ÿäžäžºå 容åäœè è®Ÿè®¡çæ¡é¢åºçšçšåºïŒéè¿éæ OpenClaw AI ä»£çæºåšäººææ¯ïŒå®ç°è§é¢å 容å°å€äžªäž»æµçè§é¢å¹³å°çèªåšåååžã
æ žå¿ä»·åŒ
- æçæåïŒäžæ¬¡çŒèŸïŒå€å¹³å°åæ¥ååžïŒèçéå€æäœæ¶éŽ
- æºèœèªåšåïŒAI驱åšçæµè§åšèªåšåïŒæš¡æçå®çšæ·æäœ
- çš³å®å¯é ïŒçœç»çæ§äžæºèœéè¯æºå¶ïŒç¡®ä¿ååžæåç
- ç»äžç®¡çïŒéäžç®¡çå€å¹³å°èŽŠå·ãè§é¢å 容åååžä»»å¡
æ¯æå¹³å°
| å¹³å° | ç¶æ | åèœæ¯æ |
|---|---|---|
| æé³ | â å·²æ¯æ | è§é¢äžäŒ ãæ é¢/æ çŸ/å°é¢è®Ÿçœ®ãååž |
| å°çº¢ä¹Š | â å·²æ¯æ | è§é¢äžäŒ ãç¬è®°çŒèŸãæ çŸè®Ÿçœ®ãååž |
| çŸå®¶å· | â å·²æ¯æ | è§é¢äžäŒ ãæç« çŒèŸãååž |
| 埮信è§é¢å· | â å·²æ¯æ | è§é¢äžäŒ ãæè¿°çŒèŸãååž |
| 仿¥å€Žæ¡ | â å·²æ¯æ | è§é¢äžäŒ ãæ é¢/æ çŸè®Ÿçœ®ãååž |
å±å¹
äºãç³»ç»æ¶æ
2.1 ææ¯æ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â 衚ç°å± (Views) â
â WPF-UI 3.0.4 · Fluent Design · MVVM â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â è§åŸæš¡åå± (ViewModels) â
â CommunityToolkit.Mvvm · æ°æ®ç»å® â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â æå¡å± (Services) â
â VideoContentService · PublishService · ... â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â OpenClaw AI ä»£çæš¡å â
â IAiAgent · å¹³å°ä»£ç · ä»»å¡è°åºŠåš · æµè§åšç®¡ç â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â åºç¡è®Ÿæœå± (Infrastructure) â
â SQLite/Dapper · NetworkMonitor · FileDownloader â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â é¢åå± (Domain) â
â å®äœ · æäžŸ · ä»åšæ¥å£ · é¢åäºä»¶ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
2.2 æ žå¿äŸèµ
| ç»ä»¶ | çæ¬ | çšé |
|---|---|---|
| .NET | 8.0 | è¿è¡æ¶æ¡æ¶ |
| WPF-UI | 3.0.4 | ç°ä»£å UI ç»ä»¶åº |
| Microsoft.Playwright | 1.40.0 | æµè§åšèªåšå |
| SQLite | 1.0.118 | æ¬å°æ°æ®ååš |
| Dapper | 2.1.35 | 蜻é级 ORM |
| Polly | 8.2.0 | 匹æ§åç¬ææ éå€ç |
| SixLabors.ImageSharp | 3.1.6 | åŸçå€çïŒå°é¢è£åïŒ |
| Serilog | 3.1.1 | ç»æåæ¥å¿ |
2.3 项ç®ç»æ
src/
âââ ShortVideo.AutoPublisher/ # WPF æ¡é¢åºçš
â âââ Core/ # æ žå¿åºç¡è®Ÿæœ
â â âââ Configuration/ # åºçšé
眮管ç
â â
â âââ Domain/ # é¢åå±
â â âââ Entities/ # å®äœç±»
â â â âââ VideoContent.cs # è§é¢å
容
â â â âââ PublishTask.cs # ååžä»»å¡
â â â âââ CookieSession.cs # CookieäŒè¯
â â â âââ CoverImage.cs # å°é¢åŸç
â â âââ Enums/ # æäžŸå®ä¹
â â âââ PlatformType.cs # å¹³å°ç±»å
â â âââ PublishTaskStatus.cs # ä»»å¡ç¶æ
â â
â âââ Infrastructure/ # åºç¡è®Ÿæœå±
â â âââ Data/ # æ°æ®è®¿é®
â â â âââ AppDbContext.cs # SQLiteäžäžæ
â â â âââ Repositories/ # ä»åšå®ç°
â â âââ Network/ # çœç»æå¡
â â â âââ NetworkMonitor.cs # çœç»ç¶æçæ§
â â âââ FileSystem/ # æä»¶ç³»ç»
â â âââ FileDownloader.cs # 倧æä»¶äžèœœåš
â â
â âââ OpenClaw/ # AIä»£çæš¡å
â â âââ Abstractions/ # æœè±¡æ¥å£
â â â âââ IAiAgent.cs # AIä»£çæ¥å£
â â âââ Agents/ # å¹³å°ä»£çå®ç°
â â â âââ AgentBase.cs # 代çåºç±»
â â â âââ DouyinAgent.cs # æé³ä»£ç
â â â âââ XiaohongshuAgent.cs # å°çº¢ä¹Šä»£ç
â â â âââ BaijiahaoAgent.cs # çŸå®¶å·ä»£ç
â â â âââ WeixinChannelAgent.cs # è§é¢å·ä»£ç
â â â âââ ToutiaoAgent.cs # 倎æ¡ä»£ç
â â âââ TaskScheduler/ # ä»»å¡è°åºŠ
â â â âââ PublishTaskScheduler.cs # ä»»å¡è°åºŠåš
â â âââ Browser/ # æµè§åšæ§å¶
â â âââ BrowserManager.cs # Playwright管çåš
â â
â âââ Services/ # åºçšæå¡å±
â â âââ VideoContentService.cs # è§é¢å
容æå¡
â â âââ PublishService.cs # ååžæå¡
â â âââ CookieSessionService.cs # CookieäŒè¯æå¡
â â
â âââ ViewModels/ # è§åŸæš¡åå±
â â âââ Pages/
â â âââ DashboardViewModel.cs # 仪衚ç
â â âââ VideoManageViewModel.cs # è§é¢ç®¡ç
â â âââ PublishTaskViewModel.cs # ååžä»»å¡
â â âââ SettingsViewModel.cs # ç³»ç»è®Ÿçœ®
â â
â âââ Views/ # è§åŸå±
â âââ Windows/
â â âââ MainWindow.xaml # äž»çªå£
â âââ Pages/
â âââ DashboardPage.xaml # 仪衚ç页é¢
â âââ VideoManagePage.xaml # è§é¢ç®¡ç页é¢
â âââ PublishTaskPage.xaml # ååžä»»å¡é¡µé¢
â âââ CookieSessionPage.xaml # 莊å·ç®¡ç页é¢
â âââ SettingsPage.xaml # 讟眮页é¢
â
âââ ShortVideo.AutoPublisher.Core/ # æ žå¿äžå¡åºïŒå
±äº«ïŒ
â âââ Domain/ # é¢åå±ïŒå
±äº«ïŒ
â âââ Infrastructure/ # åºç¡è®Ÿæœå±ïŒå
±äº«ïŒ
â âââ OpenClaw/ # AIä»£çæš¡åïŒå
±äº«ïŒ
â âââ Services/ # æå¡å±ïŒå
±äº«ïŒ
â âââ Core/ # é
眮ïŒå
±äº«ïŒ
â
âââ ShortVideo.AutoPublisher.Cli/ # CLI åœä»€è¡å·¥å
·
â âââ Program.cs # å
¥å£ç¹
â âââ Commands/ # åœä»€å®ç°
â âââ VideoCommand.cs # è§é¢åœä»€
â âââ AccountCommand.cs # 莊å·åœä»€
â âââ PublishCommand.cs # ååžåœä»€
â âââ TaskCommand.cs # ä»»å¡åœä»€
â âââ SchedulerCommand.cs # è°åºŠåšåœä»€
â
âââ ShortVideo.AutoPublisher.Mcp/ # MCP ServerïŒAI Agent éæïŒ
âââ Program.cs # MCP å
¥å£ç¹
âââ Tools/ # MCP å·¥å
·
âââ VideoTools.cs # è§é¢å·¥å
·
âââ AccountTools.cs # 莊å·å·¥å
·
âââ PublishTools.cs # ååžå·¥å
·
äžãæ žå¿åèœ
3.1 仪衚ç
ç»äžçç³»ç»æŠè§çé¢ïŒæäŸïŒ
- ç»è®¡å¡çïŒè§é¢æ»æ°ã仿¥ååžæ°ãåŸ å€çä»»å¡ã倱莥任å¡
- å¹³å°ç¶æïŒå®æ¶æŸç€ºåå¹³å°èŽŠå·è¿æ¥ç¶æ
- å¿«æ·æäœïŒäžé®æ·»å è§é¢ãå建任å¡ã管ç莊å·
- æè¿ä»»å¡ïŒæŸç€ºæè¿5æ¡ååžä»»å¡åå ¶ç¶æ
3.2 è§é¢åºç®¡ç
宿Žçè§é¢å 容 CRUD åèœïŒ
- è§é¢åè¡šïŒæ¯ææçŽ¢ãçéãæåº
- è§é¢è¯Šæ ïŒæ é¢ãæè¿°ãæ çŸãæ¶é¿ãæä»¶å€§å°
- å°é¢ç®¡çïŒäžºäžåå¹³å°è®Ÿçœ®äžåæ¯äŸçå°é¢
- æ¹éæäœïŒæ¹éå é€ãæ¹éååž
3.3 ååžä»»å¡ç®¡ç
ä»»å¡éåå管çäžçæ§ïŒ
- ä»»å¡å建ïŒéæ©è§é¢ãç®æ å¹³å°ãååžæ¶éŽ
- 宿¶è¿åºŠïŒæŸç€ºäžäŒ ãå€çãååžåé¶æ®µè¿åºŠ
- ç¶æçéïŒæåŸ å€ç/è¿è¡äž/已宿/倱莥çé
- 倱莥éè¯ïŒäžé®éè¯å€±èޥ任å¡
- ä»»å¡åæ¶ïŒæ¯æåæ¶æéäžæè¿è¡äžçä»»å¡
3.4 莊å·ç®¡ç
å€å¹³å° Cookie äŒè¯ç»äžç®¡çïŒ
- 莊å·åè¡šïŒæŸç€ºææå·²æ·»å çå¹³å°èŽŠå·
- ç¶æçæ§ïŒå®æ¶æ£æµ Cookie æææ§
- èªåšå·æ°ïŒå®ææ£æ¥å¹¶æéè¿æäŒè¯
- Cookieå¯Œå ¥ïŒæ¯æä»æµè§åšå¯Œåºç Cookie JSON å¯Œå ¥
3.5 ç³»ç»è®Ÿçœ®
äž°å¯çé 眮é项ïŒ
| åç±» | é 眮项 |
|---|---|
| çœç»è®Ÿçœ® | è¿æ¥è¶ æ¶ã读åè¶ æ¶ãæå€§éè¯æ¬¡æ°ãéè¯éŽé |
| æµè§åšè®Ÿçœ® | 页é¢å èœœè¶ æ¶ãå çŽ çåŸ è¶ æ¶ãæäœå»¶è¿èåŽãæ å€Žæš¡åŒ |
| äžèœœè®Ÿçœ® | æå€§æä»¶å€§å°(1GB)ãçŒå²åºå€§å°ãæç¹ç»äŒ åŒå ³ |
| æ¥å¿è®Ÿçœ® | æ¥å¿çº§å«ãæä»¶æ¥å¿åŒå ³ãä¿çå€©æ° |
| å€è§è®Ÿçœ® | äž»é¢åæ¢ïŒæµ è²/æ·±è²/è·éç³»ç»ïŒ |
åãOpenClaw AI ä»£çæš¡å
4.1 æ¶æè®Ÿè®¡
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â IAiAgent æ¥å£ â
â - LoginAsync() ç»åœéªè¯ â
â - UploadVideoAsync() äžäŒ è§é¢ â
â - SetVideoMetadataAsync() 讟眮å
æ°æ® â
â - SetCoverImageAsync() 讟眮å°é¢ â
â - PublishAsync() ååžè§é¢ â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â AgentBase åºç±» â
â - éè¯çç¥ (Polly) â
â - æµè§åšæ§å¶ (Playwright) â
â - éªè¯ç æ£æµäžå€ç â
â - ç»äžçç¶æåè¿åºŠäºä»¶ â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â å¹³å°äžçšä»£çå®ç° â
â DouyinAgent â XiaohongshuAgent â BaijiahaoAgent â
â WeixinChannelAgent â ToutiaoAgent â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
4.2 IAiAgent æ¥å£å®ä¹
public interface IAiAgent : IDisposable
{
// 屿§
PlatformType Platform { get; }
string Name { get; }
AgentStatus Status { get; }
// æ žå¿æ¹æ³
Task InitializeAsync(CancellationToken ct = default);
Task<bool> LoginAsync(CookieSession session, CancellationToken ct = default);
Task<bool> UploadVideoAsync(VideoContent video, IProgress<int>? progress = null, CancellationToken ct = default);
Task<bool> SetVideoMetadataAsync(string title, string[] tags, string description, CancellationToken ct = default);
Task<bool> SetCoverImageAsync(CoverImage cover, CancellationToken ct = default);
Task<PublishResult> PublishAsync(CancellationToken ct = default);
// äºä»¶
event EventHandler<AgentStatusChangedEventArgs>? StatusChanged;
event EventHandler<AgentProgressEventArgs>? ProgressChanged;
}
4.3 ä»»å¡è°åºŠåš
// ä»»å¡è°åºŠåšæ žå¿åèœ
PublishTaskScheduler scheduler = new PublishTaskScheduler(dbContext);
// å¯åšè°åºŠåš
scheduler.Start();
// æ·»å ä»»å¡å°éå
long taskId = await scheduler.EnqueueAsync(publishTask);
// åæ¶ä»»å¡
await scheduler.CancelTaskAsync(taskId);
// éè¯å€±èޥ任å¡
await scheduler.RetryTaskAsync(taskId);
// äºä»¶çå¬
scheduler.TaskStatusChanged += (s, e) => { /* ç¶æåæŽå€ç */ };
scheduler.TaskProgressChanged += (s, e) => { /* è¿åºŠæŽæ°å€ç */ };
4.4 æµè§åšèªåšå
åºäº Playwright çæµè§åšèªåšåç¹æ§ïŒ
- åæ£æµæºå¶ïŒæ³šå ¥èæ¬éèèªåšåç¹åŸ
- Cookie 管çïŒèªåšå 蜜/ä¿åå¹³å° Cookie
- 页é¢çåŸ çç¥ïŒæºèœçåŸ é¡µé¢å èœœå®æ
- æªåŸåèœïŒååžå€±èŽ¥æ¶èªåšä¿åæªåŸçšäºè°è¯
- 倿µè§å𿝿ïŒChromium / Firefox / WebKit
äºãçœç»åŒ¹æ§è®Ÿè®¡
5.1 çœç»çæ§
NetworkMonitor monitor = new NetworkMonitor();
monitor.Start();
// æ£æ¥çœç»è¿éæ§
bool isConnected = await monitor.CheckConnectivityAsync();
// æµéçœç»å»¶è¿
int latencyMs = await monitor.MeasureLatencyAsync("www.baidu.com");
// çåŸ
çœç»æ¢å€
await monitor.WaitForConnectivityAsync(cancellationToken);
// çå¬ç¶æåå
monitor.StatusChanged += (s, e) => {
Console.WriteLine($"çœç»ç¶æ: {(e.IsConnected ? "å·²è¿æ¥" : "å·²æåŒ")}");
};
5.2 éè¯çç¥
éçš Polly å®ç°ææ°éé¿éè¯ïŒ
| åæ° | é»è®€åŒ | 诎æ |
|---|---|---|
| MaxRetries | 3 | æå€§éè¯æ¬¡æ° |
| InitialDelay | 1ç§ | åå§éè¯å»¶è¿ |
| MaxDelay | 30ç§ | æå€§éè¯å»¶è¿ |
| BackoffMultiplier | 2.0 | éé¿åæ° |
5.3 倧æä»¶äžèœœåš
FileDownloader downloader = new FileDownloader(networkMonitor);
var result = await downloader.DownloadAsync(
url: "https://example.com/video.mp4",
destinationPath: "Downloads/video.mp4",
progress: new Progress<DownloadProgress>(p => {
Console.WriteLine($"äžèœœè¿åºŠ: {p.Progress}% - {p.FormattedSpeed}");
}),
cancellationToken
);
if (result.Success)
{
Console.WriteLine($"äžèœœå®æ: {result.DownloadedBytes} åè");
}
ç¹æ§ïŒ
- æå€§æ¯æ 1GB æä»¶
- æç¹ç»äŒ æ¯æ
- 宿¶è¿åºŠæ¥å
- çœç»äžæèªåšçåŸ
äžãäœ¿çšæå
7.1 å¿«éåŒå§
-
æ·»å 莊å·
- è¿å ¥ã莊å·ç®¡çã页é¢
- ç¹å»ãæ·»å 莊å·ã
- 鿩平å°ïŒèŸå ¥èŽŠå·åç§°
- 仿µè§åšå¯Œåº Cookie å¹¶ç²èŽŽ
-
å¯Œå ¥è§é¢
- è¿å ¥ãè§é¢åºã页é¢
- ç¹å»ãæ·»å è§é¢ã
- å¡«åæ é¢ãæè¿°ãæ çŸ
- éæ©æ¬å°è§é¢æä»¶
-
å建ååžä»»å¡
- åšè§é¢å衚äžéæ©è§é¢
- ç¹å»ãååžãæé®
- éæ©ç®æ å¹³å°å莊å·
- 确讀åä»»å¡èªåšå å ¥éå
-
çæ§ä»»å¡è¿åºŠ
- è¿å ¥ãååžä»»å¡ã页é¢
- æ¥çä»»å¡ç¶æåè¿åºŠ
- 倱莥任å¡å¯äžé®éè¯
7.2 æäœ³å®è·µ
- Cookie 管çïŒå®ææ£æ¥ Cookie æææ§ïŒè¿æååæ¶æŽæ°
- éå³°ååžïŒé¿å çæ¶éŽå 倧éååžïŒéäœè¢«å¹³å°éå¶é£é©
- å°é¢äŒåïŒäžºäžåå¹³å°åå€å鿝äŸçå°é¢åŸç
- çœç»ç¯å¢ïŒç¡®ä¿çœç»çš³å®ïŒç³»ç»äŒèªåšå€ççæççœç»æåš
å «ãCLI åœä»€è¡å·¥å ·
v3.0.1 æ°å¢åœä»€è¡æ¥å£ïŒæ¯æèæ¬åæäœåèªåšåéæã
8.1 å®è£ äžè¿è¡
# ä»èŸåºç®åœè¿è¡
cd src/ShortVideo.AutoPublisher.Cli/bin/Debug/net8.0-windows
./autopub.exe --help
8.2 è§é¢ç®¡çåœä»€
# ååºææè§é¢
autopub video list
# æ·»å è§é¢
autopub video add -f "D:/Videos/demo.mp4" -t "è§é¢æ é¢" --tags "æµè¯,æŒç€º"
# æ¥çè§é¢è¯Šæ
autopub video info <id>
# å é€è§é¢
autopub video delete <id>
8.3 莊å·ç®¡çåœä»€
# ååºææèŽŠå·
autopub account list
# æ·»å 莊å·
autopub account add -p douyin -n "莊å·åç§°" -c "cookieæ°æ®"
# éªè¯èŽŠå·
autopub account validate <id>
# å é€èŽŠå·
autopub account delete <id>
8.4 ååžä»»å¡åœä»€
# ååžè§é¢å°æå®å¹³å°
autopub publish -v <video_id> -p douyin
# ååžå°ææå·²é
眮平å°
autopub publish -v <video_id> --all
# 宿¶ååž
autopub publish -v <video_id> -p xiaohongshu -s "2026-04-01 10:00"
# æ¥çä»»å¡å衚
autopub task list
# æç¶æçé
autopub task list -s failed
# éè¯å€±èޥ任å¡
autopub task retry <task_id>
# åæ¶ä»»å¡
autopub task cancel <task_id>
8.5 è°åºŠåšåœä»€
# å¯åšè°åºŠåšïŒåå°è¿è¡ïŒ
autopub scheduler start
# æ¥çè°åºŠåšç¶æ
autopub scheduler status
ä¹ãMCP ServerïŒAI Agent éæïŒ
v3.0.1 æ°å¢ Model Context Protocol (MCP) æå¡å𿝿ïŒå¯äž ClaudeãChatGPT ç AI Agent çŽæ¥éæã
9.1 é 眮 Claude Desktop
å°ä»¥äžé 眮添å å° Claude Desktop é 眮æä»¶äžïŒ
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"autopublisher": {
"command": "dotnet",
"args": ["run", "--project", "D:/Git/ShortVideo.AutoPublisher/src/ShortVideo.AutoPublisher.Mcp"]
}
}
}
9.2 å¯çšå·¥å ·å衚
| å·¥å ·åç§° | æè¿° |
|---|---|
list_videos | è·åè§é¢åºå衚 |
add_video | æ·»å è§é¢å°åº |
get_video | è·åè§é¢è¯Šæ |
delete_video | å é€è§é¢ |
search_videos | æçŽ¢è§é¢ |
list_accounts | è·åå¹³å°èŽŠå·å衚 |
add_account | æ·»å å¹³å°èŽŠå· |
delete_account | å é€èŽŠå· |
validate_account | éªè¯èŽŠå·ç¶æ |
set_default_account | 讟眮é»è®€èŽŠå· |
publish_video | ååžè§é¢å°æå®å¹³å° |
list_tasks | è·åååžä»»å¡å衚 |
get_task_status | æ¥è¯¢ä»»å¡ç¶æ |
retry_task | éè¯å€±èŽ¥ä»»å¡ |
cancel_task | åæ¶ä»»å¡ |
scheduler_start | å¯åšä»»å¡è°åºŠåš |
scheduler_stop | 忢任å¡è°åºŠåš |
9.3 AI Agent 䜿çšç€ºäŸ
åš Claude äžå¯ä»¥çŽæ¥è°çšïŒ
çšæ·: åž®æååºè§é¢åºäžçææè§é¢
Claude: [è°çš list_videos å·¥å
·]
çšæ·: æè§é¢ID䞺1çè§é¢ååžå°æé³
Claude: [è°çš publish_video å·¥å
·ïŒåæ°: video_id=1, platform="douyin"]
çšæ·: æ¥çä»»å¡ç¶æ
Claude: [è°çš list_tasks å·¥å
·]
åãé 眮诎æ
10.1 åºçšé 眮æä»¶
é
眮æä»¶è·¯åŸïŒappsettings.json
{
"Database": {
"FilePath": "Data/autopublisher.db"
},
"Network": {
"ConnectionTimeoutSeconds": 30,
"MaxRetries": 3,
"InitialRetryDelaySeconds": 1,
"MaxRetryDelaySeconds": 30,
"NetworkCheckIntervalSeconds": 5
},
"Browser": {
"Headless": false,
"PageLoadTimeoutSeconds": 60,
"ActionTimeoutSeconds": 30,
"DefaultDelayMs": 1000
},
"Download": {
"MaxFileSizeBytes": 1073741824,
"BufferSize": 81920,
"EnableResume": true
},
"Log": {
"LogDirectory": "Logs",
"MinimumLevel": "Information",
"RetainedFileDays": 30
}
}
10.2 æ°æ®åºç»æ
ç³»ç»äœ¿çš SQLite æ°æ®åºååšæ°æ®ïŒäž»èŠè¡šç»æïŒ
| 衚å | 诎æ |
|---|---|
| VideoContents | è§é¢å 容 |
| CookieSessions | CookieäŒè¯ |
| PublishTasks | ååžä»»å¡ |
| CoverImages | å°é¢åŸç |
| DownloadRecords | äžèœœè®°åœ |
| SystemLogs | ç³»ç»æ¥å¿ |
åäžãåŒåæ©å±
11.1 æ·»å æ°å¹³å°æ¯æ
- åš
PlatformTypeæäžŸäžæ·»å æ°å¹³å° - å建æ°ç代ç类继æ¿
AgentBase - å®ç°
IAiAgentæ¥å£çæææ¹æ³ - åš
AgentFactoryäžæ³šåæ°ä»£ç
public class NewPlatformAgent : AgentBase
{
public override PlatformType Platform => PlatformType.NewPlatform;
public override string Name => "æ°å¹³å°";
protected override async Task<bool> DoLoginAsync(CookieSession session, CancellationToken ct)
{
// å®ç°ç»åœé»èŸ
}
protected override async Task<bool> DoUploadVideoAsync(VideoContent video, IProgress<int>? progress, CancellationToken ct)
{
// å®ç°äžäŒ é»èŸ
}
// ... å®ç°å
¶ä»æ¹æ³
}
11.2 èªå®ä¹éè¯çç¥
var customPolicy = new RetryPolicyBuilder()
.WithMaxRetries(5)
.WithInitialDelay(TimeSpan.FromSeconds(2))
.WithMaxDelay(TimeSpan.FromMinutes(1))
.WithBackoffMultiplier(3.0)
.Build();
await agent.ExecuteWithRetryAsync(async () => {
// éèŠéè¯çæäœ
}, customPolicy);
åäºãåžžè§é®é¢
Q1: Cookie åŠäœè·åïŒ
äœ¿çšæµè§åšçåŒåè å·¥å ·ïŒF12ïŒïŒåš Network 颿¿äžæŸå°è¯·æ±ïŒå€å¶ Cookie åŒïŒæäœ¿çšæµè§åšæ©å±å¯Œåº Cookie 䞺 JSON æ ŒåŒã
Q2: ååžå€±èŽ¥åŠäœå€çïŒ
- æ¥çä»»å¡çé误信æ¯
- æ£æ¥ Cookie æ¯åŠè¿æ
- 确讀çœç»è¿æ¥æ£åžž
- æ¥çæ¥å¿æä»¶è·å诊ç»é误信æ¯
- 䜿çšãéè¯ãåèœéæ°ååž
Q3: åŠäœé¿å 莊å·è¢«éå¶ïŒ
- æ§å¶ååžé¢çïŒé¿å çæ¶éŽå 倧éååž
- 䜿çšéæºå»¶è¿æš¡æäººå·¥æäœ
- å®ææŽæ¢ Cookie
- å ³æ³šå¹³å°çååžè§ååå
Q4: æ¯æå®æ¶ååžåïŒ
æ¯çïŒåå»ºä»»å¡æ¶å¯ä»¥è®Ÿçœ®ã计åååžæ¶éŽãïŒä»»å¡è°åºŠåšäŒåšæå®æ¶éŽèªåšæ§è¡ã
åäžãçæ¬æŒè¿
çæ¬åå²
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â v1.0 (2022) v2.0 (2023) v3.0 AI (2026) â
â â â â â
â åºç¡ç å¢åŒºç æºèœç â
â â â â â
â æåšäžäŒ âââââââââ¶ æ¹é管ç âââââââââ¶ AI èªåšå â
â å平尿¯æ å€å¹³å°æ¯æ OpenClaw éæ â
â æ¬å°ååš æ°æ®åºååš æºèœä»»å¡è°åºŠ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
v1.0 - åºç¡ç (2022)
éŠäžªæ£åŒååžçæ¬ïŒæäŸåºç¡çè§é¢ç®¡çåèœã
| ç¹æ§ | 诎æ |
|---|---|
| è§é¢ç®¡ç | æ¬å°è§é¢æä»¶çåºæ¬ CRUD æäœ |
| åå¹³å° | ä» æ¯ææé³å¹³å° |
| æåšæš¡åŒ | éèŠæåšæåŒæµè§åšå®æäžäŒ |
| é 眮æä»¶ | åºäº XML çç®åé 眮 |
v2.0 - å¢åŒºç (2023)
åŒå ¥å€å¹³å°æ¯æåæ°æ®åºååšïŒå€§å¹ æåçšæ·äœéªã
| ç¹æ§ | 诎æ |
|---|---|
| å€å¹³å°æ¯æ | æ°å¢å°çº¢ä¹ŠãçŸå®¶å·ãè§é¢å·ãå€Žæ¡ |
| SQLite æ°æ®åº | æ¬å°æä¹ åååšïŒæ¯ææ°æ®æ£çŽ¢ |
| æ¹éæäœ | æ¯ææ¹éå¯Œå ¥ãæ¹éå é€ |
| Cookie 管ç | 忥çäŒè¯ç®¡çåèœ |
| UI å级 | éçš WPF-UI 2.x ç°ä»£åçé¢ |
| å°é¢ç®¡ç | æ¯æäžºè§é¢è®Ÿçœ®å°é¢åŸç |
v3.0.1 AI - æºèœç (2026) â åœåçæ¬
åèœå¢åŒºïŒæ°å¢ CLI åœä»€è¡å·¥å ·å MCP Server æ¯æã
| ç¹æ§ | 诎æ |
|---|---|
| CLI åœä»€è¡å·¥å · | æ¯æèæ¬åæäœïŒå¯éæå°èªåšåå·¥äœæµ |
| MCP Server | Model Context Protocol æ¯æïŒå¯äž Claude ç AI Agent éæ |
| Core å ±äº«åº | æ žå¿äžå¡é»èŸæœå䞺ç¬ç«ç±»åºïŒå€ç«¯å€çš |
| è§é¢ç®¡çåœä»€ | æ¯æåœä»€è¡æ·»å ãå é€ãæ¥è¯¢è§é¢ |
| 莊å·ç®¡çåœä»€ | æ¯æåœä»€è¡ç®¡çå¹³å°èŽŠå· |
| ååžä»»å¡åœä»€ | æ¯æåœä»€è¡åå»ºãæ¥è¯¢ã管çååžä»»å¡ |
| è°åºŠåšåœä»€ | æ¯æåœä»€è¡å¯åš/忢任å¡è°åºŠåš |
| 18䞪 MCP å·¥å · | 宿Žçè§é¢ã莊å·ãä»»å¡ç®¡çå·¥å ·é |
v3.0.0 AI - æºèœç (2026)
é©åœæ§å级ïŒéæ OpenClaw AI ä»£çææ¯ïŒå®ç°çæ£çèªåšåååžã
| ç¹æ§ | 诎æ |
|---|---|
| OpenClaw AI 代ç | æºèœæµè§åšèªåšåïŒæš¡æçå®çšæ·æäœ |
| IAiAgent æ¶æ | ç»äžçä»£çæ¥å£ïŒæ¯æå¿«éæ©å±æ°å¹³å° |
| ä»»å¡è°åºŠåš | éååä»»å¡ç®¡çïŒæ¯æå¹¶åæ§å¶ |
| Playwright éæ | ç°ä»£åæµè§åšèªåšååŒæ |
| æºèœéè¯ | Polly 匹æ§çç¥ïŒèªåšå€ççœç»æåš |
| çœç»çæ§ | 宿¶çœç»ç¶ææ£æµäžèªåšæ¢å€ |
| 倧æä»¶æ¯æ | æå€§ 1GB è§é¢ïŒæç¹ç»äŒ |
| WPF-UI 3.0 | å šæ° Fluent Design çé¢ |
| éªè¯ç å€ç | æºèœæ£æµïŒæ¯æäººå·¥å¹²é¢ |
| ç¶æåè° | 宿¶è¿åºŠåéŠåäºä»¶éç¥ |
çæ¬å¯¹æ¯
| åèœ | v1.0 | v2.0 | v3.0 AI |
|---|---|---|---|
| æé³æ¯æ | â | â | â |
| å°çº¢ä¹Šæ¯æ | â | â | â |
| çŸå®¶å·æ¯æ | â | â | â |
| è§é¢å·æ¯æ | â | â | â |
| å€Žæ¡æ¯æ | â | â | â |
| æ°æ®åºååš | â | â | â |
| AI èªåšå | â | â | â |
| ä»»å¡éå | â | â | â |
| æºèœéè¯ | â | â | â |
| çœç»çæ§ | â | â | â |
| æç¹ç»äŒ | â | â | â |
| 宿¶ååž | â | â | â |
åœåçæ¬ä¿¡æ¯
- çæ¬å·ïŒ3.0.1
- 代å·ïŒAI Edition
- ååžæ¥æïŒ2026幎
- åŒåè ïŒunitos.cn
- ææ¯æ¯æïŒhttps://unitos.cn
æªæ¥è§å (v3.1+)
- æŽå€å¹³å°æ¯æïŒBç«ãå¿«æïŒ
- OCR éªè¯ç èªåšè¯å«
- è§é¢æºèœåªèŸ
- æ°æ®åæä»ªè¡šç
- äºç«¯åæ¥åèœ
ååã讞å¯åè®®
æ¬é¡¹ç®åºäº MIT 讞å¯è¯åŒæºã
MIT License
Copyright (C) 2024 ShortVideo.AutoPublisher Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software...
