рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рдкрд░рд┐рдЪрдп рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИ: рдореИрдВ рд╕реНрдерд╛рдиреАрдп рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ, рдЪреИрдирд▓ рдФрд░ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдпреВрдЯреНрдпреВрдм рдСрдирд▓рд╛рдЗрди рдкреНрд▓реЗрдпрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

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

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

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдореИрдВ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдерд╛ред рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдкрд╣рд▓реА рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рдЯреИрдЧ рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ред

рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:

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

рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд, GPLv3 рд▓рд╛рдЗрд╕реЗрдВрд╕: https://github.com/sadr0b0t/yashlang/

рдиреАрдЪреЗ рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЕрд╡рд▓реЛрдХрди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА Google API рдФрд░ рд╡реЗрдм рд░реИрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдкрдиреЗ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ YouTube рд╡реАрдбрд┐рдпреЛ рдХреИрд╕реЗ рдЪрд▓рд╛рдПрдВ, рдЗрд╕ рдкрд░ рдХреБрдЫ рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВред

рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рдФрд░ рдкреНрд▓реЗрдпрд░ рд╕реНрдХреНрд░реАрди рдкрд░: рдЧреИрд░-рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪреИрдирд▓реЛрдВ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛рдПрдБ

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рддреНрд╡рд░рд┐рдд рдЦреЛрдЬ

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) => рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рдПрдХ рдирдпрд╛ рдЪреИрдирд▓ рдпрд╛ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдЬреЛрдбрд╝реЗрдВ

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рдСрдирд▓рд╛рдЗрди рдирд╛рдо рд╕реЗ рдЦреЛрдЬреЗрдВ рдпрд╛ рдХреЛрдИ рдЬреНрдЮрд╛рдд рдкрддрд╛ рдбрд╛рд▓реЗрдВред рдХрд┐рд╕реА рдЪреИрдирд▓ рдпрд╛ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХреЗ рд╡реАрдбрд┐рдпреЛ рдХреА рд╕реВрдЪреА рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рд╣реЗрдЬреА рдЬрд╛рддреА рд╣реИ; рдЖрдЗрдХрди рдХреИрд╢реНрдб рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред

рдЧрддрд┐рд╢реАрд▓ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ - рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо рдЪрд▓рд╛рдПрдБ

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) => рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рд╡реАрдбрд┐рдпреЛ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдореЗрдВ рдХреЗрд╡рд▓ рд╡реЗ рд╡реАрдбрд┐рдпреЛ рд╣реЛрдВрдЧреЗ рдЬреЛ рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕реА рддрд░рд╣, рдпрджрд┐ рдЖрдк рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рд╕реЗрдЯрд┐рдВрдЧ рд╕реЗ рдХреЛрдИ рд╡реАрдбрд┐рдпреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдХреЗрд╡рд▓ рдЙрд╕реА рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХреЗ рд╡реАрдбрд┐рдпреЛ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред

рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдФрд░ рдЪреИрдирд▓ рдХреЛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдмрдВрдж рдФрд░ рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

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

рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдЬреЛрдбрд╝реЗрдВ

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

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

рдХрд╛рд▓реА рд╕реВрдЪреА рджреЗрдЦреЗрдВ рдФрд░ рдЧрд▓рддреА рд╕реЗ рдЕрд╡рд░реБрджреНрдз рдЖрдЗрдЯрдореЛрдВ рдХреЛ рдкреБрдирдГ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ:
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ > рд╣реЗрдбрд░ рдореЗрдиреВ > рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рдкрд╕рдВрджреАрджрд╛ рд╡реАрдбрд┐рдпреЛ рдФрд░ рджреЗрдЦрдиреЗ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рдкреНрд▓реЗрдпрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдкрд╕рдВрджреАрджрд╛ рд╡реАрдбрд┐рдпреЛ рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рд╣реИрдВред

рд╕реНрдХреНрд░реАрди рд╢реАрд░реНрд╖рдХ рдореЗрдВ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдФрд░ рдЧреИрд▓рд░реА рдФрд░ рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рджреЗрдЦрдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░реАрди рдпрд╛ рдХрд┐рд╕реА рднреА рд╕реВрдЪреА рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдпрд╛ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХрд╛ рдирд╛рдо рдпрд╛ рдкрддрд╛ рдХреЙрдкреА рдХрд░реЗрдВред

рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд - рдЕрдиреБрд╢рдВрд╕рд┐рдд рдЪреИрдирд▓ рдФрд░ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдЬреЛрдбрд╝реЗрдВ

рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?) => рдХреЛрд╢реА рдХреА рдореГрддреНрдпреБ рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╣реИ (рдХреНрдпрд╛ YouTube рдХреЛ рдЖрд░рд╛рдорджрд╛рдпрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ?)

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддреБрд░рдВрдд рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЬреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ред

рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЪреИрдирд▓ рдФрд░ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдмрдВрдж рдпрд╛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕реНрдерд╛рдкрдирд╛

╨б╤В╤А╨░╨╜╨╕╤Ж╨░ ╨┐╤А╨╛╨╡╨║╤В╨░: https://github.com/sadr0b0t/yashlang/
рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ: https://github.com/sadr0b0t/yashlang/blob/master/README.en.md
рд░рд┐рд▓реАрдЬрд╝: https://github.com/sadr0b0t/yashlang/releases

  • рдпрд╣ Google Play рдкрд░ рдирд╣реАрдВ рд╣реИ рдФрд░ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ (Google рдЙрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдкреАрдЖрдИ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЪреИрдирд▓ рд╡реНрд╣рд╛рдЗрдЯрд▓рд┐рд╕реНрдЯ рдпрд╛ рдиреНрдпреВрдкрд╛рдЗрдк рдкреНрд▓реЗрдпрд░ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ)
  • рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ: https://github.com/sadr0b0t/yashlang/
  • рд░рд┐рд▓реАрдЬрд╝ рдЕрдиреБрднрд╛рдЧ рд╕реЗ рдПрдкреАрдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ: https://github.com/sadr0b0t/yashlang/releases
  • рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдХреИрдЯрд▓реЙрдЧ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдПрдл Droid (рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рд╕реНрд╡реАрдХреГрдд рд╣реЛ рдЧрдпрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рдЧрднрдЧ рдПрдХ рдорд╣реАрдиреЗ рд╕реЗ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝рд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдирд╣реАрдВ

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдПрдХ рд╣реА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдПрдкреАрдХреЗ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреЗ рдХрд╛рд░рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛; рдХрд┐рд╕реА рдирдП рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реЛрдЧрд╛ - рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХреИрд╢ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд┐рдВрдЧ рдЗрддрд┐рд╣рд╛рд╕ (рдпрд╛ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЬрд╛рдиреЗрдВ)ред

рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг

рдЗрд╕рдХреЗ рд▓рд┐рдП Google/YouTube рдЦрд╛рддреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд, рдореБрдлрд╝реНрдд GPLv3 рд▓рд╛рдЗрд╕реЗрдВрд╕ред

рдкреНрд░рд╢реНрди: рдХреНрдпрд╛ рд▓реЗрдЦрдХреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рдХреЗ рдмрд┐рдирд╛ (рдпрд╛ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рд╕рд╛рде) рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рдЦрдВрдЧрд╛рд▓рдирд╛ рдЖрдо рддреМрд░ рдкрд░ рдХрд╛рдиреВрдиреА рд╣реИ? Google рдиреЗ Google Play рд╕реЗ рдРрдкреНрд╕ рд╣рдЯрд╛ рджрд┐рдП рд╣реИрдВ, рдЬреЛ рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдкрдиреА рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдмрдВрдз рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддреЗ рд╣реИрдВред
рдЙрддреНрддрд░: рдмреЗрд╢рдХ, рдпрд╣ рдХрд╛рдиреВрдиреА рд╣реИ, рдпрд╣ рдЖрдк рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ рдХрд┐ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдЖрдЧреЗ: рдЕрдореЗрд░рд┐рдХрд╛ рдХреА рдПрдХ рдЕрджрд╛рд▓рдд рдиреЗ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реИрдз рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рддрдХрдиреАрдХреА рд╣рд╕реНрддрдХреНрд╖реЗрдк рдкрд░ рд░реЛрдХ рд▓рдЧрд╛ рджреА рд╣реИред, рд▓реЗрдХрд┐рди рдЧреБрд▓ рдХреА рд░рд╛рдп рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреА рд╣реИ; рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдЕрднреА рддрдХ рдЙрдиреНрд╣реЗрдВ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдореЗрд░рд┐рдХреА рдЕрджрд╛рд▓рдд рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред

рдХреБрдЫ рдХреЛрдб

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдиреНрдпреВрдкрд╛рдЗрдкрдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ - рдЦрд┐рд▓рд╛рдбрд╝реА рд╕рдорд░реНрдерди рдкрд░рд┐рдпреЛрдЬрдирд╛ NewPipe, рдЖрдкрдХреЛ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЪреИрдирд▓ рдпрд╛ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╡реАрдбрд┐рдпреЛ рдХреА рдПрдХ рд╕реВрдЪреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ, рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рд╡реАрдбрд┐рдпреЛ (рд╡реАрдбрд┐рдпреЛ рдХреЗ рд╡реЗрдм рдкреЗрдЬ рдкрд░ рдХреНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ, рд╡реАрдбрд┐рдпреЛ рдЖрдЗрдХрди рдХрд╛ рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдХрд╛ рдкрддрд╛ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдзрд╛рд░рд╛ред

рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдХреЛрдб рдереЛрдбрд╝рд╛ рдмреЛрдЭрд┐рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдВ рдирд╣реАрдВ рджреВрдВрдЧрд╛, рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ, рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдХреНрд▓рд╛рд╕ рд╣реИ рд╕рд╛рдордЧреНрд░реА рд▓реЛрдбрд░.

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реАрдбрд┐рдпреЛ рдкреЗрдЬ рдХреЗ рдкрддреЗ рд╕реЗ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдкрддрд╛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдкреНрд▓реЗрдпрд░ рдореЗрдВ рдХреИрд╕реЗ рдЪрд▓рд╛рдПрдВред

рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
рдРрдк/рдмрд┐рд▓реНрдб.рдЧреНрд░реЗрдбрд▓

dependencies {
...
    // NewPipe: youtube parser
    // https://github.com/TeamNewPipe/NewPipeExtractor
    implementation "com.github.TeamNewPipe:NewPipeExtractor:v0.17.4"
...
}

рдордЬреЗ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рдж рднреА рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐... рдЙрджрд╛рд╣рд░рдг рдЧрд╛рдпрдм рдбрд╛рдЙрдирд▓реЛрдбрд░ рд╡рд░реНрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░реЗрдВрдЧреЗред рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ NewPipeExtractor/extractor/src/test/java/org/schabi/newpipe/Downloader.java - рд╕рдВрд╕реНрдХрд░рдг 0.17.4 рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрднреА рднреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред

YouTube рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╡реАрдбрд┐рдпреЛ рдкреЗрдЬ рдХреЗ рдкрддреЗ рд╕реЗ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

рдРрдк/src/main/java/su/sadrobot/yashlang/controller/ContentLoader.java

    public String extractYtStreamUrl(final String ytVidUrl) throws ExtractionException, IOException {
        // https://github.com/TeamNewPipe/NewPipeExtractor/blob/dev/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorDefaultTest.java
        NewPipe.init(Downloader.getInstance(), new Localization("GB", "en"));
        final YoutubeStreamExtractor extractor = (YoutubeStreamExtractor) YouTube
                .getStreamExtractor(ytVidUrl);
        extractor.fetchPage();
        final String streamUrl = extractor.getVideoStreams().size() > 0 ? extractor.getVideoStreams().get(0).getUrl() : null;
//        for (final VideoStream stream : extractor.getVideoStreams()) {
//            stream.getUrl();
//        }
        return streamUrl;
    }

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реАрдбрд┐рдпреЛ рдкрддрд╛ ytVidUrl YouTube рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдХрд┐рд╕реА рднреА рд╡реАрдбрд┐рдпреЛ рдХреЗ рдкреГрд╖реНрда рдХрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрддрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ https://www.youtube.com/watch?v=pd2RlatmNRk

рдЦрд┐рд▓рд╛рдбрд╝реА рдХрд░реЗрдЧрд╛ рдПрдХреНрд╕реЛрдкреНрд▓реЗрдпрд░ рдЧреВрдЧрд▓ рд╕реЗ рд╣реА. рдпрд╣ YouTube рдкрд░ рдХреЛрдИ рд╡реЗрдм рд░реИрдкрд░ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдХрд┐рд╕реА рднреА рд╡реАрдбрд┐рдпреЛ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдореНрдмреЗрдбреЗрдб рдкреНрд▓реЗрдпрд░ рд╣реИ, рдЬреЛ рдХрд╛рдлреА рд▓рдЪреАрд▓рд╛ рдФрд░ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╕рд╣реА рдкрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ YouTube рд╕реЗ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рднреА рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдореЗрдВ рдЕрднреА-рдЕрднреА рд╕реНрдЯреНрд░реАрдо рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рд╣реИ, рддреЛ рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕реЗ рдкреНрд▓реЗрдпрд░ рдХреЛ рдХреИрд╕реЗ рднреЗрдЬрд╛ рдЬрд╛рдПред

рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдРрдк/рдмрд┐рд▓реНрдб.рдЧреНрд░реЗрдбрд▓:

dependencies {
...
    // google Exoplayer
    // https://github.com/google/ExoPlayer
    // https://exoplayer.dev/
    implementation 'com.google.android.exoplayer:exoplayer:2.10.8'
...
}

рд╣рдо рдкреНрд▓реЗрдпрд░ рдШрдЯрдХ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдХреНрд░реАрди рдкрд░ рд░рдЦрдиреЗ рдХреА рд╕рднреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ (рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдпрд╛ рдХреЛрдб рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ), рд╣рдо рдХреЗрд╡рд▓ рдпрд╣ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдкреНрд▓реЗрдпрд░ рдореЗрдВ YouTube рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдХреИрд╕реЗ рдЪрд▓рд╛рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ рдКрдкрд░ рдкреНрд░рд╛рдкреНрдд рдкрддрд╛:

рдРрдк/src/main/java/su/sadrobot/yashlang/WatchVideoActivity.java

private void playVideoStream(final String streamUrl, final long seekTo) {
    if (streamUrl == null) {
        // ╨╛╤Б╤В╨░╨╜╨╛╨▓╨╕╤В╤М ╨┐╤А╨╛╨╕╨│╤А╤Л╨▓╨░╨╜╨╕╨╡ ╤В╨╡╨║╤Г╤Й╨╡╨│╨╛ ╤А╨╛╨╗╨╕╨║╨░, ╨╡╤Б╨╗╨╕ ╨▒╤Л╨╗ ╨╖╨░╨│╤А╤Г╨╢╨╡╨╜
        videoPlayerView.getPlayer().stop(true);
    } else {
        // https://exoplayer.dev/
        // https://github.com/google/ExoPlayer

        final Uri mp4VideoUri = Uri.parse(streamUrl);
        final MediaSource videoSource = new ProgressiveMediaSource.Factory(videoDataSourceFactory)
                .createMediaSource(mp4VideoUri);

        // ╨Я╨╛╤Б╤В╨░╨▓╨╕╨╝ ╨╜╨░ ╨┐╨░╤Г╨╖╤Г ╤Б╤В╨░╤А╨╛╨╡ ╨▓╨╕╨┤╨╡╨╛, ╨┐╨╛╨║╨░ ╨│╨╛╤В╨╛╨▓╨╕╨╝ ╨╜╨╛╨▓╨╛╨╡
        if (videoPlayerView.getPlayer().getPlaybackState() != Player.STATE_ENDED) {
            // ╨Х╤Б╨╗╨╕ ╤Б╤В╨░╨▓╨╕╤В╤М ╨╜╨░ ╨┐╨░╤Г╨╖╤Г ╨╖╨┤╨╡╤Б╤М ╨┐╨╛╤Б╨╗╨╡ ╤В╨╛╨│╨╛, ╨║╨░╨║ ╨┐╨╗╨╡╨╡╤А ╨▓╤Б╤В╨░╨╗ ╨╜╨░ ╨┐╨░╤Г╨╖╤Г ╤Б╨░╨╝, ╨╖╨░╨║╨╛╨╜╤З╨╕╨▓
            // ╨╕╨│╤А╨░╤В╤М ╨▓╨╕╨┤╨╡╨╛, ╨┐╨╛╨╗╤Г╤З╨╕╨╝ ╨╖╨┤╨╡╤Б╤М ╨▓╤В╨╛╤А╨╛╨╡ ╤Б╨╛╨▒╤Л╤В╨╕╨╡ STATE_ENDED, ╨┐╨╛╤Н╤В╨╛╨╝╤Г ╨╜╨░╨╝ ╨╜╤Г╨╢╨╜╨░ ╨╖╨┤╨╡╤Б╤М
            // ╤Б╨┐╨╡╤Ж╨╕╨░╨╗╤М╨╜╨░╤П ╨┐╤А╨╛╨▓╨╡╤А╨║╨░.
            // ╨Я╤А╨╕ ╤Н╤В╨╛╨╝ ╨╖╨╜╨░╤З╨╡╨╜╨╕╨╡ getPlayWhenReady() ╨╛╤Б╤В╨░╨╜╨╡╤В╤Б╤П true, ╨┐╨╛╤Н╤В╨╛╨╝╤Г ╨┐╤А╨╛╨▓╨╡╤А╤П╨╡╨╝ ╨╕╨╝╨╡╨╜╨╜╨╛ ╤Б╨╛╤Б╤В╨╛╤П╨╜╨╕╨╡.
            // https://github.com/google/ExoPlayer/issues/2272
            videoPlayerView.getPlayer().setPlayWhenReady(false);
        }

        // Prepare the player with the source.
        ((SimpleExoPlayer) videoPlayerView.getPlayer()).prepare(videoSource);

        // ╨г╨║╨░╨╢╨╡╨╝ ╤В╨╡╨║╤Г╤Й╤Г╤О ╨┐╨╛╨╖╨╕╤Ж╨╕╤О ╤Б╤А╨░╨╖╤Г ╨┐╤А╨╕ ╨╖╨░╨│╤А╤Г╨╖╨║╨╡ ╨▓╨╕╨┤╨╡╨╛
        // (╨▓ ╨║╨╛╨╝╨╡╨╜╤В╨░╤Е ╤З╤В╨╛-╤В╨╛ ╨┐╨╕╤И╤Г╤В ╤З╤В╨╛-╤В╨╛ ╨┐╤А╨╛ ╨┤╨░╤В╨░╤Б╨╛╤А╤Б╤Л, ╨║╨╛╤В╨╛╤А╤Л╨╡ ╨┐╨╛╨┤╨┤╨╡╤А╨╢╨╕╨▓╨░╤О╤В ╨╕╨╗╨╕ ╨╜╨╡ ╨┐╨╛╨┤╨┤╨╡╤А╨╢╨╕╨▓╨░╤О╤В
        // ╨┐╨╡╤А╨╡╤Е╨╛╨┤╤Л seek ╨┐╤А╨╕ ╨╖╨░╨│╤А╤Г╨╖╨║╨╡, ╨┐╨╛╤Е╨╛╨╢╨╡, ╤З╤В╨╛ ╤Н╤В╨╛ ╤Д╨╕╨│╨╜╤П - ╨┐╤А╨╛╤Б╤В╨╛ ╨┤╨╡╨╗╨░╨╡╨╝ seek ╤Б╤А╨░╨╖╤Г ╨┐╨╛╤Б╨╗╨╡ ╨╖╨░╨│╤А╤Г╨╖╨║╨╕)
        // Exoplayer plays new Playlist from the beginning instead of provided position
        // https://github.com/google/ExoPlayer/issues/4375
        // How to load stream in the desired position? #2197
        // https://github.com/google/ExoPlayer/issues/2197
        // ╨▓ ╤Н╤В╨╛╨╝ ╨╝╨╡╤Б╤В╨╡ ╨╜╨╛╤А╨╝╨╗╨░╤М╨╜╤Л╨╣ duration ╨╡╤Й╨╡ ╨╜╨╡ ╨┤╨╛╤Б╤В╤Г╨┐╨╡╨╜, ╨┐╨╛╤Н╤В╨╛╨╝╤Г ╨╡╨│╨╛ ╨╜╨╡ ╨┐╤А╨╛╨▓╨╡╤А╤П╨╡╨╝
        //if(seekTo > 0 && seekTo < videoPlayerView.getPlayer().getDuration()) {
        if (seekTo > 0) {
            // ╨╜╨░ 5 ╤Б╨╡╨║╤Г╨╜╨┤ ╤А╨░╨╜╤М╤И╨╡
            videoPlayerView.getPlayer().seekTo(seekTo - 5000 > 0 ? seekTo - 5000 : 0);
        }
        videoPlayerView.getPlayer().setPlayWhenReady(true);
    }
}

рдЬреНрдЮрд╛рдд рдкрд╣рд▓реБ

  • рдЖрдпреБ рдкреНрд░рддрд┐рдмрдВрдз рд╡рд╛рд▓реЗ рд╡реАрдбрд┐рдпреЛ рдирд╣реАрдВ рдЪрд▓рд╛рдПрдВрдЧреЗ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ Google/YouTube рдЦрд╛рддреЗ рдореЗрдВ рд▓реЙрдЧрд┐рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдЗрд▓реНрдпрд╛ рдореБрд░реЛрдореЗрдЯреНрд╕, рдореЙрд╕рдлрд┐рд▓реНрдо рд╕рд┐рдиреЗрдорд╛ рдХрдВрд╕рд░реНрди, рд░реБрд╕реНрд▓рд╛рди рдФрд░ рд▓реНрдпреВрдбрдорд┐рд▓рд╛ рдлрд┐рд▓реНрдо 1, рдореЙрд╕рдлрд┐рд▓реНрдо рдлрд┐рд▓реНрдо рдХрдВрд╕рд░реНрди

рд╕рд▓рд╛рд╣: рдРрд╕реЗ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдпрд╛ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓реЗрдЦрдХ рд╕реЗ рдЧрд▓рддреА рд╕реЗ рд▓рдЧрд╛рдП рдЧрдП рдкреНрд░рддрд┐рдмрдВрдз рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВред

  • рдХреБрдЫ рдкреНрд░рд╕рд╛рд░рдг рд╡реАрдбрд┐рдпреЛ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рд╢реВрдиреНрдп рд▓рдВрдмрд╛рдИ рд▓реМрдЯрд╛рддреА рд╣реИ, рдирд╣реАрдВ рдЪрд▓реЗрдВрдЧреЗ (рдРрд╕реЗ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП, рд╕реВрдЪрд┐рдпреЛрдВ рдФрд░ рдЧреИрд▓рд░реА рдореЗрдВ рдЕрд╡рдзрд┐ рдХреЛ "[dur undef]" рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреАрдЬрд┐рдП! рд╕реЛрдпреБрдЬрдореБрд▓реНрдЯрдлрд┐рд▓реНрдо рдПрдЪрдбреА (рдмрдЪреНрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдЯреВрди) рдХреЗ рд╕рднреА рдЕрдВрдХ, рд╕реЛрдпреБрдЬрдореБрд▓реНрдЯрдлрд┐рд▓реНрдо рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реЗ рдХрд╛рд░реНрдЯреВрди, рд╢реАрд░реНрд╖ рдХрд╛рд░реНрдЯреВрди рд╕реЛрдпреБрдЬрдореБрд▓реНрдЯрдлрд┐рд▓реНрдо, рд╕реЛрдпреБрдЬрдореБрд▓реНрдЯрдлрд┐рд▓реНрдо рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реЗ рдХрд╛рд░реНрдЯреВрди

рд╕рд▓рд╛рд╣: рдРрд╕реЗ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

  • рдЬреЛ рд╡реАрдбрд┐рдпреЛ рдХреЗрд╡рд▓ рд╕реАрдзреЗ рд▓рд┐рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдиреАрдп рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рднреА рд╡реАрдбрд┐рдпреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдЯреИрдорд┐рдВрдЧ рдСрдл рдлрд╛рдпрд░ рдПрдкрд┐рд╕реЛрдб 1, рдореЙрд╕рдлрд┐рд▓реНрдо рд╕рд┐рдиреЗрдорд╛ рдХрдВрд╕рд░реНрди

  • рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реАрдбрд┐рдпреЛ рдорд┐рд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрд┐рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд▓реЗрдпрд░ рдореЗрдВ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рднреЗрдЬреЗрдВ (рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ) рдиреНрдпреВрдкрд╛рдЗрдкрдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рдФрд░ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдпреЗ).

  • рдпрджрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рдзреАрдорд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдмрдВрдж рдирд╣реАрдВ рд╣реИ) рддреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдзреАрдорд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рдирддреАрдЬрддрди,

рдореЗрд░рд╛ рдмреЗрдЯрд╛ рдЯреИрдмрд▓реЗрдЯ рд╕реЗ рд╕реИрдорд╕рдВрдЧ рд╕реНрдорд╛рд░реНрдЯ рдЯреАрд╡реА рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛, рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛ред рдЗрд╕рд▓рд┐рдП, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднрд┐рднрд╛рд╡рдХреАрдп рдирд┐рдпрдВрддреНрд░рдг рдЕрднреА рднреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╣реИред

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

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