YouTube to MP3 TURBO Converter Source Code

Source Code

Free YouTube to MP3 TURBO Converter itself is not open-source software.

The downloader uses the GPL version of FFmpeg to convert videos. FFmpeg is included as a stand-alone executable, and not used in the Free YouTube to MP3 TURBO Converter executable itself. You can find the build instructions and source code to the exact version of FFmpeg used in Free YouTube to MP3 TURBO Converter on this page.

You ONLY need these files if you want to build your own media player or video converter! If you just want to convert downloaded videos, download Free YouTube to MP3 TURBO Converter and install it. It is ready to use as-is.

Development Environment setup

You will need MinGW to build FFmpeg on Windows. Perform the steps below in the exact order shown.

Main MinGW / MSYS environment

Unless stated otherwise, always extract the archive files with full folder information.

Extract binutils-2.20-1-mingw32-bin.tar.gz to C:\MinGW\
Extract gcc-core-3.4.5-20060117-3.tar.gz to C:\MinGW\
Extract mingwrt-3.17-mingw32-dev.tar.gz to C:\MinGW\
Extract mingwrt-3.17-mingw32-dll.tar.gz to C:\MinGW\
Extract w32api-3.14-mingw32-dev.tar.gz to C:\MinGW\

Run MSYS-1.0.11.exe - Minimal SYStem. Use default options.

When the command prompt pops up, answer the questions like this:
"Do you wish to continue with the post install [yn ]" y
"Do you have MinGW installed? [yn ]" y
"Where is your MinGW installation?" c:/mingw

Run msysDTK-1.0.1.exe - MSYS Developer Tool Kit. Use default options.

Extract pr.exe from coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2 tar file to c:\msys\1.0\bin

Upgrade GCC

Extract gcc-core-4.5.0-1-mingw32-bin.tar.lzma to C:\MinGW
Extract gcc-c++-4.5.0-1-mingw32-bin.tar.lzma to C:\MinGW
Extract libgcc-4.5.0-1-mingw32-dll-1.tar.lzma to C:\MinGW
Extract libstdc++-4.5.0-1-mingw32-dll-6.tar.lzma to C:\MinGW
Extract libgmp-5.0.1-1-mingw32-dll-10.tar.lzma to C:\MinGW
Extract libmpc-0.8.1-1-mingw32-dll-2.tar.lzma to C:\MinGW
Extract libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma to C:\MinGW

Install GDB

Extract gdb-7.1-2-mingw32-bin.tar.gz to C:\msys\1.0
Extract libexpat-2.0.1-1-mingw32-dll-1.tar.gz to C:\msys\1.0

Install wget

Extract to C:\MinGW.
Extract to C:\MinGW

Install unzip

Extract to C:\MinGW.

Install Yasm

Save yasm-1.1.0-win32.exe as yasm.exe in C:\msys\1.0\bin

Patch system include files

Yes, unfortunately it is needed to patch 2 system include files in order to build the newest FFmpeg.
tempnam.diff and strcasecmp.diff.

Building FFmpeg and related libraries

After you have installed MinGW and updated it as described above, you are ready to build FFmpeg and related libraries. Start a shell by double-clicking the MSYS icon on your desktop and follow the instructions below.

Create directories

mkdir /ffmpeg
mkdir /ffmpeg/libraries
mkdir /ffmpeg/Binaries_LGPL
mkdir /ffmpeg/olibs/include
mkdir /ffmpeg/olibs/lib
mkdir /ffmpeg/olibs/man
mkdir /ffmpeg/olibs/man/man3

Build libgsm

Extract libgsm_1.0.13.orig.tar.gz to /ffmpeg/libraries (License: Proprietary, Home page)

