рдкрд░рд┐рдЪрдп
рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдЯреНрд░рд╛рдВрд╕рдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдпрд░рд▓реЗрд╕ рдЕрдбреИрдкреНрдЯрд░ рдХреА рдкрд╕рдВрдж рд╕реЗ рдЖрдЧ рдкрдХрдбрд╝реА рд╣реИред рдореИрдВрдиреЗ рдорд┐рд░рд╛рдХрд╛рд╕реНрдЯ / рдбреАрдПрд▓рдПрдирдП рдХреЗ рд╕рд╛рде рдЪреАрдиреА рдПрдбреЗрдкреНрдЯрд░реЛрдВ рдХреЛ рджреЗрдЦрд╛ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдФрд░ рдХреНрд░реЛрдордХрд╛рд╕реНрдЯ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдпрджрд┐ WiDi, Miracast рдФрд░ dongles рдЬреИрд╕реЗ AIRTAME (рдЖрдкрдХреЛ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реЗ рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЙрдиреАрдЯрд░ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ) рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рддреЛ Chromecast рдореЗрд░реЗ рдЕрдВрджрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдерд╛ рдпрд╛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИред рд╡рд╣ рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдХреНрд░реЛрдордХрд╛рд╕реНрдЯ
рд▓реАрдкрдХрд╛рд╕реНрдЯ рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдорд┐рд▓рд╛, рдФрд░ рдХрд╛рдо рдореЗрдВ рдЗрд╕реЗ рдЖрдЬрдорд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЕрдзреНрдпрдпрди рднреА рдХрд┐рдпрд╛ред
рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧ
рдЖрд░реНрдХрд▓рд┐рдирдХреНрд╕ рдкрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ - рдмрд╕ AUR рд╕реЗ
рд▓реАрдкрдХрд╛рд╕реНрдЯ-рдЧрд┐рдЯ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдЖрдкрдХреЛ Google Chrome рдпрд╛ рдХреНрд░реЛрдорд┐рдпрдо рднреА рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реИред
рд╣рдо рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рджреЗрдЦрддреЗ рд╣реИрдВ:
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рдаINFO:root:Starting SSDP server INFO:root:Starting LEAP server INFO:root:Loading Config-JSON from Google-Server INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): clients3.google.com INFO:root:Parsing Config-JSON INFO:root:Added edaded98-5119-4c8a-afc1-de722da03562 app INFO:root:Added PlayMovies app INFO:root:Added 00000000-0000-0000-0000-000000000000 app INFO:root:Added 1812335e-441c-4e1e-a61a-312ca1ead90e app INFO:root:Added 06ee44ee-e7e3-4249-83b6-f5d0b6f07f34 app INFO:root:Added 2be788b9-b7e0-4743-9069-ea876d97ac20 app INFO:root:Added GoogleSantaTracker app INFO:root:Added 06ee44ee-e7e3-4249-83b6-f5d0b6f07f34_1 app INFO:root:Added Pandora_App app INFO:root:Added aa35235e-a960-4402-a87e-807ae8b2ac79 app INFO:root:Added YouTube app INFO:root:Added HBO_App app INFO:root:Added TicTacToe app INFO:root:Added Revision3_App app INFO:root:Added Songza_App app INFO:root:Added a7f3283b-8034-4506-83e8-4e79ab1ad794_2 app WARNING:root:Didn't add Netflix because it has no URL! INFO:root:Added GoogleMusic app INFO:root:Added 18a8aeaa-8e3d-4c24-b05d-da68394a3476_1 app INFO:root:Added Post_TV_App app INFO:root:Added ChromeCast app INFO:root:Added Hulu_Plus app INFO:root:Added GoogleCastSampleApp app INFO:root:Added GoogleCastPlayer app INFO:root:Added Fling app
рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдкрд░ рдХреЛрдИ рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЦреЛрд▓рддреЗ рд╣реИрдВ рдЬреЛ рдХреНрд░реЛрдордХрд╛рд╕реНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, YouTube), рдФрд░ рд╣рдо рд▓реАрдкрдХрд╛рд╕реНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдЙрд╕реА рд╕рдордп рд▓реЙрдЧ рдореЗрдВ:
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда INFO:tornado.access:200 GET /ssdp/device-desc.xml (192.168.0.105) 2.22ms INFO:tornado.access:200 GET /apps/YouTube (192.168.0.105) 3.18ms INFO:tornado.access:200 GET /apps/YouTube (192.168.0.105) 3.67ms INFO:tornado.access:201 POST /apps/YouTube (192.168.0.105) 5.29ms INFO:root:Channel for app set to <leapcast.services.websocket.ServiceChannel object at 0x195f690>
рд╡рд╛рд╣, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдкреНрд░реЛрдЯреЛрдХреЙрд▓
рдЦреЛрдЬ рдФрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рдмрдВрдзрди (рд╡рд╛рдВрдЫрд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдирд╛, рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛) рдХреЗ рд▓рд┐рдП,
DIAL рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП SSDP рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рд┐рдореНрдмрд╛рдпреЛрд╕рд┐рд╕ рдФрд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП HTTP REST + XMLред рдпрджрд┐ рдЖрдк UPnP рдФрд░ DLNA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ SSDP рдЖрдкрд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ REST рднрд╛рдЧ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред
- рдЬрдм рд▓реАрдкрдХрд╛рд╕реНрдЯ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ Google рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд╕рдХреЗред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ: рдЬреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЗрд╕реА рддрд░рд╣ред
- LeapCast рдиреЗ рдЦреБрдж рдХреЛ SSDP рдкрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ред
- Android рдХреНрд▓рд╛рдЗрдВрдЯ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ YouTube) SSDP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реАрдкрдХрд╛рд╕реНрдЯ рдкрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ ( /ssdp/device-desc.xml рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрддреЗ рд╣реБрдП), рдлрд┐рд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ YouTube (рдЕрдиреБрд░реЛрдз / рдРрдкреНрд╕ / YouTube ) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИ YouTube рдЗрд╕рд╕реЗ рдПрдХ рдЯреЛрдХрди рдЯреЛрдХрди рд▓реЗрддрд╛ рд╣реИ, рдЗрд╕реЗ POST рдЕрдиреБрд░реЛрдз (рд╕рдорд╛рди / рдПрдкреНрд▓рд┐рдХреЗрд╢рди / YouTube рдХреЗ рд▓рд┐рдП ) рдореЗрдВ LeapCast рднреЗрдЬрддрд╛ рд╣реИред
- LeapCast рдиреЗ www.youtube.com/tv рдкрд░ $ {POST_DATA} рдореЗрдВ рдПрдХ Chrome / Chromium рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛
- рдЖрдЧреЗ, рдПрдВрдбреНрд░реЙрдЗрдб рдФрд░ рд▓реАрдкрдХрд╛рд╕реНрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд░реИрдордкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (Google рдиреЗ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рд╕реЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╣рдЯрд╛ рджрд┐рдпрд╛)ред рдпрд╣ рдПрдХ WebSocket рдХреЗ рдЕрдВрджрд░ json рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
- рдЗрдВрдЯрд░реИрдХреНрд╢рди рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Android рдЙрд╕реА URL рдкрд░ Leapcast рдХреЗ рд▓рд┐рдП рдПрдХ DELETE рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ
YouTube рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, WebSocket YouTube рдХреЗ рд╕рд░реНрд╡рд░ рдХреЗ рдХрд┐рдирд╛рд░реЗ рдЙрдЧрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Google Music) рдХреЛ WebSocket рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП LeapCast рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдЖрдкрдХреЗ рд╡рд╛рдпрд░рд▓реЗрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдЕрдВрджрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИред
рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрджрд┐ рдХреНрд░реЛрдордХрд╛рд╕реНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ Google рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдореЛрджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рд╣реИ), рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рдбреЗрд╡рд▓рдкрд░ рдореЛрдб рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдХреЗ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдХреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрд╛рдлреА рджреБрдЦреА рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд▓реАрдкрдХрд╛рд╕реНрдЯ рдХреЗ рд╕рд╛рде рдЖрдк рдХрд┐рд╕реА рднреА рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЪрд╛рд▓реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдХреНрд░реЛрдордХрд╛рд╕реНрдЯ рдХреЗ рд▓рдЧрднрдЧ рдкреВрд░реНрдг-рдЕрдиреБрд░реВрдк рдПрдирд╛рд▓реЙрдЧ рдореЗрдВ рдкрд╛рдпрдерди + рдХреНрд░реЛрдо рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдЖрдк рдПрдХ рд╕рд╕реНрддрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдирд╣реАрдВ рдЦрд░реАрдж рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЦрд░реАрджрдиреЗ рдХрд╛ рдХрднреА рдлреИрд╕рд▓рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, Google рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЕрдиреБрдореЛрджрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВред