From WiiBrew
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Author(s)Pedro Aguiar
Wiimote.svg Loads files from SDHC cards in the Front SD slot USB mass storage device

WiiTweet is a Twitter client for the Nintendo Wii. This article is a stub, further information will be added in the next days I just don't have the time right now (feel free to improve this page). Feedback is very welcome. If you are a graphic designer and want your name on the credits you can contribute your skills to the project (see the source to get an idea of which images are used where). Toolbar icons are ridiculously ugly right now but I wanted to release because I won't have much time in the next days.


  • Not so bad Twitter interaction
  • HTTPS support
  • oAuth support
  • Unicode capable keyboard
  • Configurable keyboard layouts
  • Local NIP support


WiiTweet is built around what I call a "river" which is a stack of "units" (which are either profiles, tweets or users) you can interact with. Units have a foreground and a background, to see the background of a unit place the cursor on it and hold B. If you want to browse to the previous river (page) you loaded press (-). Press (+) to browse to the next one. Another thing that could trick you a little is: when clicking on a Tweet, if you click the profile picture (the leftmost 70 pixels) you will browse to the author's timeline, if you click anywhere else the brief tweet prompt will appear.

A word on mirroring

This software is opensource and I did not put any effort into obsfucating WiiTweet's API credentials (because there's enough people who could get them anyways). Long story short: do not download WiiTweet from any source other than google code page because scamming versions are easy to build.

HTTPS support

All the request to Twitter's API are done through HTTPS.

oAuth support

oAuth works by asking users to get a PIN from Twitter and provide it back to the application you want to grant access to. WiiTweet authorizes itself using the oAuth standard suggested by Twitter and gives you three options to authorize it: visiting an URL using the Internet Channel, visiting an URL using an external device and providing your Twitter username/password.

Using the Internet Channel

WiiTweet launches your Internet Channel and you provide your username/password to get your PIN. Slow and ugly (as Internet Channel's certificates seem to be out of date because it displays warnings about certificates being expired) but coded for paranoids who don't want to give their password but do not have an external device at the time.

Using an external device

A shortened URL appears on screen, you go there from your computer and will be asked your Twitter credentials in exchange for your PIN.

Providing your password

WiiTweet does what your browser would do using any of the other methods, parses the response, gets the PIN and authorizes itself. You password is not stored and you will not need it to use WiiTweet again.


Keyboard layouts are configurable. You can change them by placing the kbmap file in your loading device at the /apps/wiitweet/kbmaps/ naming it keyboardmapX where X is the position you want it to be starting from 1. Do not skip positions. If you place a keyboardmap0 file it will overwrite the default keyboard. I have a script to generate keyboard map files at: http://paguiar.net/wiitweet/wtkeyboard.html You can change layouts by pressing (-) and (+).

Local NIP support

Your oAuth credentials are obviously saved at your SD/USB. If you do not set a local NIP they will be stored in plain text. This is hipotetically not so dangerous (because of the unlikeliness of a Wii being infected by any malware) but programmers could read them if they wanted to. If you set a local NIP your credentials will be encrypted however the only failproof security meassurement you can take is to avoid running everything that moves. You can also use this to protect your privacy from people with access to your Wii as this NIP will be required to decrypt your credentials (which is its main goal).