8
n8n 中文网amn8n.com

歌单管理器

中级

这是一个Other领域的自动化工作流,包含 11 个节点。主要使用 Spotify, GoogleDocs, HttpRequest, GoogleSheets, ManualTrigger 等节点。 使用Google Docs为歌手创建歌词文档和Spotify歌单

前置要求
  • 可能需要目标 API 的认证凭证
  • Google Sheets API 凭证
  • OpenAI API Key

分类

工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "ThUxnc7za8J4uyXG",
  "meta": {
    "instanceId": "c1cc2e18d32a91e26eb78bbc6373615a06451476e56efe94394fc82c93d00305",
    "templateCredsSetupCompleted": true
  },
  "name": "歌单管理器",
  "tags": [],
  "nodes": [
    {
      "id": "15388ff0-3350-44ba-b254-f4960aa4650f",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -360,
        -360
      ],
      "parameters": {
        "width": 680,
        "height": 340,
        "content": "## 歌单管理器"
      },
      "typeVersion": 1
    },
    {
      "id": "18133032-9a20-4478-b9f4-c7f9ef801cdb",
      "name": "当点击\"测试工作流\"时",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -360,
        40
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "0e891760-d994-4ccf-8f1d-2f74282c624e",
      "name": "获取数据",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        300,
        40
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1c8HGDizhcFSHwJKK7nuMNkRZgbdrphBmofQanD9a-js/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1c8HGDizhcFSHwJKK7nuMNkRZgbdrphBmofQanD9a-js",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1c8HGDizhcFSHwJKK7nuMNkRZgbdrphBmofQanD9a-js/edit?usp=drivesdk",
          "cachedResultName": "Setlist_Manager"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "cIZ7JPC7EQMwjcTx",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "f27df2b3-e77a-4fc2-9583-6bad3ce465de",
      "name": "信息提取器",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        520,
        40
      ],
      "parameters": {
        "text": "=You will be given an artist name and a song title. You'll need to verify the spelling and accuracy of the information. \n\nartist: {{ $json.Artist }}\nsongTitle: {{ $json.SongTitle }}",
        "options": {
          "systemPromptTemplate": "You are an expert extraction algorithm.\nOnly extract relevant information from the text.\nIf you do not know the value of an attribute asked to extract, you may omit the attribute's value."
        },
        "attributes": {
          "attributes": [
            {
              "name": "Artist",
              "required": true,
              "description": "The artist that wrote the song"
            },
            {
              "name": "SongTitle",
              "required": true,
              "description": "The name of the song"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "87b875af-e006-44c7-bd27-f3184d6c08ca",
      "name": "OpenAI 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        540,
        240
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "DZaBabO9u605tAtZ",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8fc4de2e-9dd5-4c98-8e5e-bc629507516f",
      "name": "获取歌词",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        880,
        40
      ],
      "parameters": {
        "url": "=https://api.lyrics.ovh/v1/{{ $json.output.Artist }}/{{ $json.output.SongTitle }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "acb21e3e-fc53-43e9-ad4c-a05a4b1aada2",
      "name": "填充文档",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        1080,
        40
      ],
      "parameters": {
        "actionsUi": {
          "actionFields": [
            {
              "text": "={{ $('Information Extractor').item.json.output.SongTitle }} - {{ $('Information Extractor').item.json.output.Artist }}\n\n{{ $('Get Lyrics').item.json.lyrics }}",
              "action": "insert"
            },
            {
              "action": "insert",
              "object": "pageBreak"
            }
          ]
        },
        "operation": "update",
        "documentURL": "={{ $('Create Doc').item.json.id }}"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "id": "wX7B8ilooIkPObCR",
          "name": "Google Docs account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "9232c124-b4a2-4445-93b4-3a07eba9c2bc",
      "name": "搜索歌曲",
      "type": "n8n-nodes-base.spotify",
      "position": [
        1280,
        40
      ],
      "parameters": {
        "limit": 1,
        "query": "={{ $('get data').item.json.Artist }} by {{ $('get data').item.json.SongTitle }}",
        "filters": {},
        "resource": "track",
        "operation": "search"
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "FzlmdcWCB79KvNbl",
          "name": "Spotify account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "25c6b03b-a8c5-4fb4-9be4-acaba7a666a0",
      "name": "添加歌曲到播放列表",
      "type": "n8n-nodes-base.spotify",
      "position": [
        1480,
        40
      ],
      "parameters": {
        "id": "={{ $('Create Playlist').item.json.uri }}",
        "trackID": "={{ $('Search for Song').item.json.uri }}",
        "resource": "playlist",
        "additionalFields": {
          "position": 0
        }
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "FzlmdcWCB79KvNbl",
          "name": "Spotify account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9ddf9bfe-4df3-40c2-87e2-3106a1042944",
      "name": "创建播放列表",
      "type": "n8n-nodes-base.spotify",
      "position": [
        -140,
        40
      ],
      "parameters": {
        "name": "=Setlist - {{ $now.format('yyyy-MM-dd') }}",
        "resource": "playlist",
        "operation": "create",
        "additionalFields": {}
      },
      "credentials": {
        "spotifyOAuth2Api": {
          "id": "FzlmdcWCB79KvNbl",
          "name": "Spotify account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9dca5c93-7d87-4425-a2fe-b1a7629d169c",
      "name": "创建文档",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        80,
        40
      ],
      "parameters": {
        "title": "=Setlist - {{ $now.format('yyyy-MM-dd') }}",
        "folderId": "1opzuazFfpdBRLzRas8bViF6TmO4VCW8V"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "id": "wX7B8ilooIkPObCR",
          "name": "Google Docs account"
        }
      },
      "typeVersion": 2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "a0166877-d2f2-499a-9d8c-c8d0f80d7ce8",
  "connections": {
    "get data": {
      "main": [
        [
          {
            "node": "Information Extractor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Doc": {
      "main": [
        [
          {
            "node": "get data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Lyrics": {
      "main": [
        [
          {
            "node": "Populate Doc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Populate Doc": {
      "main": [
        [
          {
            "node": "Search for Song",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Playlist": {
      "main": [
        [
          {
            "node": "Create Doc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search for Song": {
      "main": [
        [
          {
            "node": "Add Song to Playlist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Information Extractor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Add Song to Playlist": {
      "main": [
        []
      ]
    },
    "Information Extractor": {
      "main": [
        [
          {
            "node": "Get Lyrics",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Create Playlist",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

中级 - 其他

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
中级
节点数量11
分类1
节点类型8
难度说明

适合有一定经验的用户,包含 6-15 个节点的中等复杂度工作流

外部链接
在 n8n.io 查看

分享此工作流