Descargar automáticamente memes de Reddit a Google Drive, con detección de duplicados y notificación de Telegram

Avanzado

Este es unFile Management, Multimodal AIflujo de automatización del dominio deautomatización que contiene 20 nodos.Utiliza principalmente nodos como If, Set, Code, Wait, Filter. Descargar automáticamente memes de Reddit a Google Drive, con detección de duplicados y recordatorios de Telegram

Requisitos previos
  • Bot Token de Telegram
  • Credenciales de API de Google Drive
  • Pueden requerirse credenciales de autenticación para la API de destino
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "id": "sApDhrCJFPIl0wdv",
  "meta": {
    "instanceId": "943057ae9865dd2906869d78fba63cb807e3403d288699c0026d3aaf59867c7a"
  },
  "tags": [],
  "nodes": [
    {
      "id": "0bd4a770-9b16-4b30-836d-0013a530c3f5",
      "name": "Configuración",
      "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": "Bucle de Publicaciones",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -672,
        256
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "9494edb5-de72-409b-ac68-64c9039098da",
      "name": "¿Es una imagen nueva?",
      "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": "Descargar imagen",
      "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": "Subir imagen a 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": "Variables de imagen",
      "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": "Buscar imagen en 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": "Mantener solo imágenes",
      "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": "Obtener publicaciones de 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": "Obtener subreddit aleatorio",
      "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": "Esperar entre solicitudes",
      "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": "Mantener solo imágenes nuevas",
      "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": "¿Hay imágenes nuevas?",
      "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": "Agregar imágenes nuevas",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        -224,
        96
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "new_images"
      },
      "typeVersion": 1
    },
    {
      "id": "b353f3c6-a1ea-4759-9616-00567be7c5d0",
      "name": "Notificar por 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": "Enviar texto sin imágenes nuevas",
      "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": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2480,
        -320
      ],
      "parameters": {
        "width": 400,
        "height": 736,
        "content": "## 🔄 How It Works\n\nWorkflow execution flow:\n\n1. 🕐 Cron trigger starts the process\n2. 🎲 Randomly selects a subreddit from your list\n3. 📥 Fetches latest 30 posts from 'new' category\n4. 🖼️ Filters posts to keep only i.redd.it images\n5. 🔍 Checks Google Drive for existing images\n6. ⬇️ Downloads only new/unseen images\n7. 📤 Uploads new images to specified Drive folder\n8. 📱 Sends Telegram notification with results\n\n⚡ **Smart duplicate prevention saves bandwidth!**\n\n## 🔐 Required Credentials\n\nSet up these credential connections:\n\n**1️⃣ Reddit OAuth2 API:**\n• Create Reddit app at reddit.com/prefs/apps\n• Use 'script' type application\n• Note Client ID and Secret\n\n**2️⃣ Google Drive OAuth2:**\n• Enable Google Drive API in Google Cloud Console\n• Create OAuth2 credentials\n• Set appropriate scopes for file upload\n\n**3️⃣ Telegram Bot API:**\n• Create bot via @BotFather on Telegram\n• Get bot token and your chat ID\n• Test with /start command"
      },
      "typeVersion": 1
    },
    {
      "id": "afd62df4-fc7b-41a9-9aa0-16808d05a7ab",
      "name": "Nota adhesiva6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2064,
        -320
      ],
      "parameters": {
        "width": 272,
        "height": 112,
        "content": "# 📌 Follow me:\n## [LinkedIn](https://www.linkedin.com/in/vikthyr)"
      },
      "typeVersion": 1
    },
    {
      "id": "314b4db5-4261-4395-b071-5cb7be9395c2",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1840,
        -96
      ],
      "parameters": {
        "color": 7,
        "width": 432,
        "height": 512,
        "content": "## ⚙️ Configuration Settings\n\nUpdate these variables in the Settings node:\n\n🔧 **Required Configuration:**\n• `telegram_chat_id`: Your Telegram chat ID for notifications\n• `subreddits_array`: List of subreddits to monitor\n  Example: `['memes', 'funny', 'pics']`\n\n⏱️ **Optional Settings:**\n• `wait_in_seconds`: Delay between requests (0.1s default)\n• `image_base_url`: Reddit image domain (i.redd.it)\n\n💡 **Tip:** Keep wait time low but respect Reddit's rate limits!"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "7f64bba8-8e4f-48f5-9411-e8618d8ff587",
  "connections": {
    "e2974ffa-3942-444b-bde3-30881e1c9675": {
      "main": [
        [
          {
            "node": "0bd4a770-9b16-4b30-836d-0013a530c3f5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0bd4a770-9b16-4b30-836d-0013a530c3f5": {
      "main": [
        [
          {
            "node": "81ad2196-6e73-4464-94ad-e546dd620337",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ae4f40b1-2401-4d90-a454-79e60e39ea6d": {
      "main": [
        [
          {
            "node": "28fac7ac-64d4-4b46-91c6-5ddc270ba863",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "189789a1-9107-4055-8f4f-c8440f461b12",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "44c886f4-09ac-46e9-8e9d-eb9751337fc8": {
      "main": [
        [
          {
            "node": "131453d7-6485-419b-afb7-a59f68719625",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0e0a5979-4f79-4471-a5e7-f5d115239280": {
      "main": [
        [
          {
            "node": "2df122fc-8687-4a1e-af60-f78355f9e9f2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9494edb5-de72-409b-ac68-64c9039098da": {
      "main": [
        [
          {
            "node": "44c886f4-09ac-46e9-8e9d-eb9751337fc8",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "ae4f40b1-2401-4d90-a454-79e60e39ea6d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "140b6db8-d088-4429-bbe1-03c01cccbe31": {
      "main": [
        [
          {
            "node": "23e525af-815f-4fe6-b50f-43820ffb5050",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2d9d65fe-45cf-46d9-872d-393f5e5229b2": {
      "main": [
        [
          {
            "node": "b353f3c6-a1ea-4759-9616-00567be7c5d0",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "a27568e7-2e17-44f0-a6e9-61017565926f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "23e525af-815f-4fe6-b50f-43820ffb5050": {
      "main": [
        [
          {
            "node": "ae4f40b1-2401-4d90-a454-79e60e39ea6d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "866be212-97a2-4121-9208-9245fe0a8d8a": {
      "main": [
        [
          {
            "node": "2d9d65fe-45cf-46d9-872d-393f5e5229b2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "81ad2196-6e73-4464-94ad-e546dd620337": {
      "main": [
        [
          {
            "node": "140b6db8-d088-4429-bbe1-03c01cccbe31",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "28fac7ac-64d4-4b46-91c6-5ddc270ba863": {
      "main": [
        [
          {
            "node": "866be212-97a2-4121-9208-9245fe0a8d8a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2df122fc-8687-4a1e-af60-f78355f9e9f2": {
      "main": [
        [
          {
            "node": "9494edb5-de72-409b-ac68-64c9039098da",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "131453d7-6485-419b-afb7-a59f68719625": {
      "main": [
        [
          {
            "node": "ae4f40b1-2401-4d90-a454-79e60e39ea6d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "189789a1-9107-4055-8f4f-c8440f461b12": {
      "main": [
        [
          {
            "node": "0e0a5979-4f79-4471-a5e7-f5d115239280",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado - Gestión de archivos, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos20
Categoría2
Tipos de nodos13
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Autor
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.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34