Category Archives: 31-bot

Yeliz Karadayi

02 Mar 2015

https://twitter.com/twibeezy

This bot randomly selects a video from YouTube’s most popular video feed. A program scheduler runs it every two hours. From there the bot looks at several hundred comments and finds the comment with the most replies. Why was this comment the one with the most replies? What made it so evocative? Was it rude? Was it funny? Was it honest? Either way, the fact of the matter is that i not IS the most responded to comment at that instant, and it is telling of what matters to our society today, right now, in terms of the video content AND the comment.

I definitely laughed at some of the comments so far. One of them particularly reached out to me even, the one about women not being able to take their shirts off at sporting events. I mean personally, I wouldn’t feel comfortable doing it even if society accepted it, and I’d probably judge a woman who did…and all the men who didn’t stop staring…I mean, it makes me think. We as women by natural design are more guarded about our bodies because we are responsible for the after-effects regardless of whether or not the man also takes responsibility. That fact alone, that’s insane. Because of it, women by evolutionary traits are more protective of their bodies, and thus explains my inherent desire to not go around topless, because it IS, let’s face it, inviting to eyes. I don’t know why it’s different when men look than when women look, but it’s probably because men are bigger and honestly just generally more threatening to women are than women are to men. It’s crazy I’m thinking about any of this, and I don’t even know if I agree with it as I write, because I hate how it sounds. I like to think human minds have evolved far beyond the notion of ‘men will be men so it’s the woman’s responsibility to not get raped/harassed/stared at’, and that women should get to do whatever they want and not have it imply anything beyond what it is, such as, a woman taking off her freaking shirt when it’s hot, or even [I guess] shaking her tits at the camera with no feelings of being objectified, to support her team. HAA! That’s not possible now and I just personally don’t see it. Then again, I DID see a gif of a girl wildly shaking her tits at a camera…and it was NOT sexual AT ALL, because it was too funny and weird to be considered sexy…to me anyway. Another hilarious video of a naked woman was on Broad City, which also did not seem sexual at all. Maybe we ARE breaking the barriers?

The point is, this project ended up being a lot more fun than I had expected, and that’s awesome. Definitely thought-provoking when you ask yourself, why is that the comment people replied to most?

I’d say my bot falls under statement, as it IS kind of making a statement by taking other people’s statements and, in a way, might be de-contextualizing it depending on whether or not the commenter had been responding to someone else.

1 2

 


#Code Borrowed From https://developers.google.com/youtube/1.0/developers_guide_python

#Youtube Part
import urlparse
import gdata.youtube
import gdata.youtube.service
from HTMLParser import HTMLParser
import requests
import json
import random

#Twitter Part
import os, time
from twython import Twython
from StringIO import StringIO

#timestuff
from datetime import datetime
import os
from apscheduler.schedulers.blocking import BlockingScheduler

#Connect to Youtube
yt_service = gdata.youtube.service.YouTubeService()

#Code Borrowed From http://www.pythonforbeginners.com/api/using-the-youtube-api
# Get the feed

r = requests.get("http://gdata.youtube.com/feeds/api/standardfeeds/most_popular?v=2&alt=jsonc")
r.text

# Convert it to a Python dictionary
data = json.loads(r.text)

videoindex = random.randint(1, len(data['data']['items']))

# Loop through the result.
video_id = (data['data']['items'][videoindex]['id'])
url_data = "http://youtu.be/" + video_id

print"video_id"
print video_id
print"url_data"
print url_data

#Get Video
# url_data = urlparse.urlparse("https://www.youtube.com/watch?v=85P2iMHfzKw")
# query = urlparse.parse_qs(url_data.query)
# video_id = query["v"][0]
#Get Comment Feed
comment_feed = yt_service.GetYouTubeVideoCommentFeed(video_id=video_id)

#Connect to Twitter
APP_KEY='hnWvsJh1i2QQmdwfK7zsTmiof'
APP_SECRET='kXjUFcAfJRsmy81yvZe0Wcw1JdxGIi2ooeIgNVrbsnQhLeMOc8'
OAUTH_TOKEN='3060242525-9bL2kUpmn3omZAa1U0QVzKJfziFCu9fPyYnzAoj'
OAUTH_TOKEN_SECRET='tTVCoEwBKfOBLjU56NRyT4kbLwu2i7bBWKGlk2KMPDujN'

twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

contentTag = 'ns0:content'
replyTag = 'ns1:replycount'
getdata = []
comments = []
replyCount = []

#Parsed With HTMLParser: https://docs.python.org/3/library/html.parser.html
#Determine Comments and Reply Counts
class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
# print("Encountered a start tag:", tag)
if (tag==contentTag):
# print("Encountered a start tag:", tag)
getdata.append(1)
elif (tag==replyTag):
# print("Encountered a start tag:", tag)
getdata.append(2)
# def handle_endtag(self, tag):
# print("Encountered an end tag :", tag)
def handle_data(self, data):
for x in xrange(len(getdata)):
if(getdata[x]==1):
comments.append(data)
getdata.pop(x)
elif(getdata[x]==2):
replyCount.append(data)
getdata.pop(x)
# print("Encountered some data :", data)

