рдирд┐рдпрдорд┐рдд рдЦрд┐рд▓рд╛рдбрд╝реА рдореЗрдВ Vkontakte рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП gui рдХреЗ рд╕рд╛рде рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ

рдЕрдХреНрд╕рд░, рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд╡реНрдпрд╡рд╕рд╛рдп рдХрд░рдирд╛, рдореИрдВ рдХреБрдЫ рдлрд┐рд▓реНрдореЛрдВ / рдХреНрд▓рд┐рдк / рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдЦреЛрд▓рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдзреНрдпрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдХреЛрдиреЗ рдореЗрдВ рдХрд╣реАрдВ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЗрдЬреА рд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рд╣рдорд╛рд░реЗ рдпреБрдЧ рдореЗрдВ рдФрд░ рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдореБрдлреНрдд рд╡реАрдбрд┐рдпреЛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Vkontakte) рдпрд╣ рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдХреЛ рдмрдВрдж рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рдзрд╛рд░рд╛ рдореЗрдВ рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ ... рд▓реЗрдХрд┐рди, рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдлрд╛рдВрд╕реА рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкреНрд▓реЗрдпрд░ "рдХрд╣реАрдВ" рд╕реНрдХреНрд░реАрди рдХреЗ рдХреЛрдиреЗ рдореЗрдВ рддрд╛рдХрд┐ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд╣реЛ, рдЕрдм рд╡реАрдбрд┐рдпреЛ рдЦреЗрд▓рдиреЗ рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рди рд╣реЛ, рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлреНрд▓реИрд╢ рдЖрдорддреМрд░ рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЦрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрдо-рд╢рдХреНрддрд┐ рдиреЗрдЯрдмреБрдХ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣рдж рддрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдЗрд╕рд▓рд┐рдП рдФрд░ рдЗрд╕рд▓рд┐рдП рднреА рдХреНрдпреЛрдВрдХрд┐ Vkontakte рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдкрд╛рд╕ рдПрдХ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдЖрдкрдХреЛ рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИ), рд╕рднреА рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдХрд╛ рд╡рдЬрди рдХрд░рдиреЗ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рд╡реЗ рдирд╣реАрдВ рд╣реИрдВ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИрдВ, рдФрд░ рдмреИрд╢ рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рдЙрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВ рдЬреЛ рдкреИрджрд╛ рд╣реБрдЖ рдерд╛ - рдкреЗрдЬ рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реИ рдФрд░ wgp, sed рдФрд░ tr рдЬреИрд╕реЗ рдорд╛рдирдХ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╣реИред

рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдФрд░ рд╢рд╛рдпрдж рдПрдХрдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд░реНрдХ рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред Wget рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдХреБрдХреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ рдФрд░, рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рд╕реАрдзреЗ wget рдХреЗ рд▓рд┐рдП рдХреБрдХреА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА:

wget -O- -q --save-cookies .vk-cookie.txt "http://vk.com/login.php?act=login&email=$mail&pass=$pass" >>/dev/null

рдЖрдЧреЗ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд▓рдЧ рд░рд╣рд╛ рдерд╛ - рдПрдХ рдкреИрдЯрд░реНрди рдФрд░ рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдирд╕реЗ рдЖрдк рдзрдХреНрдХрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░, sed рд╕рдВрдкрд╛рджрдХ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╡реАрдбрд┐рдпреЛ рдХрд╛ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛: рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рдЖрд╢реНрдЪрд░реНрдп рдореЗрдВ рд╕реЗ рдПрдХ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рдЕрдВрддрд░ рдерд╛

 echo "/me/" | sed "s/\//\\\//"g>>var echo "/me/" | sed s/'\/'/'\\\/'/g >>var var=`echo "/me/" | sed s/'\/'/'\\\/'/g` var=`echo "/me/" | sed s#'\/'#'\\\/'#g` var=`echo "/me/" | sed "s/\//\\\//"g` 
рдкрд╣рд▓реЗ рдФрд░ рддреАрд╕рд░реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓рд╛рдЗрди рдХреЗ рдмреАрдЪ рдореЗрдВ рдХрд╣реАрдВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред рдкрд╛рдВрдЪрд╡реЗрдВ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдорд╛рдВрдб рдкреНрд░реЗрд╖рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдХреЗрд╡рд▓ рджреВрд╕рд░реЗ рдФрд░ рдЪреМрдереЗ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ ("/" рдХреЗ рд╕рд╛рде "/" рдХреА рдЬрдЧрд╣)ред
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рдЙрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕рд░реНрд╡рд░ рдкрд░ рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ - рдЬреЛ рдорд╛рдирдХ wget рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдерд╛:
 wget --spider $addr >>/dev/null # checking if [ $? -ne 0 ]; then #if file not exist else fi 


рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рдбрд╛рд▓рддреЗ рд╣реБрдП, рдореБрдЭреЗ рд╡реАрдбрд┐рдпреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреИрд░-рдЬрдЯрд┐рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд┐рд▓реАред рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдерд╛
  1. рдЗрд╕рдХреА рд▓рд┐рдВрдХ рдХреЙрдкреА рдХрд░реЗрдВ
  2. рдХрдВрд╕реЛрд▓ рдЦреЛрд▓реЗрдВ
  3. рдХреЙрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ
  4. рдЙрд╕реЗ рдПрдХ рд▓рд┐рдВрдХ рджреЗрдВ
  5. рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХреНрд░рд┐рдпрд╛рдПрдБ рдЪреБрдиреЗрдВ (рд╕рд╣реЗрдЬреЗрдВ / рдЦреЗрд▓реЗрдВ)

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рдХреНрд░рдо рдирд╣реАрдВред рдЬрдм рдЖрдк рдХрд┐рд╕реА рд╕реАрд░реАрдЬрд╝ рдореЗрдВ рдкреВрд░рд╛ рд╕реАрдЬрди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдереЛрдбрд╝рд╛ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рдЕрд╡рд╕рд░реЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдмреИрда рдЧрдпрд╛, рдмрд┐рдирд╛ рдЗрд╕реЗ рдЬрдЯрд┐рд▓ рдХрд┐рдПред

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд░рд▓реАрдХрд░рдг


рдЗрд╕рдореЗрдВ рдкрд╣рд▓рд╛ рдмрд┐рдВрджреБ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ xsel рдХрд╛ рдЙрдкрдпреЛрдЧ рдерд╛, рдЬреЛ рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдмрдлрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдХрдорд╛рдВрдб рдХреЛ "vkvid http: //csNNNNNN.vk.com/uNNNNN//o/nnnnnnnn.mov" рд╕реЗ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд╣рд╛рдБ рд╣рдореЗрд╢рд╛ рд▓рд┐рдВрдХ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рдереА, рдЬреЛ рдирд┐рд░рдВрддрд░ vkvid "$ (xsel -o)" рддрдХ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рдмрд┐рдирд╛ рд╣рд┐рдЪрдХрд┐рдЪрд╛рд╣рдЯ рдХреЗ рдЯреАрдо рдЗрддрд┐рд╣рд╛рд╕ред

рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлреЗрд╕

рдЕрдЧрд▓рд╛, рдХрд╛рдлреА рдЕрдкреЗрдХреНрд╖рд┐рдд рдХрджрдо, рдХреБрдЫ рдФрд░ рдЬреАрдпреВрдЖрдИ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдерд╛ред рдЬрдЯрд┐рд▓ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдПрдХ рдЫреЛрдЯреА рдЦреЛрдЬ рдХреЗ рдмрд╛рдж, рдХрдИ рд╡рд┐рдХрд▓реНрдк рдкрд╛рдП рдЧрдП: рдЬрд╝реЗрдбрд┐рдЯреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ Xdialog рдФрд░ рд╡реНрдпрд╛рдкрдХред

рд▓реЗрдХрд┐рди рди рддреЛ рдХреЛрдИ рдФрд░ рди рд╣реА рджреВрд╕рд░рд╛ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрдЯрд┐рд▓ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рд░реЗрдбрд┐рдУрдмрдЯрди, рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рдлреЙрд░реНрдоред

рдЗрд╕рд▓рд┐рдП, рдЦреЛрдЬ рддрдм рддрдХ рдЬрд╛рд░реА рд░рд╣реА рдЬрдм рддрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ GUI рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдорд┐рд▓рд╛ - YAD ред рдпрд╣ рдЕрднреА рднреА рдмрд▓реНрдХрд┐ рдпреБрд╡рд╛ рд╣реИ, рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреБрдХреНрдд рдереАред

