This article is machine translated
Show original

I’d like to share my experience with those of you looking to automate your blogs! I personally built a system where an AI writes four blog posts a day. I’ve been so busy lately juggling this with my real life that I haven't had time to think about it. While there are still areas that need improvement, most things are sorted out now. However, I think I will need to continue refining the tone, image, and persona. It is a one-person media engine that automatically runs four times a day, handling everything from collecting trends to publishing blog posts and generating shorts. I started with Claude Code, but since I wasn't on the Max x20 plan and tokens were running out quickly, I switched to Codex CLI. I wanted to write AI news and Vibe Coding educational content every day, but writing four long posts manually was realistically too much of a hassle and time-consuming. So, I started this project with the thought, "What if I automated everything from collection to publishing?" I thought it would be simple at first, but publishing methods differ by platform, AI-generated text is immediately obvious, and there are copyright issues with images. I think it took me over a week of daily revisions to reach its current form. » This is how the pipeline works: Windows Task Scheduler runs the Python script four times a day. (Vibe Coding Education Series Part 1, AI News Part 3) One cycle of the pipeline consists of 6 to 7 stages: 1) It collects trends from Naver DataLab, Google Trends, and 14 RSS sources. 2) It selects only the single most impactful news item, and the Codex CLI writes an in-depth article. 3) It generates images using Gemini 3.1 Flash. 4) It converts the content to blog HTML. 5) It publishes simultaneously to Blogger and Naver Blog. Upon publication, it even sends an indexing request via the Google Indexing API. 6) JSON for Shorts is also automatically generated. + Additionally, once the JSON for Shorts is generated, an "Edit" button is added to the Telegram message. Clicking this button opens a local video editor where you can make edits and render the video. After rendering, clicking the "Post to Instagram + YouTube" button automatically posts the content to the connected account API. + Furthermore, the entire process is configured to send real-time notifications via a Telegram bot, making it quite convenient as you can immediately identify where a failure occurred. » Reasons for Choosing Local Instead of Claude Cowork Actually, I initially considered Claude Cowork. It’s convenient when things run automatically in the cloud, isn't it? However, realistically, there were too many limitations. Tistory and Naver Blog are prime examples. Since the official APIs for both platforms were discontinued a long time ago, you have to launch the browser directly using Playwright. Also, Tistory frequently resets its cookie and login authentication, so I just gave up on it. Also, since Cowork is cloud-based, it works well for platforms like Blogger, but local browser automation is not possible. Therefore, tasks such as registering for the Task Scheduler, accessing the SQLite DB, and processing image files all require local dependencies, so I proceeded with them locally. In conclusion, running Claude Code CLI directly locally in the beginning offered much more freedom than Claude Cowork. I only switched the article writing part to Codex CLI later, due to the token limit on my Claude Max subscription. If you write four articles a day, you reach the limit very quickly ;( » The part where I struggled the most with Naver Blog automation.. This was the part where I struggled the most. Standard web automation methods didn't work at all with Naver SmartEditor ONE.. Since the editor wouldn't recognize text inputs via DOM manipulation or execCommand, a bizarre bug kept occurring where copying to the clipboard with pyperclip and pasting with Ctrl+V resulted in a strikethrough appearing across the entire text. I even tried typing it out character by character using `page.keyboard.type()`, but it was the same. So, I added a script to click the strikethrough button once the post is finished on Naver Blog, selecting the entire body content (Ctrl+A), and pressing it once; that solved the problem. That's it.... The images weren't simple either; it turned out that the process requires clicking the image button within the editor, capturing the file chooser event to upload a local file, and that the publish button needs to be clicked via a bounding box mouse click rather than a CSS selector for stability. »

Sector:
Telegram
Disclaimer: The content above is only the author's opinion which does not represent any position of Followin, and is not intended as, and shall not be understood or construed as, investment advice from Followin.
Like
Add to Favorites
Comments