parser = MyHTMLParser()

while comment_feed is not None:
for comment_entry in comment_feed.entry:
parser.feed(comment_entry.ToString())
if(len(comments) > 300): break
next_link = comment_feed.GetNextLink()
if next_link is None:
comment_feed = None
else:
comment_feed = yt_service.GetYouTubeVideoCommentFeed(next_link.href)

maxReply = 0
index = 0

print "GETDATA:"
print len(getdata)

print''
print''
print "COMMENTS:"
print len(comments)

print''
print''
print"REPLIES:"
print len(replyCount)

print''
print''

# for c in xrange(len(comments)):
# print replyCount[c]
# print comments[c]

for c in xrange(len(comments)):
if (int(maxReply) < int(replyCount[c])): # print "replyTag: ", replyTag # print "replyCount[c]: ", replyCount[c] maxReply = int(replyCount[c]) index = c print "comment:" print comments[index] print "replycount" print replyCount[index] twitter.update_status(status=comments[index][:139-len(str(url_data))] + ' ' + str(url_data))

Edge of the Internet Bot

My bot is called @mynewwebpage. It tweets every time I visit a new website. You can get your own “creepy” bot by going to edgeofinternet.us. (“creepy” according to my girlfriend’s coworkers).

Its bio: Trying to find the edge of the internet. Twitter feed logging every domain I visit.


Process

I had been thinking of ways to track the tabs I have open at any moment for a while. I was thinking of creating a website that would publish every website I was looking at at any moment. Then this assignment came along, and I decided to implement the tracking software (it’s a Chrome extension), but have its output go to a Twitter account.

I wasn’t sure how to reduce this feed of information into something interesting. With David Newbury and Golan’s ideas, I decided to only tweet if a website I was visiting was one I had never visited before. I expect that eventually the new sites I visit will reduce to a slower, steady pace. I’m curious to see this stable-state and be able to compare different people’s stable states.

The bot has surprised me by showing how many new sites I visit. I didn’t expect to be visiting new sites every few minutes a week and a half after implementing. The drop-off in new visits has not been steep or exponential. Instead it looks like a gradual slope.

I have had very strong reactions to the bot. I created the bot as a service—anyone can set this up for themselves using my system. I thought I would be able to get someone else to do this with me as an exercise in self-discovery. No one has wanted to divulge their browsing patterns. They think it’s too creepy and personal. I didn’t expect this reaction.

Taxonomy

This bot is clearly a feed-based bot. It publishes a running list of sites I visit. It doesn’t communicate or respond in any way.

Screen shots

Latest websites Visited:

Screen Shot 2015-03-02 at 10.45.32 AM

First websites visited:

Screen Shot 2015-03-02 at 10.46.00 AM

Random moment in timeScreen Shot 2015-03-02 at 10.47.36 AM:

 

 

 

ST

27 Feb 2015

My bot is called @ColorSquares and its URL is https://twitter.com/ColorSquares

This is a bot which generates color studies based off of common nouns. The feed is curated.

I was inspired to make this bot while working on the following color study:

HecticColorStudy

For this, I manually google image searched the word ‘chair’ prefixed by each of the following colors: red orange yellow green blue purple. I then composited these images in photoshop.

As I was doing this, I was considering ways in which I could automate this process. This twitter bot is my solution. It takes a noun and retrieves 6 images of it, one for each color. Next, the bot collages the images and uploads it to Twitter. I then act as curator, removing images that are not acting as color studies.

According to Micheal Cook’s bot taxonomy, ColorSquares is an Imagebot. The goal is for the program to generate formal color studies, not necessarily visualizations for the search term.

I have found many of the studies highly interesting as color studies:

ColorSquaresDocumentation

Here is what the feed looks like:

ColorSquaresFeedDocumentation

Beyond myself, only my sister is currently following this bot. She is a fan. And I kind of like it too.

mmontenegro

25 Feb 2015

Space Nietzsche

“A color for the weather” @space_nietzsche

I wanted to get experience using nodeJS so I decided to do my bot using it. After looking at many bots out there and following a couple of tutorials on how to make a bot, i decided to create my own!

Every 30 min., Space Nietzsche Bot  selects a city and grabs its current weather information. Once I have this information I use the temperature, precipitation and wind bearing to calculate a color representation. I create an image with that color and then i post a new tweet.

Originally the tweet had a static “The current color weather of city <bla> is <img>”

I realized this was very boring so I added some adjective randomness to make the tweet more interesting! Now it is : “The <adjective and connector> color of city is <adjective and connector>.

————————————–

After showing my bot to some people I leaned that people thought it was a confusing, like too many things happening.

I decided to change it and keep the parts people liked. People were interested about the cities, so i decided to get instead of the weather the top news. Once i had this, i re used the random adjectives and nouns to change 1 or 2 adjective and nouns of the real news with the random ones. Then I added the city as a hashtag.

At the beginning I was very interested in using color, but as you “playtest” you end up finding more interesting patterns and solutions to what you really want to convey.

The bot can be found :

@space_nietzsche
webpage