рдПрдХ рдРрд╕реА рдЦрд┐рдбрд╝рдХреА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛, рдЬрд┐рд╕ рдкрд░ рдХрд┐рд╕реА рдЪреАрдЬ рдХрд╛ рдмреЛрдЭ рди рдкрдбрд╝реЗ, рдЬреНрдпрд╛рджрд╛ рд╕рдордп рди рд▓рдЧреЗ:



 action=$(yad --center --width=400 --title="Vkvideo Save" --text="Simple video downloader" --form --field="Select Resolution::CB" --field="Name" --field="Folder:DIR" --field="Keep Cookies:CHK" "720!480!360!240" "$tname" "$HOME" TRUE --button="Open File:2" --button="Save File:0" --button="gtk-cancel:1") 

рдкреНрд░рдкрддреНрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо "|" рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХреА рдЧрдИ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдбрд┐рд╕реНрдХреНрд▓реЗрдорд░ рдореЗрдВ рд╕рдВрдкрд╛рджрдХ рд╕реЗрдб рдХрд╛рдо рдореЗрдВ рдЖрддрд╛ рд╣реИред

  tres=`echo $action | sed -es/'|.*|'/''/` tname=`echo $action | sed -es/"$tres"'|'/''/ | sed -es/"|.*"/''/` tfolder=`echo $action | sed -es/"$tres"'|'"$tname"'|'/''/ | sed -es/"|.*"/''/` 

рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛ рдЧрдпрд╛ред рдЬрд╝реЗрдирд┐рдЯреА рдФрд░ рдпрд╛рдб рдореЗрдВ рдмрд╣реБрдд рд╕рдорд╛рди рд╣реИ, рдЗрд╕рдиреЗ рдХреЗрд╡рд▓ рдПрдХ рд▓рд╛рдЗрди рд▓реА
  wget $addr -O "$tfolder/$tname.$tres.mov" 2>&1 |sed -u 's/.* \([0-9]\+%\)\ \+\([0-9.]\+.\) \(.*\)/\1\n# Downloading at \2\/s, time left: \3/'| yad --width=500 --center --title="Downloading progress" \ --text="Downloading '$tname.$tres.mov' " --progress --auto-close --auto-kill & 


рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдХрдорд╛рдВрдб рдПрдХ рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ рд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рдереАред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ 2 рд╣реЛ рдЧрдИ рдереА:
  1. Vkontakte рд╡реАрдбрд┐рдпреЛ рдЦреЛрдЬ рд╕реЗ рд▓рд┐рдВрдХ рдХреЙрдкреА рдХрд░реЗрдВ
  2. рд╢реЙрд░реНрдЯрдХрдЯ рдХреБрдВрдЬреА рджрдмрд╛рдПрдВ рдФрд░ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ рдпрд╛ рдЬреЛрдбрд╝реЗрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ


рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП:


