Gracias por las respuestas
@Nortis, estuve mirando el code de JDownload pero no pude entender como hace las descargas.
@Yoya tienes razón muchos utilizan ffmpeg para convertir.
Encontré un programa open source que es justo lo que quiero, se llama youtube-dl
http://rg3.github.com/youtube-dl/documentation.html esta escrito en Python. Viendo el código fuente al parecer no interactua con la API de Youtube, mas bien hace una descarga 'directa', ademas no solo corre para Youtube, tambien lo hace con :
YouTube.com.
YouTube.com playlists (playlist URLs in "view_play_list" form).
metacafe.com.
Google Video.
Google Video searches ("gvsearch" keyword).
Yahoo! video.
Yahoo! video searches ("ybsearch" keyword).
vimeo.
entre otros.
utiliza las librerias :
import cookielib
import datetime
import getpass
import gzip
import htmlentitydefs
import HTMLParser
import httplib
import locale
import math
import netrc
import optparse
import os
import os.path
import re
import shlex
import socket
import string
import subprocess
import sys
import time
import urllib
import urllib2
import warnings
import zlib
acá dejo el code completo
http://pastebin.com/5fyHbuWiuhmm alguna idea de como hacer esta descarga 'directa' en Java ?