; Copyleft (c) n/a-n/a CatsSoft ; https://rg3.github.io/youtube-dl/ ; https://github.com/rg3/youtube-dl/blob/master/README.md#readme ; https://github.com/rg3/youtube-dl/blob/master/docs/supportedsites.md ;http://www.color-hex.com/color/2a736c ; COLOR BG PRINCIPAL ;http://www.color-hex.com/color/2f8078 ; COLOR BG SECUNDAR Name "Youtube Video Downloader" Caption "Youtube Video Downloader" OutFile "Youtube Video Downloader.exe" InstallDir "$PROGRAMFILES\Youtube Video Downloader" !define APPNAME "Youtube Video Downloader" !define COPYRIGHT "CatsSoft" !define PUBLISHER "CatsSoft" !define APPVER '1.2.0.0' !define VER '1.2.0.0' !define COMMENTS "$(^Name) download and convert youtube videos" !define /date date "%H:%M %d %b, %Y" VIProductVersion "${APPVER}" VIAddVersionKey /LANG=1048 "ProductName" "${APPNAME}" VIAddVersionKey /LANG=1048 "CompanyName" "${PUBLISHER}" VIAddVersionKey /LANG=1048 "LegalCopyright" "${PUBLISHER}" VIAddVersionKey /LANG=1048 "LegalTrademarks" "${PUBLISHER}" VIAddVersionKey /LANG=1048 "FileDescription" "${APPNAME}" VIAddVersionKey /LANG=1048 "FileVersion" "${APPVER}" VIAddVersionKey /LANG=1048 "ProductVersion" "${VER}" VIAddVersionKey /LANG=1048 "InternalName" "${APPNAME}" VIAddVersionKey /LANG=1048 "OriginalFilename" "${APPNAME}.exe" VIAddVersionKey /LANG=1048 "File Name" "${APPNAME}.exe" VIAddVersionKey /LANG=1048 "Comments" "${COMMENTS}" VIAddVersionKey /LANG=1048 "Last Compile" "${date}" VIAddVersionKey /LANG=1048 "Language" "English" # COMPRESS SetCompressor /SOLID /FINAL lzma SetCompress force SetCompressorDictSize 32 SetDatablockOptimize on SetDateSave on # RUN !define RUNASADMIN !ifndef RUNASADMIN RequestExecutionLevel 'user' !else RequestExecutionLevel 'user' !endif ShowInstDetails hide ShowInstDetails nevershow XPStyle on !include "MUI2.nsh" !include "nsDialogs.nsh" !include "LogicLib.nsh" !include "WinMessages.nsh" !include "FileFunc.nsh" !include "TBProgress.nsh" # Icon & Stye BrandingText /TRIMRIGHT " " # ICON Icon "Icon\appicon.ico" !define MUI_ICON "Icon\appicon.ico" # PAGE !define MUI_CUSTOMFUNCTION_GUIINIT onGuiInit !define DOWNLOAD !ifdef DOWNLOAD Page Custom "Page.Download.Youtube.Video" "Page.Download.Youtube.Video.Leave" !endif !insertmacro MUI_PAGE_INSTFILES # LANGUAGES !insertmacro MUI_LANGUAGE 'English' # first language is the default language !insertmacro MUI_LANGUAGE 'Romanian' Function .onInit InitPluginsDir SetOverwrite try AllowSkipFiles off File `/oname=$PLUGINSDIR\youtube-dl.exe` `Youtube-dl\youtube-dl.exe` File `/oname=$PLUGINSDIR\ffmpeg.exe` `Ffmpeg\ffmpeg.exe` File `/oname=$PLUGINSDIR\ffprobe.exe` `Ffprobe\ffprobe.exe` File `/oname=$PLUGINSDIR\btn_Close.bmp` `Images\Close.bmp` File `/oname=$PLUGINSDIR\btn_strongbtn.bmp` `Images\strongbtn.bmp` File `/oname=$PLUGINSDIR\loading1.bmp` `images\loading1.bmp` File `/oname=$PLUGINSDIR\loading2.bmp` `images\loading2.bmp` SkinBtn::Init "$PLUGINSDIR\btn_Close.bmp" SkinBtn::Init "$PLUGINSDIR\btn_strongbtn.bmp" FunctionEnd Function onGUIInit MoveAnywhere::Hook System::Call user32::SetWindowLong(i$HWNDPARENT,i-16,0x9480084C)i.R0 GetDlgItem $0 $HWNDPARENT 1034 ShowWindow $0 ${SW_HIDE} GetDlgItem $0 $HWNDPARENT 1035 ShowWindow $0 ${SW_HIDE} GetDlgItem $0 $HWNDPARENT 1036 ShowWindow $0 ${SW_HIDE} GetDlgItem $0 $HWNDPARENT 1037 ShowWindow $0 ${SW_HIDE} GetDlgItem $0 $HWNDPARENT 1038 ShowWindow $0 ${SW_HIDE} GetDlgItem $0 $HWNDPARENT 1039 ShowWindow $0 ${SW_HIDE} GetDlgItem $0 $HWNDPARENT 1256 ShowWindow $0 ${SW_HIDE} GetDlgItem $0 $HWNDPARENT 1028 ShowWindow $0 ${SW_HIDE} GetDlgItem $0 $HWNDPARENT 1 ShowWindow $0 ${SW_HIDE} GetDlgItem $0 $HWNDPARENT 2 ShowWindow $0 ${SW_HIDE} GetDlgItem $0 $HWNDPARENT 3 ShowWindow $0 ${SW_HIDE} SetCtlColors $HWNDPARENT "0xC5C4AC" "0x2a736c" FunctionEnd !ifdef DOWNLOAD var /global dlg Var /global btn_Close var /global Txt.Welcome var /global Txt.Info.1 var /global Txt.Info.2 var /global Lbl.Add.Link var /global Path.Add.Link var /global Lbl.Save.Pack var /global Path.Save.Pack var /global Btn_Save.Pack var /global Download.Video.Status var /global Download.Video.ProgressBar var /global Btn.Download var /global Btn.Convert var /global OUTSAVEDIR Function "Page.Download.Youtube.Video" GetDlgItem $0 $HWNDPARENT 1 ShowWindow $0 ${SW_HIDE} GetDlgItem $0 $HWNDPARENT 2 ShowWindow $0 ${SW_HIDE} GetDlgItem $0 $HWNDPARENT 3 ShowWindow $0 ${SW_HIDE} GetDlgItem $0 $HWNDPARENT 1990 ShowWindow $0 ${SW_HIDE} GetDlgItem $0 $HWNDPARENT 1991 ShowWindow $0 ${SW_HIDE} GetDlgItem $0 $HWNDPARENT 1992 ShowWindow $0 ${SW_HIDE} System::Call 'user32::SetWindowPos(i$hwndparent,i,i,i,i 570,i 348,i 0x16)' nsDialogs::Create 1044 Pop $dlg ${If} $dlg == error Abort ${EndIf} SetCtlColors $dlg "0xC5C4AC" "0x2a736c" System::Call 'user32::MoveWindow(i$dlg,i0,i0,i 570,i 404,i0)' System::Alloc 16 System::Call user32::GetWindowRect(i$HWNDPARENT,isR0) System::Call *$R0(i.R1,i.R2,i.R3,i.R4) IntOp $R3 $R3 - $R1 IntOp $R4 $R4 - $R2 System::Call gdi32::CreateRoundRectRgn(i0,i0,iR3,iR4,i4,i4)i.r0 System::Call user32::SetWindowRgn(i$HWNDPARENT,ir0,i1) System::Free $R0 # Close nsDialogs::CreateControl BUTTON 0x40000000|0x10000000|0x04000000|0x00010000 0 360u 2u 24 20 "" ; close Pop $btn_Close SkinBtn::Set /IMGID=$PLUGINSDIR\btn_Close.bmp $btn_Close GetFunctionAddress $3 "On_Click_Close" SkinBtn::onClick $btn_Close $3 SetCtlColors $btn_Close "0xC5C4AC" "0x2a736c" # WELCOME nsDialogs::CreateControl STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 3u 5u 165u 15u "Welcome!" pop $Txt.Welcome SetCtlColors $Txt.Welcome "0xC5C4AC" "0x2a736c" CreateFont $0 "Baar Sophia" "15" "500" SendMessage $Txt.Welcome ${WM_SETFONT} $0 0 # --------------- Add Link --------------- # nsDialogs::CreateControl STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 35u 135u 15u "Add Youtube Link" pop $Lbl.Add.Link SetCtlColors $Lbl.Add.Link "0xC5C4AC" "0x2a736c" CreateFont $0 "Baar Sophia" "14" "100" SendMessage $Lbl.Add.Link ${WM_SETFONT} $0 0 nsDialogs::CreateControl EDIT 0x40000000|0x10000000|0x04000000|0x00010000|0x00000080 0 15u 55u 350u 15u "" Pop $Path.Add.Link SendMessage $Path.Add.Link '${WM_SETTEXT}' '0' "STR:Add your link here..." Push $0 Push $1 StrCpy $1 $Path.Add.Link GetFunctionAddress $0 "on.Click.Add.Link" nsDialogs::OnChange $1 $0 SetCtlColors $Path.Add.Link "0xC5C4AC" "0x1d8d84" ; 0x6da6a0 CreateFont $0 "Baar Sophia" "14" "100" SendMessage $Path.Add.Link ${WM_SETFONT} $0 0 # --------------- Save Pack --------------- # nsDialogs::CreateControl STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 75u 135u 15u "Save Your Video" pop $Lbl.Save.Pack SetCtlColors $Lbl.Save.Pack "0xC5C4AC" "0x2a736c" CreateFont $0 "Baar Sophia" "14" "100" SendMessage $Lbl.Save.Pack ${WM_SETFONT} $0 0 Strcpy $OUTSAVEDIR "$VIDEOS\CatsSoft Youtube Downloader" ClearErrors SetShellVarContext "all" System::Call 'kernel32::CreateDirectoryW(w "$OUTSAVEDIR", i0)i.r0?e' nsDialogs::CreateControl EDIT 0x40000000|0x10000000|0x04000000|0x00010000|0x00000080 0 15u 95u 285u 15u "" Pop $Path.Save.Pack SendMessage $Path.Save.Pack '${WM_SETTEXT}' '0' "STR:$OUTSAVEDIR" SetCtlColors $Path.Save.Pack "0xC5C4AC" "0x1d8d84" CreateFont $0 "Baar Sophia" "14" "100" SendMessage $Path.Save.Pack ${WM_SETFONT} $0 0 nsDialogs::CreateControl BUTTON 0x40000000|0x10000000|0x04000000|0x00010000 0 305u 93u 60u 17u "Save..." Pop $Btn_Save.Pack SkinBtn::Set /IMGID=$PLUGINSDIR\btn_strongbtn.bmp $Btn_Save.Pack GetFunctionAddress $3 "on.Click.Save.Pack" SkinBtn::onClick $Btn_Save.Pack $3 SetCtlColors $Btn_Save.Pack "0xC5C4AC" "0x2a736c" CreateFont $0 "Baar Sophia" "12" "100" SendMessage $Btn_Save.Pack ${WM_SETFONT} $0 0 # Info Convert nsDialogs::CreateControl STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 120u 335u 12u '' ; Info for your files Pop $Txt.Info.1 SetCtlColors $Txt.Info.1 "0xC5C4AC" "0x2a736c" CreateFont $0 "Baar Sophia" "12" "100" SendMessage $Txt.Info.1 ${WM_SETFONT} $0 0 nsDialogs::CreateControl STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 135u 335u 12u '' ; destination your folder Pop $Txt.Info.2 SetCtlColors $Txt.Info.2 "0xC5C4AC" "0x2a736c" CreateFont $0 "Baar Sophia" "12" "100" SendMessage $Txt.Info.2 ${WM_SETFONT} $0 0 # ProgressBar nsDialogs::CreateControl STATIC 0x40000000|0x10000000|0x04000000|0x00000100 0x00000020 15u 150u 150u 14u "" Pop $Download.Video.Status CreateFont $0 "Baar Sophia" "12" "100" SendMessage $Download.Video.Status ${WM_SETFONT} $0 0 SetCtlColors $Download.Video.Status "0xC5C4AC" "0x2a736c" ShowWindow $Download.Video.Status ${SW_HIDE} nsDialogs::CreateControl msctls_progress32 0x40000000|0x10000000|0x04000000 0x00000100|0x00000200 15u 170u 350u 5u "" Pop $Download.Video.ProgressBar SetCtlColors $Download.Video.ProgressBar "0xC5C4AC" "0x2a736c" FindWindow $R2 "#32770" "" $HWNDPARENT GetDlgItem $5 $R2 1004 Strcpy $5 $Download.Video.ProgressBar SkinProgress::Set $5 "$PLUGINSDIR\loading2.bmp" "$PLUGINSDIR\loading1.bmp" ShowWindow $Download.Video.ProgressBar ${SW_HIDE} # Btn Download Video nsDialogs::CreateControl BUTTON 0x40000000|0x10000000|0x04000000|0x00010000 0 120u 189u 130u 20u "" Pop $Btn.Download SkinBtn::Set /IMGID=$PLUGINSDIR\btn_strongbtn.bmp $Btn.Download GetFunctionAddress $3 "On.Click.Download.Video" SkinBtn::onClick $Btn.Download $3 SendMessage $Btn.Download '${WM_SETTEXT}' '0' "STR:Download Now..." SetCtlColors $Btn.Download "0xC5C4AC" "0x2a736c" CreateFont $0 "Baar Sophia" "14" "100" SendMessage $Btn.Download ${WM_SETFONT} $0 0 ShowWindow $Btn.Download ${SW_HIDE} # Btn Convert Video nsDialogs::CreateControl BUTTON 0x40000000|0x10000000|0x04000000|0x00010000 0 120u 189u 130u 20u "" Pop $Btn.Convert SkinBtn::Set /IMGID=$PLUGINSDIR\btn_strongbtn.bmp $Btn.Convert GetFunctionAddress $3 "On.Click.Convert.Video" SkinBtn::onClick $Btn.Convert $3 SendMessage $Btn.Convert '${WM_SETTEXT}' '0' "STR:Convert Now..." SetCtlColors $Btn.Convert "0xC5C4AC" "0x2a736c" CreateFont $0 "Baar Sophia" "14" "100" SendMessage $Btn.Convert ${WM_SETFONT} $0 0 ShowWindow $Btn.Convert ${SW_HIDE} nsDialogs::Show FunctionEnd var /global ERROR Function "on.Click.Save.Pack" nsDialogs::SelectFolderDialog "Save.Location:" "c:\" pop $0 StrCmp $0 "error" +3 StrCpy $ERROR "Error" StrCpy $OUTSAVEDIR "$0" SendMessage $Path.Save.Pack ${WM_SETTEXT} 0 "STR:$OUTSAVEDIR" ${If} $OUTSAVEDIR != "" SendMessage $Txt.Info.2 '${WM_SETTEXT}' '0' "STR:Dest Dir: $OUTSAVEDIR" ${Else} StrCmp $ERROR "$ERROR" +3 SendMessage $Path.Save.Pack ${WM_SETTEXT} 0 "STR:$ERROR" SendMessage $Txt.Info.2 '${WM_SETTEXT}' '0' "STR:$ERROR" System::Call "Kernel32::GetLastError() i() .r1" Messagebox MB_OK|MB_USERICON '$ERROR$\n$\nError Code $1' ${EndIf} FunctionEnd var /global LINK var /global MYSOURCELINK Function on.Click.Add.Link Pop $Path.Add.Link ${NSD_GetText} $Path.Add.Link $0 StrCpy $MYSOURCELINK "$0" StrCpy $LINK "$MYSOURCELINK" SendMessage $Txt.Info.1 '${WM_SETTEXT}' '0' "STR:" SendMessage $Txt.Info.2 '${WM_SETTEXT}' '0' "STR:" SendMessage $Download.Video.Status '${WM_SETTEXT}' '0' "STR:" ShowWindow $Download.Video.ProgressBar ${SW_HIDE} ${TBProgress_State} NoProgress ${If} $MYSOURCELINK == "$LINK" StrCpy $ERROR "Error" ${If} $MYSOURCELINK != "" ${Switch} $MYSOURCELINK ${Case} '$LINK' StrCpy $1 1 ShowWindow $Btn.Download ${SW_SHOW} SendMessage $Txt.Info.1 '${WM_SETTEXT}' '0' "STR:$MYSOURCELINK" ${Break} ${EndSwitch} ${Else} MessageBox MB_OK|MB_USERICON 'First Add Your Link Here...' Abort StrCmp $ERROR "Error" +3 ${EndIf} ${EndIf} FunctionEnd Function On.Click.Download.Video SendMessage $Txt.Info.1 ${WM_SETTEXT} 0 "STR:Start Download In 5 Seconds..." IntFmt $R1 "0x%08X" 5 ${GetTime} "" "L" $0 $1 $2 $3 $4 $5 $6 Strcpy $R2 $6 loop: ${GetTime} "" "L" $0 $1 $2 $3 $4 $5 $6 Strcmp $R2 $6 loop 0 Strcpy $R2 $6 IntOp $R1 $R1 - 1 IntCmp $R1 0 +3 +3 0 SendMessage $Txt.Info.1 ${WM_SETTEXT} 0 "STR:Start Download In $R1 Seconds..." goto loop SendMessage $Txt.Info.1 ${WM_SETTEXT} 0 "STR:Downloading..." ${NSD_CreateTimer} on.Click.Progress.Download.Video 100 FunctionEnd var /global PACKAGE var /global BASEAUDIOFILE Function on.Click.Progress.Download.Video ShowWindow $Download.Video.Status ${SW_SHOW} ShowWindow $Download.Video.ProgressBar ${SW_SHOW} loop1: IntCmp $R1 $R0 done1 0 done1 IntOp $R1 $R1 + 1 SendMessage $Download.Video.Status '${WM_SETTEXT}' '0' "STR:Progress... $R1%" SendMessage $Download.Video.ProgressBar ${PBM_SETPOS} "$R1" 0 SendMessage $Txt.Info.1 '${WM_SETTEXT}' '0' "STR:Downloading videos $R1%" SendMessage $Txt.Info.2 '${WM_SETTEXT}' '0' "STR:Please Wait..." ShowWindow $Btn.Download ${SW_HIDE} ${TBProgress} $R1 SetShellVarContext "all" ClearErrors System::Call 'kernel32::CreateDirectoryW(w "$OUTSAVEDIR", i0)i.r0?e' FileOpen $0 "$PLUGINSDIR\Journal.ini" w FileWrite $0 `[Package]` FileClose $0 # Package nsExec::ExecToStack '"$SYSDIR\cmd.exe" /c $PLUGINSDIR\youtube-dl.exe -q "$LINK" --skip-download --get-filename' $0 pop $0 pop $1 FileOpen $0 '$PLUGINSDIR\Log.ini' w FileWrite $0 '[Journal]' FileWrite $0 '$\r$\nPackage=$1' FileClose $0 ${If} $0 == "1" ReadINIStr $0 "$PLUGINSDIR\Journal.ini" "Package" "Package" ${Else} WriteINIStr "$PLUGINSDIR\Journal.ini" "Package" "Package" "$1" ${EndIf} ReadINIStr $PACKAGE "$PLUGINSDIR\Journal.ini" "Package" "Package" nsExec::ExecToStack '"$SYSDIR\cmd.exe" /c $PLUGINSDIR\youtube-dl.exe -q -f mp4 "$LINK" -o "$OUTSAVEDIR\%(title)s-%(id)s.%(ext)s"' $0 pop $0 pop $1 FileOpen $0 '$EXEDIR\Log.ini' w FileWrite $0 '[Journal]' FileWrite $0 '$\r$\nInfo=$1' FileWriteByte $0 "13" FileWriteByte $0 "10" FileWrite $0 'File=$PACKAGE' FileWriteByte $0 "13" FileWriteByte $0 "10" FileWrite $0 'Destination=$OUTSAVEDIR' FileWriteByte $0 "13" FileWriteByte $0 "10" FileClose $0 IfFileExists "$OUTSAVEDIR\$PACKAGE" "done1" "NSIS.Failed.Download.Video" Sleep 100 StrCmp $R1 "100" 0 loop1 done1: loop2: IntCmp $R1 $R0 done2 0 done2 IntOp $R1 $R1 + 1 SendMessage $Download.Video.ProgressBar ${PBM_SETPOS} "$R1" 0 SendMessage $Download.Video.Status '${WM_SETTEXT}' '0' "STR:Progress... $R1%" SendMessage $Txt.Info.1 '${WM_SETTEXT}' '0' "STR:Downloading videos... $R1%" SendMessage $Txt.Info.2 '${WM_SETTEXT}' '0' "STR:Please Wait..." ${TBProgress} $R1 Sleep 100 StrCmp $R1 "100" 0 loop2 done2: ${NSD_KillTimer} on.Click.Progress.Download.Video IfFileExists "$OUTSAVEDIR\$PACKAGE" "NSIS.Done.Download.Video" "NSIS.Failed.Download.Video" StrCmp $0 1 "NSIS.Done.Download.Video" "NSIS.Failed.Download.Video" ${If} $0 == "1" NSIS.Done.Download.Video: SendMessage $Download.Video.Status '${WM_SETTEXT}' '0' "STR:Succefurly $R1%" SendMessage $Txt.Info.1 '${WM_SETTEXT}' '0' "STR:Download Complete $R1% - Succesfurly!" SendMessage $Txt.Info.2 '${WM_SETTEXT}' '0' "STR:Save Video: $OUTSAVEDIR" ShowWindow $Btn.Convert ${SW_SHOW} ${NSD_KillTimer} on.Click.Progress.Download.Video ${ElseIf} $0 == "0" NSIS.Failed.Download.Video: SendMessage $Txt.Info.1 '${WM_SETTEXT}' '0' "STR:Download has ben failed" SendMessage $Txt.Info.2 '${WM_SETTEXT}' '0' "STR:Failed" ${NSD_KillTimer} on.Click.Progress.Download.Video ${EndIf} FunctionEnd Function On.Click.Convert.Video SendMessage $Txt.Info.1 ${WM_SETTEXT} 0 "STR:Start Converting In 5 Seconds..." IntFmt $R1 "0x%08X" 5 ${GetTime} "" "L" $0 $1 $2 $3 $4 $5 $6 Strcpy $R2 $6 loop3: ${GetTime} "" "L" $0 $1 $2 $3 $4 $5 $6 Strcmp $R2 $6 loop3 0 Strcpy $R2 $6 IntOp $R1 $R1 - 1 IntCmp $R1 0 +3 +3 0 SendMessage $Txt.Info.1 ${WM_SETTEXT} 0 "STR:Start Converting In $R1 Seconds..." goto loop3 SendMessage $Txt.Info.1 ${WM_SETTEXT} 0 "STR:Converting..." ${NSD_CreateTimer} on.Click.Progress.Convert.Video 100 FunctionEnd Function on.Click.Progress.Convert.Video ShowWindow $Download.Video.Status ${SW_SHOW} ShowWindow $Download.Video.ProgressBar ${SW_SHOW} loop4: IntCmp $R1 $R0 done3 0 done3 IntOp $R1 $R1 + 1 SendMessage $Download.Video.Status '${WM_SETTEXT}' '0' "STR:Progress... $R1%" SendMessage $Download.Video.ProgressBar ${PBM_SETPOS} "$R1" 0 SendMessage $Txt.Info.1 '${WM_SETTEXT}' '0' "STR:Converting videos $R1%" SendMessage $Txt.Info.2 '${WM_SETTEXT}' '0' "STR:Please Wait..." ShowWindow $Btn.Convert ${SW_HIDE} ${TBProgress} $R1 SetShellVarContext "all" ClearErrors System::Call 'kernel32::CreateDirectoryW(w "$OUTSAVEDIR", i0)i.r0?e' ${GetBaseName} "$PACKAGE" $BASEAUDIOFILE nsExec::ExecToStack '"$SYSDIR\cmd.exe" /c $PLUGINSDIR\ffmpeg.exe -i "$OUTSAVEDIR\$PACKAGE" -vn -ar 44100 -ac 2 -ab 192 -f mp3 "$OUTSAVEDIR\$BASEAUDIOFILE.mp3"' $0 pop $0 pop $1 FileOpen $0 '$EXEDIR\Log.ini' w FileWrite $0 '[Journal]' FileWrite $0 '$\r$\nInfo=$1' FileClose $0 IfFileExists "$OUTSAVEDIR\$BASEAUDIOFILE.mp3" "done3" "NSIS.Failed.Convert.Video" Sleep 100 StrCmp $R1 "100" 0 loop4 done3: loop5: IntCmp $R1 $R0 done4 0 done4 IntOp $R1 $R1 + 1 SendMessage $Download.Video.ProgressBar ${PBM_SETPOS} "$R1" 0 SendMessage $Download.Video.Status '${WM_SETTEXT}' '0' "STR:Progress... $R1%" SendMessage $Txt.Info.1 '${WM_SETTEXT}' '0' "STR:Converting videos... $R1%" SendMessage $Txt.Info.2 '${WM_SETTEXT}' '0' "STR:Please Wait..." ${TBProgress} $R1 Sleep 100 StrCmp $R1 "100" 0 loop5 done4: ${NSD_KillTimer} on.Click.Progress.Convert.Video IfFileExists "$OUTSAVEDIR\$BASEAUDIOFILE.mp3" "NSIS.Done.Convert.Video" "NSIS.Failed.Convert.Video" StrCmp $0 1 "NSIS.Done.Convert.Video" "NSIS.Failed.Convert.Video" ${If} $0 == "1" NSIS.Done.Convert.Video: SendMessage $Download.Video.Status '${WM_SETTEXT}' '0' "STR:Succefurly $R1%" SendMessage $Txt.Info.1 '${WM_SETTEXT}' '0' "STR:Convert Complete $R1% - Succesfurly!" SendMessage $Txt.Info.2 '${WM_SETTEXT}' '0' "STR:Save Convert: $OUTSAVEDIR" ShowWindow $Btn.Convert ${SW_SHOW} ${NSD_KillTimer} on.Click.Progress.Convert.Video ${ElseIf} $0 == "0" NSIS.Failed.Convert.Video: SendMessage $Txt.Info.1 '${WM_SETTEXT}' '0' "STR:Convert has ben failed" SendMessage $Txt.Info.2 '${WM_SETTEXT}' '0' "STR:Failed" ${NSD_KillTimer} on.Click.Progress.Convert.Video ${EndIf} FunctionEnd Function On_Click_Close SendMessage $HWNDPARENT ${WM_CLOSE} 0 0 FunctionEnd Function "Page.Download.Youtube.Video.Leave" FunctionEnd !endif Section "Menu" SEC01 SectionEnd