Vincor

Download Skype video messages

1 post in this topic

#1 ·  Posted (edited)

Ever wanted to keep a copy of a video message you got (or sent) through Skype?

It is actually not so hard to get it manually, but here is a script that does it automatically.

Before you try it, please note:

  • the script has been tested on Skype v.7.x, running on Windows 7, but can be easily modified to work with Skype versions for Windows 8.x (or so I read). I have no Windows 8.x machine, and do not intend to change the script to support it until further notice.
  • the URLs found in the Skype database are dynamic, and get invalidated after a while (within the hour in my experience). To get valid URLs in the database, open Skype and play the video messages you want to download. Once it starts playing within Skype, the link should be valid again. Try running the script after that.
  • if the script takes a while to start, it could be because it didn't find sqlite3.dll, and will download it. If you want it to start without delay, put a copy of sqlite3.dll where the script can find it, e.g. in the same folder as the script.
  • if you have more than one Skype user saved under your profile folder (@UserProfileDir & "AppDataRoamingSkype"), the script will go through all of them. Once again, only valid links will be downloaded.

 

DownloadSkypeVideoMessages.au3

Edited by Vincor
1 person likes this

Share this post


Link to post
Share on other sites



Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Similar Content

    • r0ash
      By r0ash
      Hi guys,
      I am trying to backup Skype contacts when the Skype window is minimized or machine is locked. But ControlSend is not working.
      However when I run program, when Skype is active & focused, same program works.
      #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_UseX64=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** $pid = Run("skype.exe") $hWnd = WinWait("[CLASS:tSkMainForm]", "", 10) WinSetState($hWnd, "", @SW_SHOW) Sleep( 1000 ) ControlSend($hWnd,"","TConversationsControl1", "!cdb") If I change 
      WinSetState($hWnd, "", @SW_SHOW) to 
      WinSetState($hWnd, "", @SW_MINIMIZE) The file dialog to save contact as file will never appear. Where FAQs says ControlSend() instead of Send() will work even computer is locked.
      Thanks for your time.
       
      P.S: I've tried to find if backing up Skype contacts violate any EULA but do not find anything. Kindly enlighten me if this post is against forum rules in any sense.
    • WannaBeGut
      By WannaBeGut
      Hey,
      I want to make a application which calls a User and returns the error / status of the call. I don't think it works, the status stays "routing". Not 100% sure what that means for me.
      $oSkype = ObjCreate("Skype4COM.Skype") $oUser = $oSkype.User("User") $oSkypeEvent = ObjEvent($oSkype,"Skype_") $oError = ObjEvent("AutoIt.Error","MyErrFunc") $cUserStatus_Offline = $oSkype.Convert.TextToUserStatus("OFFLINE") $cUserStatus_Online = $oSkype.Convert.TextToUserStatus("ONLINE") $cCallStatus_Ringing = $oSkype.Convert.TextToCallStatus("RINGING") $cCallStatus_Inprogress = $oSkype.Convert.TextToCallStatus("INPROGRESS") $cCallStatus_Failed = $oSkype.Convert.TextToCallStatus("FAILED") $cCallStatus_Refused = $oSkype.Convert.TextToCallStatus("REFUSED") $cCallStatus_Cancelled = $oSkype.Convert.TextToCallStatus("CANCELLED") $cCallStatus_Finished = $oSkype.Convert.TextToCallStatus("FINISHED") $cCallStatus_Busy = $oSkype.Convert.TextToCallStatus("BUSY") $cAttachmentStatus_Available = $oSkype.Convert.TextToAttachmentStatus("AVAILABLE") If Not $oSkype.Client.IsRunning Then $oSkype.Client.Start() EndIf Func Skype_AttachmentStatus($aStatus) MsgBox(0,"","Attachment status " & $oSkype.Convert.AttachmentStatusToText($aStatus)) If $aStatus = $oSkype.Convert.TextToAttachmentStatus("AVAILABLE") Then $oSkype.Attach() EndIf EndFunc While 1 If $oSkype.CurrentUserStatus = $oSkype.Convert.TextToUserStatus("ONLINE") Then ExitLoop Else $oSkype.ChangeUserStatus($oSkype.Convert.TextToUserStatus("ONLINE")) EndIf Sleep(1000) WEnd If $cUserStatus_Offline = $oSkype.CurrentUserStatus Then $oSkype.ChangeUserStatus($cUserStatus_Online) EndIf $oCall = $oSkype.PlaceCall($oUser.Handle); Start Call $callstatusraw = $oCall.Status;Raw Call Status $callstatus = $oSkype.Convert.CallStatusToText($callstatusraw);Call Status converted to Text While $callstatusraw <> $cCallStatus_Inprogress MsgBox(0, "", ""&$callstatus);Displays the Call Status WEnd The part until the $oCall Variable is from Andy Flesner (Airwolf123). But works fine.
    • WannaBeGut
      By WannaBeGut
      Hey,
      I want the program to make different Actions when some persons come online, depending on the priority you choose in the GUI (1-3). It does not seem to work:
      #include <Skype.au3> #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #Region --- GUI START --- $mainwin = GUICreate("Skype Notifier", 290, 186, 899, 341) $label_user1 = GUICtrlCreateLabel("User1:", 16, 16, 63, 18) GUICtrlSetFont(-1, 9, 400, 0, "Verdana") $label_user2 = GUICtrlCreateLabel("User2:", 16, 48, 39, 18) GUICtrlSetFont(-1, 9, 400, 0, "Verdana") $label_user3 = GUICtrlCreateLabel("User3:", 16, 112, 36, 18) GUICtrlSetFont(-1, 9, 400, 0, "Verdana") $label_user4 = GUICtrlCreateLabel("User4:", 16, 80, 34, 18) GUICtrlSetFont(-1, 9, 400, 0, "Verdana") $label_user5 = GUICtrlCreateLabel("User5:", 160, 80, 49, 18) GUICtrlSetFont(-1, 9, 400, 0, "Verdana") $label_user6 = GUICtrlCreateLabel("User6:", 160, 48, 45, 18) GUICtrlSetFont(-1, 9, 400, 0, "Verdana") $label_user7 = GUICtrlCreateLabel("User7:", 160, 16, 32, 18) GUICtrlSetFont(-1, 9, 400, 0, "Verdana") $input_priority1 = GUICtrlCreateInput("0", 104, 16, 17, 21) $input_priority2 = GUICtrlCreateInput("0", 104, 48, 17, 21) $input_priority3 = GUICtrlCreateInput("0", 104, 80, 17, 21) $input_priority4 = GUICtrlCreateInput("0", 104, 112, 17, 21) $label_user8 = GUICtrlCreateLabel("User8:", 160, 112, 61, 18) GUICtrlSetFont(-1, 9, 400, 0, "Verdana") $input_priority5 = GUICtrlCreateInput("0", 240, 16, 17, 21) $input_priority6 = GUICtrlCreateInput("0", 240, 48, 17, 21) $input_priority7 = GUICtrlCreateInput("0", 240, 80, 17, 21) $input_priority8 = GUICtrlCreateInput("0", 240, 112, 17, 21) $button_arrowleft1 = GUICtrlCreateButton("<", 86, 16, 16, 22, $WS_GROUP) $button_arrowright1 = GUICtrlCreateButton(">", 123, 16, 16, 22, $WS_GROUP) $button_arrowleft2 = GUICtrlCreateButton("<", 86, 48, 16, 22, $WS_GROUP) $button_arrowright2 = GUICtrlCreateButton(">", 123, 48, 16, 22, $WS_GROUP) $button_arrowleft3 = GUICtrlCreateButton("<", 86, 80, 16, 22, $WS_GROUP) $button_arrowright3 = GUICtrlCreateButton(">", 123, 80, 16, 22, $WS_GROUP) $button_arrowleft4 = GUICtrlCreateButton("<", 86, 112, 16, 22, $WS_GROUP) $button_arrowright4 = GUICtrlCreateButton(">", 123, 112, 16, 22, $WS_GROUP) $button_arrowleft5 = GUICtrlCreateButton("<", 222, 16, 16, 22, $WS_GROUP) $button_arrowright5 = GUICtrlCreateButton(">", 259, 16, 16, 22, $WS_GROUP) $button_arrowleft6 = GUICtrlCreateButton("<", 222, 48, 16, 22, $WS_GROUP) $button_arrowright6 = GUICtrlCreateButton(">", 259, 48, 16, 22, $WS_GROUP) $button_arrowleft7 = GUICtrlCreateButton("<", 222, 80, 16, 22, $WS_GROUP) $button_arrowright7 = GUICtrlCreateButton(">", 259, 80, 16, 22, $WS_GROUP) $button_arrowleft8 = GUICtrlCreateButton("<", 222, 112, 16, 22, $WS_GROUP) $button_arrowright8 = GUICtrlCreateButton(">", 259, 112, 16, 22, $WS_GROUP) $button_apply = GUICtrlCreateButton("Apply", 176, 144, 103, 25, $WS_GROUP) GUICtrlSetFont(-1, 8, 400, 0, "Verdana") $checkbox_busy = GUICtrlCreateCheckbox("Busy Mode", 16, 144, 89, 25) GUICtrlSetFont(-1, 8, 400, 0, "Verdana") $checkbox_logfile = GUICtrlCreateCheckbox("Log File", 112, 144, 65, 25) GUISetState(@SW_SHOW) #EndRegion --- GUI END --- Global $oSkype = ObjCreate("Skype4COM.Skype") Global $oUser1 = $oSkype.User("User1") Global $oUser2 = $oSkype.User("User2") Global $oUser3 = $oSkype.User("User3") Global $oUser4 = $oSkype.User("User4") Global $oUser5 = $oSkype.User("User5") Global $oUser6 = $oSkype.User("User6") Global $oUser7 = $oSkype.User("User7") Global $oUser8 = $oSkype.User("User8") Global $SkypeStatus_Offline = $oSkype.Convert.TextToUserStatus("OFFLINE") Global $SkypeStatus_Online = $oSkype.Convert.TextToUserStatus("ONLINE") Global $SkypeStatus_Ringing = $oSkype.Convert.TextToCallStatus("RINGING") Global $SkypeStatus_Inprogress = $oSkype.Convert.TextToCallStatus("INPROGRESS") Global $SkypeStatus_Failed = $oSkype.Convert.TextToCallStatus("FAILED") Global $SkypeStatus_Refused = $oSkype.Convert.TextToCallStatus("REFUSED") Global $SkypeStatus_Cancelled = $oSkype.Convert.TextToCallStatus("CANCELLED") Global $SkypeStatus_Finished = $oSkype.Convert.TextToCallStatus("FINISHED") Global $SkypeStatus_Busy = $oSkype.Convert.TextToCallStatus("BUSY") Global $SkypeStatus_Available = $oSkype.Convert.TextToAttachmentStatus("AVAILABLE") Global $SkypeStatus_Invisible = $oSkype.Convert.TextToAttachmentStatus("AVAILABLE") Global $mutestatus = $oSkype.Mute Global $inputnumber1 = 0 Global $inputnumber2 = 0 Global $inputnumber3 = 0 Global $inputnumber4 = 0 Global $inputnumber5 = 0 Global $inputnumber6 = 0 Global $inputnumber7 = 0 Global $inputnumber8 = 0 Global $readpriority1 = GUICtrlRead($input_priority1) Global $readpriority2 = GUICtrlRead($input_priority2) Global $readpriority3 = GUICtrlRead($input_priority3) Global $readpriority4 = GUICtrlRead($input_priority4) Global $readpriority5 = GUICtrlRead($input_priority5) Global $readpriority6 = GUICtrlRead($input_priority6) Global $readpriority7 = GUICtrlRead($input_priority7) Global $readpriority8 = GUICtrlRead($input_priority8) Global $readcheckboxbusy = GUICtrlRead($checkbox_busy) Global $readcheckboxlogfile = GUICtrlRead($checkbox_logfile) Global $checkboxbusy = 0 Global $applystart = 0 Global $checkdone1 = 0 If Not $oSkype.Client.IsRunning Then $oSkype.Client.Start() EndIf $oSkype.Attach(5) If $SkypeStatus_Offline = $oSkype.CurrentUserStatus Then $oSkype.ChangeUserStatus($SkypeStatus_Online) EndIf While 1 $nMsg = GUIGetMsg() CheckingProcess() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $button_apply Global $readpriority1 = GUICtrlRead($input_priority1) Global $readpriority2 = GUICtrlRead($input_priority2) Global $readpriority3 = GUICtrlRead($input_priority3) Global $readpriority4 = GUICtrlRead($input_priority4) Global $readpriority5 = GUICtrlRead($input_priority5) Global $readpriority6 = GUICtrlRead($input_priority6) Global $readpriority7 = GUICtrlRead($input_priority7) Global $readpriority8 = GUICtrlRead($input_priority8) Global $readcheckboxbusy = GUICtrlRead($checkbox_busy) Global $readcheckboxlogfile = GUICtrlRead($checkbox_logfile) Global $applystart = 1 Case $button_arrowleft1 $inputnumber1 = $inputnumber1 - 1 If $inputnumber1 < 0 then $inputnumber1 = 0 GUICtrlSetData($input_priority1, $inputnumber1) Case $button_arrowright1 $inputnumber1 = $inputnumber1 + 1 If $inputnumber1 > 3 then $inputnumber1 = 3 GUICtrlSetData($input_priority1, $inputnumber1) Case $button_arrowleft2 $inputnumber2 = $inputnumber2 - 1 If $inputnumber2 < 0 then $inputnumber2 = 0 GUICtrlSetData($input_priority2, $inputnumber2) Case $button_arrowright2 $inputnumber2 = $inputnumber2 + 1 If $inputnumber2 > 3 then $inputnumber2 = 3 GUICtrlSetData($input_priority2, $inputnumber2) Case $button_arrowleft3 $inputnumber3 = $inputnumber3 - 1 If $inputnumber3 < 0 then $inputnumber3 = 0 GUICtrlSetData($input_priority3, $inputnumber3) Case $button_arrowright3 $inputnumber3 = $inputnumber3 + 1 If $inputnumber3 > 3 then $inputnumber3 = 3 GUICtrlSetData($input_priority3, $inputnumber3) Case $button_arrowleft4 $inputnumber4 = $inputnumber4 - 1 If $inputnumber4 < 0 then $inputnumber4 = 0 GUICtrlSetData($input_priority4, $inputnumber4) Case $button_arrowright4 $inputnumber4 = $inputnumber4 + 1 If $inputnumber4 > 3 then $inputnumber4 = 3 GUICtrlSetData($input_priority4, $inputnumber4) Case $button_arrowleft5 $inputnumber5 = $inputnumber5 - 1 If $inputnumber5 < 0 then $inputnumber5 = 0 GUICtrlSetData($input_priority5, $inputnumber5) Case $button_arrowright5 $inputnumber5 = $inputnumber5 + 1 If $inputnumber5 > 3 then $inputnumber5 = 3 GUICtrlSetData($input_priority5, $inputnumber5) Case $button_arrowleft6 $inputnumber6 = $inputnumber6 - 1 If $inputnumber6 < 0 then $inputnumber6 = 0 GUICtrlSetData($input_priority6, $inputnumber6) Case $button_arrowright6 $inputnumber6 = $inputnumber6 + 1 If $inputnumber6 > 3 then $inputnumber6 = 3 GUICtrlSetData($input_priority6, $inputnumber6) Case $button_arrowleft7 $inputnumber7 = $inputnumber7 - 1 If $inputnumber7 < 0 then $inputnumber7 = 0 GUICtrlSetData($input_priority7, $inputnumber7) Case $button_arrowright7 $inputnumber7 = $inputnumber7 + 1 If $inputnumber7 > 3 then $inputnumber7 = 3 GUICtrlSetData($input_priority7, $inputnumber7) Case $button_arrowleft8 $inputnumber8 = $inputnumber8 - 1 If $inputnumber8 < 0 then $inputnumber8 = 0 GUICtrlSetData($input_priority8, $inputnumber8) Case $button_arrowright8 $inputnumber8 = $inputnumber8 + 1 If $inputnumber8 > 3 then $inputnumber8 = 3 GUICtrlSetData($input_priority8, $inputnumber8) EndSwitch WEnd Func CheckingProcess() If $applystart = 0 then return Global $userstatus1 = $oSkype.Convert.OnlineStatusToText($oUser1.OnlineStatus) If $readpriority1 = 1 and $userstatus1 = "Online" or "Busy" then GUICtrlSetData($input_priority1, "!") If $readpriority1 = 2 and $userstatus1 = "Online" or "Busy" then ChatAlert() If $readpriority1 = 3 and $checkboxbusy = 0 and $userstatus1 = "Online" or "Busy" then MsgBox(0, "User Online!", "User1 ist Online!"&Chr(10)) If $readpriority1 = 3 and $checkboxbusy = 1 and $userstatus1 = "Online" or "Busy" then ChatAlert2() If $userstatus1 = "Do not Disturb" then $userstatus1 = "Busy" If $readcheckboxlogfile = 1 and $userstatus1 = "Online" or "Busy" then FileWrite("SkypeLog.txt", @MDAY&"/"&@MON&"/"&@YEAR&"/"&@HOUR&":"&@MIN&":"&@SEC&": "&"User1"&" is "&$userstatus1) Global $userstatus2 = $oSkype.Convert.OnlineStatusToText($oUser2.OnlineStatus) If $readpriority2 = 1 and $userstatus2 = "Online" or "Busy" then GUICtrlSetData($input_priority1, "!") If $readpriority2 = 2 and $userstatus2 = "Online" or "Busy" then ChatAlert() If $readpriority2 = 3 and $checkboxbusy = 0 and $userstatus2 = "Online" or "Busy" then MsgBox(0, "User Online!", "User2 ist Online!") If $readpriority2 = 3 and $checkboxbusy = 1 and $userstatus2 = "Online" or "Busy" then ChatAlert2() If $readcheckboxlogfile = 1 and $userstatus2 = "Online" or "Busy" then FileWrite("SkypeLog.txt", @MDAY&"/"&@MON&"/"&@YEAR&"/"&@HOUR&":"&@MIN&":"&@SEC&": "&"User2"&" is "&$userstatus2) EndFunc Func ChatAlert() EndFunc Func ChatAlert2() EndFunc I hope you can help me! =)
      Edit: I will make it a bit more neat when I get it to work ^^
    • Expansion
      By Expansion
      Hi,
       
      I need a script to change the Skype status available/away/etc.
      I've tried the following, but it doesn't work very well, because quite often, the compiled app remains stuck in task manager without changing the status. 
      #NoTrayIcon #include "SkypeCOM.au3" Opt("GUIOnEventMode", 0) $oSkype.ChangeUserStatus(1) The compiled app is triggered by a perl script each 1-5 minutes. A short switch from available to away and back to available. 
    • Medic873
      By Medic873
      I am curious if someone that understands the Skype UDF could answer a simple question for me. Is it possible for me to make a simple script that would call a phone number play a recording and know if the users presses a button then hang up.
       
      Thanks any help is greatly helpful