{"_id":"@codelytv/n8n-nodes-twitch","_rev":"17-a2f1cfd4507dcddf5939ee0bb42effee","name":"@codelytv/n8n-nodes-twitch","dist-tags":{"latest":"1.8.0"},"versions":{"1.3.1":{"name":"@codelytv/n8n-nodes-twitch","version":"1.3.1","keywords":["n8n","node","twitch","streaming","automation","typescript","n8n-community-node-package"],"author":{"name":"CodelyTV","email":"soporte@codely.tv"},"license":"GPL-3.0","_id":"@codelytv/n8n-nodes-twitch@1.3.1","maintainers":[{"name":"rgomezcasas","email":"rafa.gomez@codely.tv"},{"name":"dani.santamaria","email":"dani.santamaria@codely.tv"},{"name":"ismanapa","email":"ismanapa@gmail.com"},{"name":"ninodafonte","email":"nino.dafonte@codely.tv"},{"name":"javiercane","email":"javier.mailserio@gmail.com"}],"homepage":"https://github.com/codelytv/n8n-nodes-twitch#readme","bugs":{"url":"https://github.com/codelytv/n8n-nodes-twitch/issues"},"n8n":{"nodes":["dist/nodes/Twitch/TwitchTrigger.node.js"],"credentials":["dist/credentials/TwitchApi.credentials.js"]},"dist":{"shasum":"509c732b578eafe2956b7a4888a549e924cd40ac","tarball":"https://registry.npmjs.org/@codelytv/n8n-nodes-twitch/-/n8n-nodes-twitch-1.3.1.tgz","fileCount":14,"integrity":"sha512-ujNgPjDBo4qPPTuJzNqPfodsJX7J5Ot3J/aZB9ZY10aJCDUqVtkmDL5FxCJp+UHAM63R9lkUwN+uy/03EfEoBw==","signatures":[{"sig":"MEQCIGcHmav2liPTknyHFwseBAQ0Yj/prsAo7Gmwuki91/QnAiBxZlj2P+5b/mAwwSPzYOIZUUJ2U3c7yMBcfJ4UcnA0Qw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":59204,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqfjhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6OA/+Oy6xt4KF/ejVOnNPFvC8pvgYS9Qi/dZQgAEfFPVwjfMEAPUU\r\nyCob10wCmk+Ic/qj62Utu0YVgsDRGswFwf4P4dwac2MBiYOXZuQI2YCVKNnv\r\nOn/HNwKV9DXHf/gJG3lhQPi31sxbJJWlSvbO8SkZtw71j3QVa1ABDD5DSwIm\r\nWEWawSVR+yxOcme27BpI+pc5aUh5RCb2u0ET7COaxBz/cT4TiTUEhmLhz2BM\r\nY7rY0ZF1HCxTJV8SlZpyGjjQTz3mtJ7z+GfHFQ2IljStJq3EIQTvElyOvs07\r\nyP8W/tkwGn9xwm2oUZCf1dLKkAEd/PkZDJUdnL9RbSBGXcuYp+1RylohVQwU\r\ntG8ou5TfFMH3ZN0B+03yL7FRp0PQGg4Fg1N4XZgC8vNz97spI7COYkIehLVj\r\nPZTve1IBY+Di9UH6D9CeUNr+hvOrOXM5UAYi7tjwkkI1X4A0+9bwiGcbT+YF\r\ny4cNU2+Irhs/KWLCfb+fEaRCmKL88tr+mmagW1dO3mN0f6LNqoo5KmiRsq/y\r\ni3ctOtMXZUERO2eNvocrnYY2Xr1dwsD9ga8BBFJ7IemPuOb1ZTx65u3JNS+x\r\n4qBI6StDmjHiofkJxZnXxODOVVUvDQXFNz9Ziuq/DAaMwETLZli9YRCfcT5M\r\nEyRm7LSqGXwmtDjwNoyrSK+0blNVBnnCZNw=\r\n=hBcW\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testURL":"http://localhost/","testRegex":"(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$","transform":{"^.+\\.tsx?$":"ts-jest"},"moduleFileExtensions":["ts","tsx","js","json"],"testPathIgnorePatterns":["/dist/","/node_modules/"]},"main":"index.js","gitHead":"347b94ecfd7925fb47eaabb528a9a5d8658d646c","scripts":{"dev":"npm run watch","lint":"tslint -p tsconfig.json -c tslint.json","test":"jest","build":"tsc && gulp","watch":"tsc --watch","lintfix":"tslint --fix -p tsconfig.json -c tslint.json","nodelinter":"nodelinter"},"_npmUser":{"name":"ninodafonte","email":"nino.dafonte@codely.tv"},"repository":{"url":"git+https://github.com/codelytv/n8n-nodes-twitch.git","type":"git"},"_npmVersion":"6.14.17","description":"Twitch Trigger node for n8n to get notified about various events.","directories":{},"_nodeVersion":"14.19.3","dependencies":{"n8n-core":"~0.116.0"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^4.0.0","jest":"^26.4.2","tslint":"^6.1.2","ts-jest":"^26.3.0","nodelinter":"^0.1.9","typescript":"~4.3.5","@types/jest":"^26.0.13","@types/node":"^14.17.27","n8n-workflow":"~0.98.0","@types/express":"^4.17.6","@types/request-promise-native":"~1.0.15"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-twitch_1.3.1_1655306465282_0.03313645635215123","host":"s3://npm-registry-packages"}},"1.5.2":{"name":"@codelytv/n8n-nodes-twitch","version":"1.5.2","keywords":["n8n","n8n-node","n8n-nodes","node","twitch","streaming","n8n-community-node-package","codely","codelytv"],"author":{"name":"CodelyTV","email":"support@codely.com"},"license":"MIT","_id":"@codelytv/n8n-nodes-twitch@1.5.2","maintainers":[{"name":"javiercane","email":"javier.mailserio@gmail.com"},{"name":"rgomezcasas","email":"rafa.gomez@codely.tv"}],"homepage":"https://github.com/codelytv/n8n-nodes-twitch#readme","bugs":{"url":"https://github.com/codelytv/n8n-nodes-twitch/issues"},"n8n":{"nodes":["dist/nodes/Twitch/TwitchTrigger.node.js"],"credentials":["dist/credentials/TwitchApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"c49115dd920c54c2a3dc02d945f4c57eb0de4970","tarball":"https://registry.npmjs.org/@codelytv/n8n-nodes-twitch/-/n8n-nodes-twitch-1.5.2.tgz","fileCount":16,"integrity":"sha512-Nsa7IROvi0hAJjLCy9NQOtZdgPtl+uJ167L1B2ObJjX+ZBA1nHhSZ1zLc71pj9zoYU2O5H/MB9h4tuUppLXzpw==","signatures":[{"sig":"MEUCIQCPM3u052reB229HlddvuKKFVmVsVRN+OZUCxk1GSB4/wIgIQEVsLq4zK9TCceYFwqhnIg6z7YRievgrMl+chhn44c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codelytv%2fn8n-nodes-twitch@1.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":190845},"main":"index.js","type":"module","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"b0b0e5bbf1b6d322c6142b04d89cb90adf983e05","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix"},"_npmUser":{"name":"javiercane","email":"javier.mailserio@gmail.com"},"repository":{"url":"git+https://github.com/CodelyTV/n8n-nodes-twitch.git","type":"git"},"_npmVersion":"10.9.2","description":"n8n node for Twitch: Execute workflows on stream start, stream end, and new follows.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"n8n-core":"^1.14.1"},"_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^9.27.0","globals":"^16.1.0","nodelinter":"^0.1.9","typescript":"^5.8.3","@types/node":"^22.15.21","n8n-workflow":"^1.82.0","@types/express":"^5.0.2","typescript-eslint":"^8.32.1","eslint-plugin-jsonc":"^2.20.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.32.1","eslint-plugin-n8n-nodes-base":"^1.16.3","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-twitch_1.5.2_1748188695969_0.49177360596505304","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@codelytv/n8n-nodes-twitch","version":"1.5.3","keywords":["n8n","n8n-node","n8n-nodes","node","twitch","streaming","n8n-community-node-package","codely","codelytv"],"author":{"name":"CodelyTV","email":"support@codely.com"},"license":"MIT","_id":"@codelytv/n8n-nodes-twitch@1.5.3","maintainers":[{"name":"javiercane","email":"javier.mailserio@gmail.com"},{"name":"rgomezcasas","email":"rafa.gomez@codely.tv"}],"homepage":"https://github.com/codelytv/n8n-nodes-twitch#readme","bugs":{"url":"https://github.com/codelytv/n8n-nodes-twitch/issues"},"n8n":{"nodes":["dist/nodes/Twitch/TwitchTrigger.node.js"],"credentials":["dist/credentials/TwitchApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"a904ab52e2e21a925075a588cf5e1865228e38bb","tarball":"https://registry.npmjs.org/@codelytv/n8n-nodes-twitch/-/n8n-nodes-twitch-1.5.3.tgz","fileCount":16,"integrity":"sha512-+YiKZencsJaJUwTfUAFqxzS89iV8+5ATeEXdfqggLuXeCuAlqRpSz/S8FvtdwU3mqtMHp0cUN0SyfqjrnmC2BA==","signatures":[{"sig":"MEUCIQCfygkbf0i+o+Ia47XcdQIprjx3MTyVTzzqR9YX1lU8oQIgHDwqrcJj7P3Do+PDXJtPA+uSALjAyBdQYrC4yvOVHpk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codelytv%2fn8n-nodes-twitch@1.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":94723},"main":"index.js","type":"module","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"e057fdedc5dd9003815d179b6046ee469c8a953a","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix"},"_npmUser":{"name":"javiercane","email":"javier.mailserio@gmail.com"},"repository":{"url":"git+https://github.com/CodelyTV/n8n-nodes-twitch.git","type":"git"},"_npmVersion":"10.9.2","description":"n8n node for Twitch: Execute workflows on stream start, stream end, and new follows.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^9.27.0","globals":"^16.1.0","nodelinter":"^0.1.9","typescript":"^5.8.3","@types/node":"^22.15.21","n8n-workflow":"^1.82.0","@types/express":"^5.0.2","typescript-eslint":"^8.32.1","eslint-plugin-jsonc":"^2.20.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.32.1","eslint-plugin-n8n-nodes-base":"^1.16.3","@typescript-eslint/eslint-plugin":"^8.32.1"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-twitch_1.5.3_1748194492573_0.6244944191001747","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@codelytv/n8n-nodes-twitch","version":"1.6.0","keywords":["n8n","n8n-node","n8n-nodes","node","twitch","streaming","n8n-community-node-package","codely","codelytv"],"author":{"name":"CodelyTV","email":"support@codely.com"},"license":"MIT","_id":"@codelytv/n8n-nodes-twitch@1.6.0","maintainers":[{"name":"javiercane","email":"javier.mailserio@gmail.com"},{"name":"rgomezcasas","email":"rafa.gomez@codely.tv"}],"homepage":"https://github.com/codelytv/n8n-nodes-twitch#readme","bugs":{"url":"https://github.com/codelytv/n8n-nodes-twitch/issues"},"n8n":{"nodes":["dist/nodes/Twitch/TwitchTrigger.node.js","dist/nodes/Twitch/Twitch.node.js"],"credentials":["dist/credentials/TwitchApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"cb1df2dfd3dcb8e44b43bdd637f915b633dee1cd","tarball":"https://registry.npmjs.org/@codelytv/n8n-nodes-twitch/-/n8n-nodes-twitch-1.6.0.tgz","fileCount":19,"integrity":"sha512-nKm51lx+fuGP1Smgu8ZxcPtTzVsdfjiJbLA3VLTfWDy2m1fhRR2Z3o6LLQKhmHIXjc2dYpTdDH/izUlLVVmUrQ==","signatures":[{"sig":"MEQCIBmWVJ/oTxkMpmIi6PUMlIrzBRKtkmVuyIKbOUb1ynuzAiAywcuiSLnOooy0ecfzoYHPHBgbtD9XgY7vwlOeZCLcKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codelytv%2fn8n-nodes-twitch@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98920},"main":"index.js","type":"module","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"00279f9d10af4600e9e302c7fe4d8db8ee46d295","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix"},"_npmUser":{"name":"javiercane","email":"javier.mailserio@gmail.com"},"repository":{"url":"git+https://github.com/CodelyTV/n8n-nodes-twitch.git","type":"git"},"_npmVersion":"10.9.2","description":"n8n node for Twitch: Execute workflows on stream start, stream end, and new follows.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^9.27.0","globals":"^16.1.0","nodelinter":"^0.1.9","typescript":"^5.8.3","@types/node":"^22.15.21","n8n-workflow":"^1.82.0","@types/express":"^5.0.2","typescript-eslint":"^8.32.1","eslint-plugin-jsonc":"^2.20.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.32.1","eslint-plugin-n8n-nodes-base":"^1.16.3","@typescript-eslint/eslint-plugin":"^8.32.1"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-twitch_1.6.0_1748253003956_0.4028582316035372","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@codelytv/n8n-nodes-twitch","version":"1.7.0","keywords":["n8n","n8n-node","n8n-nodes","node","twitch","streaming","n8n-community-node-package","codely","codelytv"],"author":{"name":"CodelyTV","email":"support@codely.com"},"license":"MIT","_id":"@codelytv/n8n-nodes-twitch@1.7.0","maintainers":[{"name":"javiercane","email":"javier.mailserio@gmail.com"},{"name":"rgomezcasas","email":"rafa.gomez@codely.tv"}],"homepage":"https://github.com/codelytv/n8n-nodes-twitch#readme","bugs":{"url":"https://github.com/codelytv/n8n-nodes-twitch/issues"},"n8n":{"nodes":["dist/nodes/Twitch/TwitchTrigger.node.js","dist/nodes/Twitch/Twitch.node.js"],"credentials":["dist/credentials/TwitchApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"29d642c06f0c27fab1d3e1d9692a0dcf0fc618e6","tarball":"https://registry.npmjs.org/@codelytv/n8n-nodes-twitch/-/n8n-nodes-twitch-1.7.0.tgz","fileCount":19,"integrity":"sha512-xYbuo2p3opns4dLGNt/fPfW0UtcdPeR4nD/A6EiYq748GdbBy9z7vAWD7BF9mygYWhK3NfW55U+MWhutKn271A==","signatures":[{"sig":"MEUCIAqqJXwoIbUcjiHrnNBy++8fH39kermkLfW/sMLxua+cAiEA0yO0yfRUKldH7xFbTWWGJlXRUJgW1mgMscvQkvxhtvs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codelytv%2fn8n-nodes-twitch@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106808},"main":"index.js","type":"module","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"bb4af8a80b3388c519224567a6f78091d6942c53","scripts":{"dev":"tsc --watch","lint":"eslint nodes credentials package.json","build":"tsc && gulp build:icons","format":"prettier nodes credentials --write","lintfix":"eslint nodes credentials package.json --fix"},"_npmUser":{"name":"javiercane","email":"javier.mailserio@gmail.com"},"repository":{"url":"git+https://github.com/CodelyTV/n8n-nodes-twitch.git","type":"git"},"_npmVersion":"10.9.2","description":"n8n node for Twitch: Execute workflows on stream start, stream end, and new follows.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"gulp":"^5.0.0","eslint":"^9.27.0","globals":"^16.1.0","nodelinter":"^0.1.9","typescript":"^5.8.3","@types/node":"^22.15.21","n8n-workflow":"^1.82.0","@types/express":"^5.0.2","typescript-eslint":"^8.32.1","eslint-plugin-jsonc":"^2.20.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.32.1","eslint-plugin-n8n-nodes-base":"^1.16.3","@typescript-eslint/eslint-plugin":"^8.32.1"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-twitch_1.7.0_1749143086407_0.5444491250957224","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@codelytv/n8n-nodes-twitch","version":"1.8.0","description":"n8n node for Twitch: Execute workflows on stream start, stream end, and new follows.","keywords":["n8n","n8n-node","n8n-nodes","node","twitch","streaming","n8n-community-node-package","codely","codelytv"],"license":"MIT","homepage":"https://github.com/codelytv/n8n-nodes-twitch#readme","bugs":{"url":"https://github.com/codelytv/n8n-nodes-twitch/issues"},"author":{"name":"CodelyTV","email":"support@codely.com"},"repository":{"type":"git","url":"git+https://github.com/CodelyTV/n8n-nodes-twitch.git"},"type":"module","engines":{"node":">=20.0.0","npm":">=10.0.0"},"main":"index.js","scripts":{"build":"tsc && gulp build:icons","dev":"tsc --watch","format":"prettier nodes credentials --write","lint":"eslint nodes credentials package.json","lintfix":"eslint nodes credentials package.json --fix"},"n8n":{"n8nNodesApiVersion":1,"credentials":["dist/credentials/TwitchApi.credentials.js"],"nodes":["dist/nodes/Twitch/TwitchTrigger.node.js","dist/nodes/Twitch/Twitch.node.js"]},"devDependencies":{"typescript":"^5.8.3","n8n-workflow":"^1.82.0","@types/express":"^5.0.2","@types/node":"^22.15.21","gulp":"^5.0.0","jsonc-eslint-parser":"^2.4.0","nodelinter":"^0.1.9","eslint":"^9.27.0","globals":"^16.1.0","eslint-plugin-jsonc":"^2.20.1","eslint-plugin-n8n-nodes-base":"^1.16.3","typescript-eslint":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1","@typescript-eslint/parser":"^8.32.1"},"peerDependencies":{"n8n-workflow":"*"},"_id":"@codelytv/n8n-nodes-twitch@1.8.0","gitHead":"76049aef4b4eabca43c1e0f52521a267198bdd54","_nodeVersion":"22.17.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-LTtCwigEKvWIvbpwFRNXV0ezO052mlQIROzD//powL6boGnByHCahLC4hsztrKtTRiWERLUYmUaysvG2ZlhCQg==","shasum":"fcec5cc330a213e811b03645fd19fc4318aa1d8e","tarball":"https://registry.npmjs.org/@codelytv/n8n-nodes-twitch/-/n8n-nodes-twitch-1.8.0.tgz","fileCount":19,"unpackedSize":107637,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codelytv%2fn8n-nodes-twitch@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCNjOwLApDl/tPsh65agorav1riHVezMYV9gMoDEADYnQIhAKDfubOobGBQixpzf9PRO5Y9mFoPony5hUeYLQdj0Z3O"}]},"_npmUser":{"name":"javiercane","email":"javier.mailserio@gmail.com"},"directories":{},"maintainers":[{"name":"javiercane","email":"javier.mailserio@gmail.com"},{"name":"rgomezcasas","email":"rafa.gomez@codely.tv"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/n8n-nodes-twitch_1.8.0_1753695962315_0.8437835339254105"},"_hasShrinkwrap":false}},"time":{"created":"2022-06-15T15:21:05.226Z","modified":"2025-07-28T09:46:02.930Z","1.1.0":"2022-05-30T10:21:11.246Z","1.2.0":"2022-06-01T11:01:10.973Z","1.2.2":"2022-06-01T11:09:27.961Z","1.3.1":"2022-06-15T15:21:05.437Z","1.5.2":"2025-05-25T15:58:16.255Z","1.5.3":"2025-05-25T17:34:52.807Z","1.6.0":"2025-05-26T09:50:04.169Z","1.7.0":"2025-06-05T17:04:46.628Z","1.8.0":"2025-07-28T09:46:02.489Z"},"bugs":{"url":"https://github.com/codelytv/n8n-nodes-twitch/issues"},"author":{"name":"CodelyTV","email":"support@codely.com"},"license":"MIT","homepage":"https://github.com/codelytv/n8n-nodes-twitch#readme","keywords":["n8n","n8n-node","n8n-nodes","node","twitch","streaming","n8n-community-node-package","codely","codelytv"],"repository":{"type":"git","url":"git+https://github.com/CodelyTV/n8n-nodes-twitch.git"},"description":"n8n node for Twitch: Execute workflows on stream start, stream end, and new follows.","maintainers":[{"name":"javiercane","email":"javier.mailserio@gmail.com"},{"name":"rgomezcasas","email":"rafa.gomez@codely.tv"}],"readme":"<p align=\"center\">\n  <a href=\"https://codely.com\">\n    <picture>\n      <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://codely.com/logo/codely_logo-dark.svg\">\n      <source media=\"(prefers-color-scheme: light)\" srcset=\"https://codely.com/logo/codely_logo-light.svg\">\n      <img alt=\"Codely logo\" src=\"https://codely.com/logo/codely_logo.svg\">\n    </picture>\n  </a>\n</p>\n\n<h1 align=\"center\">\n  🛠 Twitch node for n8n\n</h1>\n\n<p align=\"center\">\n    <a href=\"https://github.com/CodelyTV\"><img src=\"https://img.shields.io/badge/Codely-OS-green.svg?style=flat-square\" alt=\"Codely Open Source projects\"/></a>\n    <a href=\"https://pro.codely.com\"><img src=\"https://img.shields.io/badge/Codely-Pro-black.svg?style=flat-square\" alt=\"Codely Pro courses\"/></a>\n</p>\n\n<p align=\"center\">\n    Trigger workflows on stream start or stream end, search for Twitch streams details…\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/CodelyTV/n8n-nodes-twitch/stargazers\">Stars welcomed 😊</a>\n</p>\n\n# 👀 n8n Twitch node features\n\nOnce installed, you will be able to add Twitch triggers and actions to your n8n workflows.\n\n1. Search for Twitch node:\n\n   <img alt=\"Twitch node in the n8n nodes panel\" src=\"/docs/node.png\" width=\"336\" height=\"180\">\n\n2. Select the desired action or trigger:\n\n   <img alt=\"Twitch node triggers\" src=\"/docs/node-actions-and-triggers.png\" width=\"336\" height=\"504\">\n\n3. Parametrize it:\n\n   <img alt=\"Twitch node parameters\" src=\"/docs/node-parameters.png\" width=\"336\" height=\"350\">\n\n# 🚀 Installation instructions\n\nThis node is in the process to be officially verified by n8n.\nThe installation process will be as simple as searching for \"Twitch\" in the nodes panel once we get that verification,\nbut in the meantime, you have several options that depend on how you use n8n.\n\nWe recommend checking out the [updated n8n instructions\non how to install community nodes](https://docs.n8n.io/integrations/community-nodes/installation/) for possible updates to this process.\n\n## a) n8n cloud instance\n\nIt is not possible to install unverified community nodes in n8n cloud ([documentation](https://docs.n8n.io/integrations/community-nodes/installation/)).\nOnce we get that verification, you will be able to install this node following [this step by step](https://docs.n8n.io/integrations/community-nodes/installation/verified-install/).\n\n## b) Self-hosted n8n instance\n\n### b.a) Not using queue mode: GUI installation\n\nFollow [the official instructions](https://docs.n8n.io/integrations/community-nodes/installation/gui-install/)\nspecifying `@codelytv/n8n-nodes-twitch` as the node name to install:\n\n<img alt=\"Twitch community node installation\" src=\"/docs/node-installation.png\" width=\"336\" height=\"241\">\n\n## b.b) Using queue mode\n\n### b.b.a) Install as npm package\n\nThis is the officially recommended way for self-hosted n8n instances running in queue mode ([documentation](https://docs.n8n.io/integrations/community-nodes/installation/manual-install/).\n\nGo to the folder where n8n is installed (if you are using the standard Docker installation, it will probably be:\n`/usr/local/lib/node_modules/n8n`) and install the package as any other npm package:\n\n```bash\nnpm i @codelytv/n8n-nodes-twitch\n```\n\n### b.b.b) Install as Custom Docker image\n\n`Dockerfile` contents example for a custom image with this node added:\n\n```dockerfile\nARG N8N_VERSION\nFROM n8nio/n8n:${N8N_VERSION}\n\nRUN if [ -z \"$N8N_VERSION\" ]; then echo \"💥 N8N_VERSION argument missing.\"; exit 1; fi && \\\n    mkdir -p /home/node/.n8n/nodes && \\\n    npm install --prefix /home/node/.n8n/nodes --production --silent @codelytv/n8n-nodes-twitch\n```\n\n### b.b.c) Install using Docker Compose / Docker Swarm with mapped volume\n\nTake into account that this option has a considerable downside:\nThe workflows you create will contain `CUSTOM.twitchTrigger` as the node type reference instead of `@codelytv/n8n-nodes-twitch.twitchTrigger`. However, it could be the best approach if you want a faster feedback loop while developing.\nTake into account that localhost will not be reachable from Twitch, so you `probably are interested into exposing it with a tunnel using something like `cloudflared`, or just expose a remote host to Twitch.\n\nDocker Compose / Docker Swarm definition snippet:\n\n```yaml\nvolumes:\n  n8n_data:\n    name: '{{.Service.Name}}_{{.Task.Slot}}'\n\nservices:\n  n8n-main:\n    volumes:\n      - n8n_data:/home/node/.n8n\n      - /home/codely/n8n-custom-nodes:/home/node/.n8n/custom\n```\n\nDeploy process:\n\n```bash\nCUSTOM_NODES_DIR=\"$HOME/n8n-custom-nodes\"\n\nmkdir -p \"$CUSTOM_NODES_DIR\"\n\ndocker run --rm \\\n  --user \"$(id -u):$(id -g)\" \\\n  -v \"$CUSTOM_NODES_DIR\":/data \\\n  -w /data \\\n  node:22-alpine \\\n  sh -c \"npm install @codelytv/n8n-nodes-twitch --production --silent\"\n\ndocker stack deploy -c n8n-swarm.yml n8n\n```\n\n# 🔑 How to get Twitch credentials\n\nYou will need to create a new Twitch application to get Client ID and Client Secret following these steps:\n\n1. Go to the [Twitch Developer Console](https://dev.twitch.tv/console/apps).\n2. Log in using your Twitch account credentials.\n3. Click on the \"+ Register Your Application\" button.\n4. Fill out the form as follows and click \"Create\":\n   - Name: Name your app (e.g., “n8nTwitchBot”).\n   - OAuth Redirect URLs: Use a valid redirect URL.\n     Something like http://localhost:5678/rest/oauth2-credential/callback works.\n     We do not plan to display Twitch authentication to end users with Oauth.\n     We're only interested in getting the Client ID and Client Secret, so it's fine to specify a local URL.\n   - Category: Application Integration\n   - Client Type: Confidential\n5. Get your credentials:\n   - Click on \"Manage\"\n   - Client ID: Visible right away.\n   - Client Secret: Click \"New Secret\" to generate one. Be sure to store this securely (it won’t be shown again).\n\n# 💻 Documentation for node contributors\n\nHow to locally test this node (based on [the official n8n guide](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/)):\n\n1. Clone and move to the node development folder\n   ```bash\n   cd ~/Code/work/codely/public/\n   git clone git@github.com:CodelyTV/n8n-nodes-twitch.git\n   cd n8n-nodes-twitch\n   ```\n2. Build the node\n   ```bash\n   npm run build\n   ```\n3. Create a npm global symlink to the locally installed package \n   ```bash\n   npm link\n   ```\n4. Install n8n locally:\n   ```bash\n   npm install n8n -g\n   ```\n5. Move to your n8n local installation\n   ```bash\n   cd ~/.n8n/\n   ```\n6. Create a custom nodes folder\n    ```bash\n    mkdir custom\n    cd custom\n7. Link the node package to the symlink previously created\n    ```bash\n    npm link @codelytv/n8n-nodes-twitch\n    ```\n8. Validate that the local n8n instance has the Twitch node pointing to the local folder\n   ```bash\n   tree -L 3 -d\n   ```\n   Expected output:\n   ```bash\n   .\n   └── node_modules\n       └── @codelytv\n           └── n8n-nodes-twitch -> ../../../../Code/work/codely/public/n8n-nodes-twitch\n   ```\n9. Run n8n\n    ```bash\n    n8n start\n    ```\n10. Enjoy!\n\n# 👌 Codely Code Quality Standards\n\nPublishing this package we are committing ourselves to the following code quality standards:\n\n- 🤝 Respect **Semantic Versioning**: No breaking changes in patch or minor versions\n- 🤏 No surprises in transitive dependencies: Use the **bare minimum dependencies** needed to meet the purpose\n- 🎯 **One specific purpose** to meet without having to carry a bunch of unnecessary other utilities\n- 📖 **Well documented ReadMe** showing how to install and use\n- ⚖️ **License favoring Open Source** and collaboration\n","readmeFilename":"README.md"}