cd /ffmpeg/libraries/gsm-1.0-pl13
make (ignore errors in toast.c)
cp lib/* /ffmpeg/olibs/lib
mkdir /ffmpeg/olibs/include/gsm
cp inc/gsm.h /ffmpeg/olibs/include/gsm/

Build lame

Extract lame-3.98.4.tar.gz to /ffmpeg/libraries (License: LGPL v2, Home page)

cd /ffmpeg/libraries/lame-3.98.4/
./configure --prefix=/ffmpeg/olibs --enable-static --disable-shared
make install

Build opencore-amr

Extract opencore-amr-0.1.2.tar.gz to /ffmpeg/libraries (License: Apache, Home page)

cd /ffmpeg/libraries/opencore-amr-0.1.2
./configure --prefix=/ffmpeg/olibs --enable-static --disable-shared
make install

Build libogg

Extract libogg-1.2.2.tar.gz to /ffmpeg/libraries (License: Public Domain, Home page)

cd /ffmpeg/libraries/libogg-1.2.2
./configure --prefix=/ffmpeg/olibs --enable-static --disable-shared
make install

Build libvorbis

Extract libvorbis-1.3.2.tar.gz to /ffmpeg/libraries (License: Public Domain, Home page)

cd /ffmpeg/libraries/libvorbis-1.3.2
./configure --prefix=/ffmpeg/olibs --enable-static --disable-shared
make install

Build libSDL

Extract to /ffmpeg/libraries (License: LGPL v2.1, Home page)
Extract directx-devel.tar.gz to /ffmpeg/libraries/SDL-1.2.13 (Home page)

Patch src/video/SDL_stretch.c:

    in function SDL_SoftStretch() of file SDL_stretch.c
    /* using asm to stretch will cause exception under Windows when DEP enabled
       disable using asm will work even with DEP */
    /*	SDL_bool use_asm = SDL_TRUE; */
    SDL_bool use_asm = SDL_FALSE;			
cd /ffmpeg/libraries/SDL-1.2.13
./configure --prefix=/ffmpeg/olibs --enable-static --enable-shared 
 --enable-joystick=no --enable-cdrom=no
make install
strip --strip-debug /ffmpeg/olibs/bin/SDL.dll

Build libtheora

Extract libtheora-1.1.1.tar.bz2 to /ffmpeg/libraries (License: Public Domain, Home page)

cd /ffmpeg/libraries/libtheora-1.1.1
./configure --prefix=/ffmpeg/olibs --enable-static --disable-shared --disable-oggtest
 --disable-vorbistest --with-ogg=/ffmpeg/olibs --with-vorbis=/ffmpeg/olibs 
make install

Build x264

Extract x264-snapshot-20110126-2245.tar.bz2 to /ffmpeg/libraries (License: GPL, Home page)

cd /ffmpeg/libraries/x264-snapshot-20110126-2245
./configure --prefix=/ffmpeg/olibs
make install

Build Xvid

Extract xvidcore-1.3.0-rc1.tar.gz to /ffmpeg/libraries (License: GPL, Home page)

cd /ffmpeg/libraries/xvidcore
./configure --prefix=/ffmpeg/olibs --enable-static --disable-shared
make install
rm /ffmpeg/olibs/lib/xvidcore.dll
cp /ffmpeg/olibs/lib/xvidcore.a /ffmpeg/olibs/lib/libxvidcore.a

Build GPL FFmpeg

export PATH=$PATH:/ffmpeg/olibs/bin
mkdir /ffmpeg/ffmpeg_gpl
mkdir /ffmpeg/ffmpeg_gpl/src

Extract ffmpeg-svn-r26402-gpl-cfg.tar.gz to /ffmpeg/ffmpeg_gpl/src (License: GPL, Home page)

cd /ffmpeg/ffmpeg_gpl/src

./configure --prefix=/ffmpeg/Binaries_GPL --disable-debug --enable-static --disable-shared 
 --enable-version3 --enable-avfilter --enable-memalign-hack --enable-avisynth --enable-libgsm 
 --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora 
 --enable-libvorbis --enable-libx264 --enable-libxvid --enable-gpl 
 --extra-cflags=-I/ffmpeg/olibs/include --extra-ldflags=-L/ffmpeg/olibs/lib 
make install

To decompress the compressed files above, you will need a tool like BitZipper.

Updated January 30, 2011 to reflect the FFmpeg version used in Free YouTube to MP3 TURBO Converter 2011.