рдХреЛрдб:
 #!/bin/bash #$1 link name #$2 resolution #$3 save file name #checking for existing cookies res=(720 480 360 240) tadr=$1 tres=$2 tname=$3 if [ -z "$tres" ]; then echo "$tres" tres=720 fi if [ ! -f "$HOME/.vk-cookie.txt" ]; then action1=$(yad --center --title="Lost cookies" --text="You need to enter mail and password" --form --field='Mail' --field='Password':H --button="gtk-ok:0" --button="gtk-cancel:1") mail=`echo $action1 | sed -es/'|.*|'/''/` password=`echo $action1 | sed -es/"$mail|"/''/ | tr -d '|'` echo "Getting cookies" wget -O- -q --save-cookies .vk-cookie.txt "http://vk.com/login.php?act=login&email=$mail&pass=$pass" >>/dev/null echo "Cookies saved" fi while [ "$SoD" != "finishdone" ] do echo "Page downloading...." LANG=ru_RU.CP1251 wget -q --load-cookies .vk-cookie.txt "$tadr" -O .tempf #download the page echo "Page recieved" enconv -x=UTF-8 -L ru .tempf grep -i ltag .tempf| egrep -o "http:\\\/\\\/cs[0-9]*.vkontakte.ru\\\/[az][0-9]*\\\/"| sed -es/'http:\\\/\\\/cs'/'http:\/\/cs'/ | sed -es/'vkontakte.ru\\\/'/'vk.com\/'/| sed -es/'\\'/''/ >> .tempama #get server and owner names echo video/>> .tempama if [ "$tname" == "" ]; then #echo `cat .tempf` egrep -o "md_title.*md_author" .tempf | sed -es/'md_title\\\"\:\\\"'/''/ |sed -es/'\\\"\,\\\"md_author.*'/''/>>.tempnam tname=`cat .tempnam|sed s#' | '#' '#g|sed s#'[|,/,\]'#' '#g|tr --squeeze-repeats ' '| tr '[]{}' '()()'|sed s#' \([(,)]\)'#'\1'#g|sed s#'\([(,)]\) '#'\1'#g` rm .tempnam fi addr=`cat .tempama` addr=`echo $addr | tr -d ' '` if [ $addr == "video/" ]; then tadr=$(yad --width 500 --center --title="Bad address" --text="Bad address. Reenter please" --entry --button="gtk-cancel:1" ) rm .tempama rm .tempf else SoD=finishdone fi done echo "Ready for downloading" action=$(yad --center --width=400 --title="Vkvideo Save" --text="Simple video downloader" --form --field="Select Resolution::CB" --field="Name" --field="Folder:DIR" --field="Keep Cookies:CHK" "720!480!360!240" "$tname" "$HOME" TRUE --button="Open File:2" --button="Save File:0" --button="gtk-cancel:1") SO=$? tres=`echo $action | sed -es/'|.*|'/''/` tname=`echo $action | sed -es/"$tres"'|'/''/ | sed -es/"|.*"/''/` tfolder=`echo $action | sed -es/"$tres"'|'"$tname"'|'/''/ | sed -es/"|.*"/''/` echo $tfolder | sed "s$\/$\\\/$"g>>tvar tvar=`cat tvar` keep=`echo $action | sed -es/"$tres"'|'"$tname"'|'"$tvar"'|'/''/ | tr -d '|'` rm tvar grep -i ltag .tempf| egrep -o 'vtag\\\"\:\\\"[a-z0-9]*\\'| sed 's/vtag\\\"\:\\\"//'|sed -es/'\\'/'\.'"$tres"'\.mov'/ >>.tempam #get video file name addr=`cat .tempama .tempam` #recover full link addr=`echo $addr | tr -d ' '` #remove spaces rm .tempama rm .tempam rm .tempf case $keep in TRUE) ;; FALSE) rm $HOME/.vk-cookie.txt;; esac case $SO in 0) wget --spider $addr >>/dev/null if [ $? -ne 0 ]; then rm "$tname.$tres.mov" for ((i=0; i <= 3 ; i++)) do if [ $i -ne 0 ];then let "j = $i - 1" else j=0; fi if [ ${res[$i]} -le $tres ]; then addr=`echo $addr | sed -es/"${res[$j]}"/"${res[$i]}"/` if [ ${res[$i]} -ne $tres ];then wget --spider $addr >>/dev/null if [ $? -eq 0 ]; then RtD=2 tres=${res[$i]} i=10 fi fi fi done else RtD=1 fi rand="$RANDOM `date`" pipe="/tmp/pipe.`echo '$rand' | md5sum | tr -d ' -'`" mkfifo $pipe tdown=0 tnamesp=`echo "$tname" |tr -d '|'| tr ' ' '_'` wget -c $addr -O "$tfolder/$tnamesp.$tres.mov" 2>&1 | while read data; do if [ "`echo $data | grep '^Length:'`" ]; then total_size=`echo $data | grep "^Length:" | sed 's/.*\((.*)\).*/\1/' | tr -d '()'` fi if [ "`echo $data | grep '[0-9]*%' `" ];then percent=`echo $data | grep -o "[0-9]*%" | tr -d '%'` current=`echo $data | grep "[0-9]*%" | sed 's/\([0-9BKMG.]\+\).*/\1/' ` echo $percent echo "#Name: $tnamesp \nVideo size: $tres \nFrom: $1\n$current of $total_size ($percent%)\n" fi if [ "$current" != "$total_size" ];then tdown=fail fi done > $pipe & wget_info=`ps ax |grep "wget.*$addr" |awk '{print $1"|"$2}'` wget_pid=`echo $wget_info|cut -d'|' -f1 ` zenity --progress --auto-close --text="Connecting to $addr\n\n\n" --width="350" --title="Downloading"< $pipe if [ "`ps -A |grep "$wget_pid"`" ];then kill $wget_pid rm $tnamesp.$tres.mov tdown=fail fi rm -f $pipe if [ "$tdown" != "fail" ] then case $RtD in 2) echo "Resolution change. File "$tnamesp"."$tres".mov successfully saved" yad --center --text-align=center --height=25 --title="File Saved" --no-buttons --timeout=8 --text="Resolution change. File $tnamesp.$tres.mov successfully saved";; 1) yad --center --text-align=center --height=25 --title="File Saved" --no-buttons --timeout=8 --text="File $tnamesp.$tres.mov successfully saved" echo "File "$tnamesp"."$tres".mov successfully saved";; esac else yad --center --text-align=center --height=25 --title="ERROR" --no-buttons --timeout=8 --text="File $tname.$tres.mov has NOT been saved" fi;; 2) wget --spider $addr >>/dev/null # checking if [ $? -ne 0 ]; then for ((i=0; i <= 3 ; i++)) do if [ $i -ne 0 ];then let "j = $i - 1" else j=0; fi if [ ${res[$i]} -le $tres ]; then addr=`echo $addr | sed -es/"${res[$j]}"/"${res[$i]}"/` if [ ${res[$i]} -ne $tres ];then wget --spider $addr >>/dev/null # checking if [ $? -eq 0 ]; then i=10; fi fi fi done fi echo "Playing file" echo "$tname" #vlc --started-from-file --playlist-enqueu "$addr" & smplayer -minigui -add-to-playlist $addr & sleep 5 echo "File is playing";; esac exit 


