Saturday, June 30, 2007

Wishlist Gifter Facebook Application

When the Facebook API was release I became excited about it, I knew that social networks were rapidly becoming a part of life, and finally developers would interact with it. Strangely enough I find the possibilities of social networks more interesting than the sites themselves. In the past I leaped onto myspace, but soon became disappointed with their disdain for third party developers. Developer access to social networks enable applications to have a real social context for their users and a real relevance to their lives.

I developed Wishlist Giter to get my feet wet with the Facebook API, which is very intuitive thanks to the .Net Facebook Toolkit. Its purpose is simple, grab a user's wish list from and display the items in the user's profile. The user's friend can look at these, click on them and be directed to pay and ship the item to the user.

The process is seamless, point, click and get your friend/relative the movie or CD they wanted for their birthday.

The application works with the international Amazon sites and only requires the email address you use with Amazon.

Thursday, March 1, 2007

Phone access to MySpace. Early Testing. Couldn't wait.

This is a project I am working on, it's a phone based gateway to MySpace. This does not use WAP(mobile web) access, it uses a regular phone line to access your MySpace message inbox. It works with TTS (text-to-speech) voice synthesis and voice/tone recognition.

Soon you'll be able to check your MySpace inbox even from a pay phone! I just hope Tom doesn't shut me down.

This is the first test after implementing the message parsing functions. The code is still not done, but is operational. This not a Beta, its an Alpha version.

I need a better name for this project.
PhoneSpace is the code name, please send me suggestions for the final name.

The application is now connected to this account:


1) Send a message to that account [PhoneSpace]
2) Call 1-877-338-6225

When it answers enter this :

PIN: 1111
User ID: 4024444

It should now read messages, remember it's experimental so errors might occur!

UPDATE: The live demo has been disabled until it is moved to another server.

Tuesday, February 27, 2007

Sunday, February 25, 2007


Recently I’ve taken an interest in VoiceXML and related technologies which are used to develop a new generation of phone based applications. I’ve also had a few thoughts for a library component to programmatically access my MySpace inbox. The merger of these two itches is becoming a small project known informally as PhoneSpace.

The idea is to access your MySpace mail inbox in the same way you access your phone’s voice mail.

You would dial a 1-800 toll free number and have your messages read out loud by TTS (Text-To-Speech) voice synthesis.

It’s an elaborate process considering it requires a VoiceXML client that connects to a server (ASP.NET) which communicates with MySpace by simulating the user.

I don’t really have the time for these endeavours, but this is something fun that might prove useful.

I have always held a deep interest in technologies that connect us with the world, and more importantly with the software that drives and inter-connects these mediums. I've written software that has connected Pocket PCs, desktops, servers, mobile phones and video game systems to other systems or services enabling communication and control on the go.
It’s satisfying to connect two points together and to provide access to systems in innovative ways.

Coming soon!

Wednesday, January 24, 2007

GetVideoURL and GetVideoName from Youtube

Update: 1/15/2009 YouTube made breaking changes to their site, the code below no longer works.

The function GetVideoURL returns the direct URL to the movie file in a Youtube page by passing the page's HTML source.

Private Function GetVideoURL(ByVal htmlSource As String) As String
'Youtube's url to retrieve the video
Dim targetUrl As String = ""
'locate the src url passed to the flash player
Dim regexpFindID = New Regex("/player2.swf?((.\n)*?)"",", RegexOptions.IgnoreCase)
Dim matchID As Match
matchID = regexpFindID.Match(htmlSource)
If matchID.Success Then
'extract the videoID query string
Dim vidID As String
vidID = matchID.Value.Substring(13, matchID.Value.Length - 15)
Return targetUrl + vidID
Return Nothing
End If
End Function

Private Function GetVideoName(ByVal htmlSource As String) As String
'locate the title based on the div tag
Dim regexpFindName = New Regex("video_title"">((.\n)*?)", RegexOptions.IgnoreCase)
Dim matchName As Match
matchName = regexpFindName.Match(htmlSource)
If matchName.Success Then
'extract the title
Dim vidName As String
vidName = matchName.Value.Substring(13, matchName.Value.Length - 18)
'remove common invalid file system chars & html syntax
Dim arrInvalids As String() = {"\", "/", ":", "?", "<", ">", "", " ", "<", ">", "&", """}
Dim invalid As String
For Each invalid In arrInvalids
If vidName.Contains(invalid) Then
vidName = vidName.Replace(invalid, "")
End If
Return vidName
Return Nothing
End If
End Function

Xido is just an IE control using these functions along with threaded asynchronous calls using the Net.WebClient object to download the files (the download limit is by design to prevent abuse).
Many people are now focusing on these kinds of applications, both running as clients or web applications and are including video transcoding as well as other features.

By contrast Xido is only a small application built out of boredom using these old functions which I had once written out of my frustration while using Sites like KeepVid forced me to copy/paste URLs and manually rename every single file. Xido was only meant to alleviate this problem and should be considered defunct until an interesting challenge comes up using embedded Flash video.

Go build your own rip site like :

Someone even built a webservice that does this same thing (I still don't know why).

Monday, January 15, 2007

Download from Youtube

Xido 1.0
Youtube ripper application

With this application you can download videos from Youtube as you browse the actual Youtube website. It will download videos directly to a folder with the same title as in the website.
  1. Download (link below)
  2. Unzip the file
  3. Run xido.exe
  4. Browse to a video on the website
  5. Click on the television button to download the video
The videos are in flash video format (.flv) , you might need to download VLC to play them.
You must have the .net framework 2.0 installed in your system for Xido to run. The application notifies the user of a completed download by yelling "toasty!" (like in Mortal Kombat 2) you can disable or change this by deleting or replacing the toasty.wav file.

This originated from an unfinished post regarding embedded flash video. This is a quick and dirty personal app.

Download Here