3
import time
import win32api, win32con
import socket #imports module allowing connection to IRC
import threading #imports module allowing timing functions

#sets variables for connection to twitch chat
bot_owner = 'TheMagicalCake'
nick = 'MagicalCakeBot'
channel = '#TheMagicalCake'
server = 'magicalcakebot.jtvirc.com'
password = '~redacted~'

irc = socket.socket()
irc.connect((server, 6667)) #connects to the server

#sends variables for connection to twitch chat
irc.send('PASS ' + password + '\r\n')
irc.send('USER ' + nick + ' 0 * :' + bot_owner + '\r\n')
irc.send('NICK ' + nick + '\r\n')
irc.send('JOIN ' + channel + '\r\n') 

I'm trying to make a bot for twitch chat but when I run this code I get the error I'm using someone elses code that works for them but not for me

Traceback (most recent call last):
  File "C:/Users/Owner/Desktop/TheMagicalCake", line 47, in <module>
    irc.connect((server, 6667)) #connects to the server
  File "C:\Python27\lib\socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
gaierror: [Errno 11004] getaddrinfo failed
Community
  • 1
  • 1
TheMagicalCake
  • 309
  • 1
  • 6
  • 13

1 Answers1

4

getaddrinfo failed generally means that the hostname you are trying to connect to can not be resolved to an IP address. In this case, it probably means that it doesn't exist.

Why?

When you pass socket.connect() a hostname instead of an IP address, it first needs to find the IP address of said hostname. It does this using socket.getaddrinfo(), which asks DNS servers for information about the hostname. It turns out that no DNS server has this information, so the call to getaddrinfo fails, hence the error message.

How to connect to Twitch's IRC

The procedure of connecting to Twitch's IRC has changed a bit since your guide was made, it seems. Here's how I managed to do it.

  • Get an OAuth token from TwitchApps
  • Connect, with your twitch username, to irc.twitch.tv, port 6667. As password, use oauth: plus the oauth token you just got.
  • Join the channel you are streaming on.
Sam van Kampen
  • 973
  • 9
  • 17
  • I'm using the name of my twitch bot like they did in the guide. I also tried the channel i wanted to stream from which didn't work either. Do you know what the correct host would be? – TheMagicalCake Feb 19 '14 at 00:30
  • I've updated my post with what seems to work now, your guide is a bit outdated it seems. – Sam van Kampen Feb 19 '14 at 07:27