UPD: рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреБрдЫ рд╣рдж рддрдХ рдЕрддрд┐рд░рдВрдЬрд┐рдд рдереАред рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╣реЗрдЬреЗ рдЧрдП рднрд╛рдЧ рдХрд╛ рдЖрдХрд╛рд░ 100 рдПрдордмреА рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб GUI рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, Google рдФрд░ Ubuntuforums рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ, рдорд╛рдореВрд▓реА рд╕рдорд╛рдпреЛрдЬрди рдХрд┐рдП рдЧрдП:
 rand="$RANDOM `date`" pipe="/tmp/pipe.`echo '$rand' | md5sum | tr -d ' -'`" mkfifo $pipe wget -c $addr -O "$tfolder/$tname.$tres.mov" 2>&1 | while read data; do if [ "`echo $data | grep '^Length:'`" ]; then total_size=`echo $data | grep "^Length:" | sed 's/.*\((.*)\).*/\1/' | tr -d '()'` fi if [ "`echo $data | grep '[0-9]*%' `" ];then percent=`echo $data | grep -o "[0-9]*%" | tr -d '%'` current=`echo $data | grep "[0-9]*%" | sed 's/\([0-9BKMG.]\+\).*/\1/' ` echo $percent echo "#Name: $tname \nVideo size: $tres \nFrom: $1\n$current of $total_size ($percent%)\n" fi if [ "$current" != "$total_size" ];then tdown=fail fi done > $pipe & wget_info=`ps ax |grep "wget.*$addr" |awk '{print $1"|"$2}'` wget_pid=`echo $wget_info|cut -d'|' -f1 ` zenity --progress --auto-close --text="Connecting to $addr\n\n\n" --width="350" --title="Downloading"< $pipe 

UPD2: рдПрдХ рдмрдЧ рдХреЛ рддрдп рдХрд┐рдпрд╛ рдЬреЛ рд╕рд╣реЗрдЬрддреЗ рд╕рдордп рд╣реЛрддрд╛ рд╣реИ , рдпрджрд┐ рдирд╛рдо рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдг рд╣реИрдВ: [,], {}ред},

рдХреЛрдб рдХрд╛ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рддрдп рд╣реЛ рдЧрдпрд╛ рд╣реИред

Source: https://habr.com/ru/post/In138932/


All Articles