8
n8n 中文网amn8n.com

自动下载 Reddit 表情包到 Google Drive,含重复检测和 Telegram 提醒

高级

这是一个File Management, Multimodal AI领域的自动化工作流,包含 20 个节点。主要使用 If, Set, Code, Wait, Filter 等节点。 自动下载 Reddit 表情包到 Google Drive,包含重复检测和 Telegram 提醒

前置要求
  • Telegram Bot Token
  • Google Drive API 凭证
  • 可能需要目标 API 的认证凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "sApDhrCJFPIl0wdv",
  "meta": {
    "instanceId": "943057ae9865dd2906869d78fba63cb807e3403d288699c0026d3aaf59867c7a"
  },
  "tags": [],
  "nodes": [
    {
      "id": "0bd4a770-9b16-4b30-836d-0013a530c3f5",
      "name": "设置",
      "type": "n8n-nodes-base.set",
      "position": [
        -1680,
        256
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "108afa46-571b-4e15-ab1a-bfb03ac7972b",
              "name": "telegram_chat_id",
              "type": "string",
              "value": "YOUR_TELEGRAM_CHAT_ID"
            },
            {
              "id": "0937ebce-93ae-45c3-89f4-1594f9eb39dd",
              "name": "wait_in_seconds",
              "type": "number",
              "value": 1
            },
            {
              "id": "ed0ae7de-b9c3-4ad6-82d4-d288b22c06d7",
              "name": "image_base_url",
              "type": "string",
              "value": "i.redd.it"
            },
            {
              "id": "5c6cd357-d78b-4b40-acc6-9d3ba966ea5f",
              "name": "subreddits_array",
              "type": "array",
              "value": "=[\n  'subreddit1',\n  'subreddit2',\n  'subreddit3'\n]"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "ae4f40b1-2401-4d90-a454-79e60e39ea6d",
      "name": "循环帖子",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -672,
        256
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "9494edb5-de72-409b-ac68-64c9039098da",
      "name": "是新图片吗?",
      "type": "n8n-nodes-base.if",
      "position": [
        224,
        464
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "cfd7c29e-864b-4241-a089-b633eac3fef1",
              "operator": {
                "type": "string",
                "operation": "notExists",
                "singleValue": true
              },
              "leftValue": "={{ $('Search image in drive').item.json.id }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "44c886f4-09ac-46e9-8e9d-eb9751337fc8",
      "name": "下载图片",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        448,
        464
      ],
      "parameters": {
        "url": "={{ $('Image variables').item.json.image_url }}",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file",
              "outputPropertyName": "image"
            }
          }
        },
        "sendHeaders": true,
        "authentication": "predefinedCredentialType",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "image/webp,image/apng,image/*,*/*;q=0.8"
            }
          ]
        },
        "nodeCredentialType": "redditOAuth2Api"
      },
      "credentials": {
        "redditOAuth2Api": {
          "id": "0z799VOJVjOTOAUf",
          "name": "Reddit VJM"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "131453d7-6485-419b-afb7-a59f68719625",
      "name": "上传图片到 Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        672,
        528
      ],
      "parameters": {
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1fslVa4PawdpJv7t7OSqtOts4BDDGsUVv",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1fslVa4PawdpJv7t7OSqtOts4BDDGsUVv",
          "cachedResultName": "teste memes"
        },
        "inputDataFieldName": "image"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "lqBbtUNY2M92xaLg",
          "name": "Google Drive VIKTHYR"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "0e0a5979-4f79-4471-a5e7-f5d115239280",
      "name": "图片变量",
      "type": "n8n-nodes-base.set",
      "position": [
        -224,
        384
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "21de95d6-92b3-467b-9a7f-90aa256d99d2",
              "name": "image_url",
              "type": "string",
              "value": "={{ $json.url }}"
            },
            {
              "id": "4a6236f2-dd29-49dd-a10b-bf2f1b7fef09",
              "name": "image_name",
              "type": "string",
              "value": "={{ $json.url.split(\"/\")[3] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "2df122fc-8687-4a1e-af60-f78355f9e9f2",
      "name": "在 Drive 中搜索图片",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        0,
        384
      ],
      "parameters": {
        "limit": 1,
        "filter": {
          "folderId": {
            "__rl": true,
            "mode": "list",
            "value": "1fslVa4PawdpJv7t7OSqtOts4BDDGsUVv",
            "cachedResultUrl": "https://drive.google.com/drive/folders/1fslVa4PawdpJv7t7OSqtOts4BDDGsUVv",
            "cachedResultName": "teste memes"
          },
          "whatToSearch": "files"
        },
        "options": {},
        "resource": "fileFolder",
        "queryString": "={{ $json.image_name }}"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "lqBbtUNY2M92xaLg",
          "name": "Google Drive VIKTHYR"
        }
      },
      "typeVersion": 3,
      "alwaysOutputData": true
    },
    {
      "id": "23e525af-815f-4fe6-b50f-43820ffb5050",
      "name": "仅保留图片",
      "type": "n8n-nodes-base.filter",
      "position": [
        -896,
        256
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "47d10e15-795b-449a-ac76-262b0850ae3d",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.url.split(\"/\")[2] }}",
              "rightValue": "={{ $('Settings').item.json.image_base_url }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "140b6db8-d088-4429-bbe1-03c01cccbe31",
      "name": "获取 Reddit 帖子",
      "type": "n8n-nodes-base.reddit",
      "position": [
        -1120,
        256
      ],
      "parameters": {
        "filters": {
          "category": "new"
        },
        "operation": "getAll",
        "subreddit": "={{ $('Get random subreddit').item.json.subreddit }}"
      },
      "credentials": {
        "redditOAuth2Api": {
          "id": "0z799VOJVjOTOAUf",
          "name": "Reddit VJM"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "81ad2196-6e73-4464-94ad-e546dd620337",
      "name": "获取随机子版块",
      "type": "n8n-nodes-base.code",
      "position": [
        -1344,
        256
      ],
      "parameters": {
        "jsCode": "const subreddits = $input.first().json.subreddits_array\nconst randomIndex = Math.floor(Math.random() * subreddits.length)\nconst subreddit = subreddits[randomIndex]\n\nreturn [{ json: { subreddit } }]"
      },
      "typeVersion": 2
    },
    {
      "id": "189789a1-9107-4055-8f4f-c8440f461b12",
      "name": "请求间等待",
      "type": "n8n-nodes-base.wait",
      "position": [
        -448,
        384
      ],
      "webhookId": "850b52c1-da45-41ee-abad-60db39f0d176",
      "parameters": {
        "amount": "={{ $('Settings').item.json.wait_in_seconds }}"
      },
      "typeVersion": 1.1
    },
    {
      "id": "28fac7ac-64d4-4b46-91c6-5ddc270ba863",
      "name": "仅保留新图片",
      "type": "n8n-nodes-base.filter",
      "position": [
        -448,
        96
      ],
      "parameters": {
        "options": {
          "ignoreCase": false
        },
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "baa17736-88f3-43d4-9642-94b8b06c9e18",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.createdTime }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2,
      "alwaysOutputData": true
    },
    {
      "id": "2d9d65fe-45cf-46d9-872d-393f5e5229b2",
      "name": "有新图片吗?",
      "type": "n8n-nodes-base.if",
      "position": [
        -16,
        96
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "d04db27a-065b-47c3-aec6-1b144f3621e8",
              "operator": {
                "type": "array",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.new_images }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "866be212-97a2-4121-9208-9245fe0a8d8a",
      "name": "聚合新图片",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -224,
        96
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "new_images"
      },
      "typeVersion": 1
    },
    {
      "id": "b353f3c6-a1ea-4759-9616-00567be7c5d0",
      "name": "在 Telegram 上通知",
      "type": "n8n-nodes-base.telegram",
      "position": [
        224,
        0
      ],
      "webhookId": "c28255b7-0343-4361-866e-85a35b449759",
      "parameters": {
        "text": "={{ $json.new_images.length }} new images downloaded from Reddit",
        "chatId": "={{ $('Settings').item.json.telegram_chat_id }}",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "g96RKSo0I2Vcf1oP",
          "name": "Telegram N8N VIKTHYR Bot"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a27568e7-2e17-44f0-a6e9-61017565926f",
      "name": "发送无新图片文本",
      "type": "n8n-nodes-base.telegram",
      "position": [
        224,
        176
      ],
      "webhookId": "c28255b7-0343-4361-866e-85a35b449759",
      "parameters": {
        "text": "=No new images downloaded from Reddit",
        "chatId": "={{ $('Settings').item.json.telegram_chat_id }}",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "g96RKSo0I2Vcf1oP",
          "name": "Telegram N8N VIKTHYR Bot"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "e2974ffa-3942-444b-bde3-30881e1c9675",
      "name": "Cron",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -2016,
        256
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d2eb37ad-0c06-4e9a-acb4-4a79d93d54c4",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2480,
        -320
      ],
      "parameters": {
        "width": 400,
        "height": 736,
        "content": "## 🔄 工作原理"
      },
      "typeVersion": 1
    },
    {
      "id": "afd62df4-fc7b-41a9-9aa0-16808d05a7ab",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2064,
        -320
      ],
      "parameters": {
        "width": 272,
        "height": 112,
        "content": "# 📌 关注我:"
      },
      "typeVersion": 1
    },
    {
      "id": "314b4db5-4261-4395-b071-5cb7be9395c2",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1840,
        -96
      ],
      "parameters": {
        "color": 7,
        "width": 432,
        "height": 512,
        "content": "## ⚙️ 配置设置"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "7f64bba8-8e4f-48f5-9411-e8618d8ff587",
  "connections": {
    "Cron": {
      "main": [
        [
          {
            "node": "Settings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Settings": {
      "main": [
        [
          {
            "node": "Get random subreddit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Posts": {
      "main": [
        [
          {
            "node": "Keep only new images",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait between requests",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download image": {
      "main": [
        [
          {
            "node": "Upload image to drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Image variables": {
      "main": [
        [
          {
            "node": "Search image in drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is a new image?": {
      "main": [
        [
          {
            "node": "Download image",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Loop Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Reddit posts": {
      "main": [
        [
          {
            "node": "Keep only images",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Have new images?": {
      "main": [
        [
          {
            "node": "Notify on Telegram",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send no new images text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Keep only images": {
      "main": [
        [
          {
            "node": "Loop Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate new images": {
      "main": [
        [
          {
            "node": "Have new images?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get random subreddit": {
      "main": [
        [
          {
            "node": "Get Reddit posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Keep only new images": {
      "main": [
        [
          {
            "node": "Aggregate new images",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search image in drive": {
      "main": [
        [
          {
            "node": "Is a new image?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload image to drive": {
      "main": [
        [
          {
            "node": "Loop Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait between requests": {
      "main": [
        [
          {
            "node": "Image variables",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

高级 - 文件管理, 多模态 AI

需要付费吗?

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

工作流信息
难度等级
高级
节点数量20
分类2
节点类型13
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Vitorio Magalhães

Vitorio Magalhães

@vikthyr

Brazilian Full Stack Developer passionate about making automation accessible to everyone. I create free n8n workflows that solve real problems - from NASA space content to marketing automation. Proving that powerful automation doesn't need to be expensive or complicated. Teaching through templates, one node at a time.

外部链接
在 n8n.io 查看

分享此工作流