# Make Song

> Automate the full workflow of AI music creation on Douyin Music Studio. Trigger when user provides keywords for song generation. Handles: opening the studio in headed Chrome, login, navigating to professional mode, generating lyrics (via DeepSeek), filling the form, generating the song, and optionally publishing.

- Skill: `jaychou805/make-song` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add jaychou805/make-song`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jaychou805/make-song/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: jaychou805 (https://skillmd.com/u/jaychou805)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jaychou805/make-song

---


# Make Song (AI 歌曲创作)

## Overview

Automate song creation on music.douyin.com/studio/create using Playwright.
The bundled script `scripts/douyin_studio_auto.py` handles the full workflow.

## Trigger

When the user sends a message matching:
- `--歌曲“关键词”` or `--song"keywords"`
- `创作一首关键词为...的歌曲`
- `make a song with keywords like ...`

Extract the keywords and run the workflow.

## Prerequisites

The skill requires a system-installed Chrome or Edge browser.

## Workflow

Run from the skill root directory:

```
cd <skill-root>
& "<python-path>" scripts/douyin_studio_auto.py create --no-publish --keywords "<keywords>"
```

Where `<skill-root>` is the skill directory path and `<python-path>` is the
bundled Python from `$CODEX_HOME/runtimes/codex-primary-runtime/dependencies/python/python.exe`.

Steps:
1. Extract keywords from the user's request
2. Run the script with `--keywords` and `--no-publish`
3. Script: opens Chrome, logs in, navigates to pro mode,
   generates lyrics via DeepSeek, fills form, clicks generate
4. Browser stays open for the user to preview the result

## Parameters

- `--keywords / -k`: Keywords for lyric generation (e.g. '安静 治愈')
- `--no-publish`: Skip publishing (default on for this skill)
- `$env:BROWSER_CHANNEL="msedge"`: Use Edge instead of Chrome

## Notes

- Set `DEEPSEEK_API_KEY` or `OPENAI_API_KEY` in the environment
- Login session persists in `outputs/browser_session/`
- Requires: playwright, requests, openai (pip-installed automatically on first run)
- Generation timeout: 20 minutes
- First run will install Python dependencies automatically

