YouTube рджреЗрдЦрдиреЗ рдХреЗ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд╕рд╛рде рдПрдХ рдЯреАрд╡реА рдХреА рдЦрд░реАрдж рдФрд░ рдХрдИ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓реЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдВ рдХреНрд▓рд┐рдк рджреИрдирд┐рдХ рд░реВрдк рд╕реЗ рдмрд┐рдЫрд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, рдореИрдВ рдЕрдкрдиреЗ рддрд╛рдЬрд╛ рдлреЛрди рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдФрд░ рдЯреАрд╡реА рдХреЗ рдмреАрдЪ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЛ рджреВрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ редрд╡рд┐рдЪрд╛рд░ рд╕рд░рд▓ рд╣реИ:- рджрд┐рдпрд╛ рдЧрдпрд╛ : рдирд╡реАрдирддрдо рдХреНрд▓рд┐рдк рдХреЗ рджреИрдирд┐рдХ рдЕрдкрд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕рд╛рдордЧреНрд░реА-рдирд┐рд░реНрдорд╛рддрд╛ рдЪреИрдирд▓ред
- рдХрд╛рд░реНрдп : рдЗрди рд╕рднреА рдХреНрд▓рд┐рдк рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ YouTube рдкрд░ рдПрдХ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирдП рдХреЛ рдкрдХрдбрд╝реЗрдВред
- рдЙрдкрдХрд░рдг : Google Apps рд╕реНрдХреНрд░рд┐рдкреНрдЯ (GAS), YouTube API
рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓ рдЗрддрд┐рд╣рд╛рд╕ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ
рд╣рдо рдПрдХ рдЙрдкрдпреБрдХреНрдд рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ YouTube рдХреНрд▓рд┐рдк рдХреЗ рд╕рд╛рде рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, @fresh_farsh рдХреЛ рд▓реЗрдВ)редрдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рддреАрди рдбреЙрдЯ рд╣реИрдВ - " рдирд┐рд░реНрдпрд╛рдд рдЪреИрдирд▓ рдЗрддрд┐рд╣рд╛рд╕ "редрд▓рд┐рдВрдХ рдХреА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдкрд╛рда рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдЪреЗрдХрдорд╛рд░реНрдХ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдЕрдзрд┐рдХрддрдо рдЕрдкрд▓реЛрдб рдЕрд╡рдзрд┐ рд╕реЗрдЯ рдХрд░реЗрдВ, рдЕрд░реНрдерд╛рдд " рдкрд╣рд▓реЗ рд╕рдВрджреЗрд╢ рд╕реЗ рд╡рд░реНрддрдорд╛рди рддрд┐рдерд┐ рддрдХ ред"ChatExport рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдХрдИ рдЧрд┐рдиреЗ рд╣реБрдП рд╕рдВрджреЗрд╢ рдлрд╝рд╛рдЗрд▓реЛрдВ (2,3,4 ...) рдХреЗ рдЕрдВрджрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред Html , рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЪреИрдирд▓ рд╕рд╛рдордЧреНрд░реА рдХреА рдорд╛рддреНрд░рд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИредGoogle рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рдореЗрдВ рдПрдХ рдЪреИрдирд▓ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛
рд╣рдореЗрдВ Google рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП YouTube рд▓рд┐рдВрдХ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рд╕рд╛рдЗрдЯ рдХреЛ рдЪреБрдирд╛ редрд╢реАрд░реНрд╖ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рджрд░реНрдЬ рдХрд░реЗрдВ:">(https:\/\/<a href="about:blank">www.youtube.com\/.*</a>?)<\/a>|">(https:\/\/youtu.be\/.*?)<\/a>
рдиреАрдЪреЗ рд╣рдо рд╕рднреА рд╕рдВрджреЗрд╢реЛрдВ (2,3,4) рд╕реЗред Html рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ ред рд╕рд╣реА рдлрд▓рдХ рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИредрд░рд┐рдЬрд▓реНрдЯ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред" рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдореЗрдВ рдкреВрд░реНрдг рдореИрдЪ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ " рджрдмрд╛рдПрдВ рддрд╛рдХрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдореИрдЪ рдЕрдирд▓реЛрдб рди рд╣реЛрдВред рд╣рдо CSV рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ , рдЕрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВредGoogle рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рдмрдирд╛рдПрдВредрд╣рдо рдЗрд╕рдореЗрдВ CSV рдХреА рдирдХрд▓ рдХрд░рддреЗ рд╣реИрдВ , рдЕрдирд╛рд╡рд╢реНрдпрдХ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, youtu.be рдХреЗ рд╕рднреА рд▓рд┐рдВрдХ рд▓рд╛рддреЗ рд╣реИрдВрдПрдХ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдЪреИрдирд▓ рдмрдирд╛рдПрдВ, YouTube API
рд╣рдо YouTube рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ редрд╢реАрд░реНрд╖ рджрд╛рдИрдВ рдУрд░, рдЦрд╛рддрд╛ рдЖрдЗрдХрди - " рдЪреИрдирд▓ рдмрдирд╛рдПрдВ " рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ редрд╣рдо
рдПрдХ рдирд╛рдо рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВ , рдкрддрд╛ рдмрд╛рд░ рд╕реЗ рдЪреИрдирд▓ рдЖрдИрдбреА рдпрд╛рдж рд░рдЦреЗрдВ :https://www.youtube.com/playlist?list=<ID CHANNEL>рдЕрдм рд╣рдореЗрдВ YouTube API рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рддрд░реАрдХреЗ рд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ:- рд╣рдо рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ , рдлрд┐рд░ " рдПрдкреАрдЖрдИ рдФрд░ рд╕реЗрд╡рд╛рдПрдВ - рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ - рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ " рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ
- рддреБрд░рдВрдд рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ ред
рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдирд╛рдо рджреЗрддреЗ рд╣реИрдВ, " рдмрдирд╛рдПрдБ " рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ редрдЗрд╕рдХреЗ рдмрд╛рдж, " API рдФрд░ рд╕реЗрд╡рд╛рдПрдБ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ , " YouTube рдбреЗрдЯрд╛ API v3 " рджреЗрдЦреЗрдВ - рд╕рдХреНрд╖рдо рдХрд░реЗрдВ редрддреЛ, рдПрдкреАрдЖрдИ рд╢рд╛рдорд┐рд▓ рд╣реИ редрд╣рдо Google рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрддреЗ рд╣реИрдВред" рдЙрдкрдХрд░рдг - рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдкрд╛рджрдХ ред"рд╣рдо рдХреЛрдб рдкреЗрд╕реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЖрдИрдбреАрдЪрдиреЗрд▓ рдореЗрдВ рд╣рдо рдЕрдкрдиреЗ рдЪреИрдирд▓ рдХреА рдЖрдИрдбреА рдбрд╛рд▓рддреЗ рд╣реИрдВ, " рдлрд╛рдЗрд▓ - рд╕реЗрд╡ " (CTRL + S)редрд╕реЛрд░реНрд╕ рдХреЛрдбidCHannel = 'PLZqUj_5dkPHaAYSECFNOKqnsr2JypZnoo'
function fromSheetToYouTube(){
var ss = SpreadsheetApp.getActiveSpreadsheet()
var s = ss.getSheets()[0]
var data = s.getDataRange().getValues()
for (var d=1; d<=200; d++) {
try {
YouTube.PlaylistItems.insert({
snippet: {
playlistId: idCHannel,
resourceId: {
kind: "youtube#video",
videoId: data[d][0].replace('https://youtu.be/','')
}
}
}, "snippet")
s.getRange("B"+parseInt(d+1)).setValue('')
Utilities.sleep(1000)
if (d%50 == 0) Utilities.sleep(15000)
} catch (e) {
console.error(e);
}
}
}
рдЕрдм рд╣рдореЗрдВ рдПрдкреАрдЖрдИ рдХреЛ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред" рд╕рдВрд╕рд╛рдзрди - рдЙрдиреНрдирдд Google рд╕реБрд╡рд┐рдзрд╛рдПрдБ - YouTube рдбреЗрдЯрд╛ API - рдЪрд╛рд▓реВ ред"рдЕрдм рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред" рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ " рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ рдореЗрдВ, " fromSheetToYouTube " рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ редрдмрд╛рдИрдВ рдУрд░ " рд░рди " рддреНрд░рд┐рдХреЛрдг рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ редрдпрджрд┐ рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИ рдФрд░ рдХреЛрдИ рд▓рд╛рд▓ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ " рд░рдирд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди fromSheetToYouTube ... " рдЪрд╛рд▓реВ рд╣реИ, рддреЛ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓ рд░рд╣реА рд╣реИредрдХреНрд▓рд┐рдк рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЖрдк рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрдЬреЛрдбрд╝рдирд╛ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 1 рдХреНрд▓рд┐рдк рдХреА рдЧрддрд┐ рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╣рд░ 50 рдХреНрд▓рд┐рдк (рдбрд┐рдлрд╝реЙрд▓реНрдЯ 15 рд╕реЗрдХрдВрдб) рдХреЛ рд░реЛрдХ рджреЗрддрд╛ рд╣реИредрдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж, рдЖрдк " рд╡реНрдпреВ - рд▓реЙрдЧ " рдореЗрдиреВ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд▓реЙрдЧ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ "CTRL + ENTER" рджрдмрд╛рдХрд░, рд╕рднреА рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рднреА рд╣реИред рд▓рд┐рдкрд┐called рдПрдкреНрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреВрд▓рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ"рдпрджрд┐ рд╣рдо рддреНрд░реБрдЯрд┐ рджреЗрдЦрддреЗ рд╣реИрдВ" рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЕрдкрдирд╛ рдХреЛрдЯрд╛ рдкрд╛рд░ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ ", рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдПрдкреАрдЖрдИ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рджреИрдирд┐рдХ рдХреЛрдЯрд╛ рдХреЛ рдкрд╛рд░ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ редрдХреНрд▓рд┐рдк рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗред рдХреЛрдЯрд╛ред
YouTube рдХреЗ рдкрд╛рд╕ рдПрдкреАрдЖрдИ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХреЛрдЯрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ редYouTube рдХреЛрдЯрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ редрд╢реЗрд╖ рдХреЛрдЯрд╛ рдпрд╣рд╛рдБ рд░реЗрдЦрд╛рдВрдХрди рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ)редрдХреЛрдЯрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд░реНрдгрди рд╕реЗ рд╣рдореЗрдВ рдХреНрдпрд╛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:YouTube рдбреЗрдЯрд╛ API рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкреНрд░рддрд┐ рджрд┐рди 10 рд╣рдЬрд╛рд░ рдЗрдХрд╛рдЗрдпреЛрдВ рдХрд╛ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛрдЯрд╛ рдЖрд╡рдВрдЯрди рд╣реИ
рдкреНрд░рддрд┐ рджрд┐рди 10,000 рдХреЛрдЯрд╛ редрдПрдХ рд▓рд┐рдЦрд┐рдд рдСрдкрд░реЗрд╢рди рдореЗрдВ рд▓рдЧрднрдЧ 50 рдЗрдХрд╛рдЗрдпреЛрдВ рдХреА рд▓рд╛рдЧрдд рд╣реЛрддреА рд╣реИ
рдПрдХ рд▓реЗрдЦрди рдСрдкрд░реЗрд╢рди рдореЗрдВ 50 рдХреЛрдЯрд╛ рдХреА рд▓рд╛рдЧрдд рд╣реЛрддреА рд╣реИ редрдпрджрд┐ рдЖрдк рдХреЛрдЯрд╛ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ , рддреЛ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рдСрдкрд░реЗрд╢рди рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╕реНрдирд┐рдкреЗрдЯ рд╕рдХреНрд╖рдо рд╣реИ, рддреЛ рдпрд╣ рд╣рдореЗрдВ 50 рд╕реЗ рдЕрдзрд┐рдХ рдХреЛрдЯрд╛ рдЫреЛрдбрд╝ рджреЗрдЧрд╛ редрдХреБрд▓ рд╣рдореЗрдВ 188 рдХреНрд▓рд┐рдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ 10000/53 рдорд┐рд▓рддреЗ рд╣реИрдВредрдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдХреНрд▓рд┐рдк рддрдХ рдХреЛрдИ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ рдпрд╛ рд▓реЗрдЦрдХ рдиреЗ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЕрдиреБрд░реЛрдз рдмрд░реНрдмрд╛рдж рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдПрдХ рд░реАрдбрд┐рдВрдЧ рдХреЛрдЯрд╛ рдЦрд░реНрдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛редрдпрд╣реА рд╣реИ, "рджреБрд░реНрдЧрдо / рд╣рдЯрд╛рдП рдЧрдП" рд╡реАрдбрд┐рдпреЛ рдХреЗ рдкреНрд░рддрд┐рд╢рдд рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рд╣рдо рдПрдХ рджрд┐рди рдореЗрдВ рд▓рдЧрднрдЧ 180 рдХреНрд▓рд┐рдк рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ редрдЖрдЗрдП рд╕рдмрд╕реЗ рдзреАрдореА рд╕реЗ рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡реА рдХреНрд▓рд┐рдк рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ
, .
тАФ тАЬ тАФ URL┬╗, , " ".
, . Selenium IDE тАФ Katalon, Katalon Recorder (Selenium IDE++ Chrome Firefox)
- 180
.
, 15 , 15:00 180 .
- 180
Google: "", "1".
"" , "1", , "", ( ).
fromSheetToYouTube ( ""), "1".
"" тАФ " тАФ тАФ ".
" " .
"1" "".
"1" "".
" тАж"
"".
" ".
.
: 5-6 1000 .
, , .
- .
- Google , IP Google .
VPN IP ( ).
IP+VPN .
, , .
.
TODO
" " API Google (Google Sheets API v4) R googlesheets4.
- :
- 50 . !
, .
YouTube , ID ( 50 ).
: https://www.youtube.com/watch_videos?video_ids=<ID1,ID2,ID3>
, , ID.
https://www.youtube.com/watch?v=jSPUkvjaiBs&list=< ID>
: https://www.youtube.com/playlist?disable_polymer=true&list=< ID>
disable_polymer .
, " тАж" ( 3 тАФ ┬л┬╗).
: 50 , .
:
Telegram GAS
рдпрджрд┐ рдпрд╣ рд╣рдорд╛рд░рд╛ рдЪреИрдирд▓ рд╣реИ рдпрд╛ рд╣рдордиреЗ рдЪреИрдирд▓ рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕реЗ рдХреНрд▓рд┐рдк рдХреЛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╡рд╣ рд╕рд╣рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдмреЙрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдирдП рдЪреИрдирд▓ рдХреНрд▓рд┐рдк рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рдорд╛рд░реА YouTube рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИредрд╣рдо рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмреЙрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ , рд╣рдо рдирд╛рдо рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВред рдмреЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ 123456789 рдлреЙрд░реНрдо рдХрд╛ рдПрдХ рдЯреЛрдХрди рдЪрд╛рд╣рд┐рдП: ABCD ...рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдбрд┐рдЯрд░ рдореЗрдВ рдЕрдкрдиреА Google рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВредрдЖрдк рд╣рдорд╛рд░реЗ рдкрд┐рдЫрд▓реЗ fromSheetToYouTube рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ редрд╣рдо doPost рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ , рдпрд╣ рдЗрдирдкреБрдЯ рдкрд░ рдмреЙрдЯ рд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реИ, рдирд┐рдпрдорд┐рдд рдПрдХ рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ YouTube рдкрд░ рдПрдХ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдЬреЛрдбрд╝рддрд╛ рд╣реИредрд╕реЛрд░реНрд╕ рдХреЛрдб
function doPost(e) {
var inp = JSON.parse(e.postData.contents)
if (typeof inp.channel_post === 'undefined'){
var inpTxt = inp.message.text
}else{
var inpTxt = inp.channel_post.text
}
var y = /(?<=youtube.com\/watch\?v=)(.*?)$|(?<=youtu.be\/)(.*?)$/.exec(inpTxt)[0]
try {
YouTube.PlaylistItems.insert({
snippet: {
playlistId: idCHannel,
resourceId: {
kind: "youtube#video",
videoId: y
}
}
}, "snippet")
} catch (e) {
console.error(e);
}
}
рдПрдХреНрд╕реЗрд╕ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛, рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред" рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ - рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рддрдХрд░реЗрдВ ... " рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ рдЪреБрдиреЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рд╣реИредрдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рд▓рд┐рдВрдХ рдХреА рд╕рд╛рдордЧреНрд░реА рдЪрд╛рд╣рд┐рдП https: //script.google.com/macros/s ... рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмреЙрдЯ рдЯреЛрдХрди рдФрд░ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХрд╛ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЙрдиреНрд╣реЗрдВ webhook рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд┐рдВрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ редhttps://api.telegram.org/bot<BOT TOKEN> / setWebHook; url = <рд▓рд┐рдВрдХ рд╕реЗ рдЖрд╡реЗрджрди>
рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП{"ok":true,"result":true,"description":"Webhook was set"}
рдореИрдВ рддреБрд░рдВрдд рд▓рд┐рдЦреВрдВрдЧрд╛ рдХрд┐ рд╡реЗрдмрд╣реБрдХ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ (рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдмреЙрдЯ рдХреЛ рд╣рдЯрд╛рдирд╛) рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: https://api.telegram.org/bot<BOT TOKEN> /
setWebHook{"ok":true,"result":true,"description":"Webhook was deleted"}
рдмреНрд▓реЙрдХрд┐рдВрдЧ рдХреЛ рдХреИрд╕реЗ рд░реЛрдХреЗрдВрдХрдИ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдореЗрдВ, рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЗ рд╕рдВрдЪрд╛рд▓рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдм рдХреБрдЫ рдЕрд╡рд░реБрджреНрдз рд╣реИ ред рддрджрдиреБрд╕рд╛рд░, https://api.telegram.org/ рдкрд░ рдХреЙрд▓ " рд╕рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде " рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ редрдпрд╣рд╛рдВ рд╡реАрдкреАрдПрди рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧрд╛, рдореИрдВрдиреЗ рд╣реЙрдЯрд╕реНрдкреЙрдЯ рд╢реАрд▓реНрдб рдлреНрд░реА рд╡реАрдкреАрдПрди рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ - Google рдХреНрд░реЛрдо рдХреЗ рд▓рд┐рдП рдЕрд╕реАрдорд┐рдд рд╡реАрдкреАрдПрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди, рд╣рдорд╛рд░рд╛ рдмреЙрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрдк рдмреЙрдЯ рдореЗрдВ рдХреБрдЫ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ doPost рдлрд╝рдВрдХреНрд╢рди рдЗрд╕реЗ рдкрдХрдбрд╝ рд▓реЗрдЧрд╛ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛редJSON рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдЗрдирдкреБрдЯ рд╕рдВрд░рдЪрдирд╛ рдпрд╣рд╛рдБ рд╣реИ редрд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдВрдЧреЗ - рд╣рдо рдХрдИ рдЪреИрдирд▓реЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддреЗ рд╣реИрдВ, рдПрдХ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдореЗрдВ рд╕рдм рдХреБрдЫ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╕рднреА рдЪреИрдирд▓реЛрдВ рд╕реЗ рдмреЙрдЯ рдХреЛ рдирдИ рдкреЛрд╕реНрдЯ рднреЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рддреБрд░рдВрдд рд╣рдорд╛рд░реА рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗредрд╕реНрд╡рдЪрд╛рд▓рдирдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╢рд╛рд╕рдХ рджреНрд╡рд╛рд░рд╛ рдЪреИрдирд▓ рдХреЛ рдмреЙрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдпрд╣рд╛рдВ рдЧреЛрдкрдиреАрдпрддрд╛ рдиреАрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж редрдЕрдм, рдЪреИрдирд▓ рдореЗрдВ рдПрдХ рдирдИ рдкреЛрд╕реНрдЯ рдХреЗ рд╕рд╛рде, рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреАJSON.parse(e.postData.contents).channel_post.text
рдИ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИредрдХреНрд░рдорд╢рдГ рдмреЙрдЯ рд╕реЗ рднреЗрдЬрддреЗ рд╕рдордпJSON.parse(e.postData.contents).message.text
рдЕрдкрдиреЗ рд╡рд┐рд╡реЗрдХ рдкрд░, рдЖрдк рдореИрдиреБрдЕрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд┐рдк, рд░рд┐рдкреНрд▓реЗ, рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд▓реЙрдЧ рдЖрджрд┐ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдХреЛ рдлрд╛рд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ редрдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЬреАрдПрдПрд╕ рдХреЛ рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ рддреБрд░рдВрдд рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рдЧрднрдЧ 10-30 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж, рдЗрд╕рд▓рд┐рдП рдмреЙрдЯ рдХреЛ рдЖрдкрдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрджреЗрд╢ рддреБрд░рдВрдд рдирд╣реАрдВ рдЖрдПрдЧрд╛редрдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдХреНрд▓рд┐рдк рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╕реАрдЦреЗ рд╣реИрдВредрдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЪреИрдирд▓ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдПрдХ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рд╣реИ, рдЬреЛ рдЪреИрдирд▓ рд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдФрд░ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рдЙрдиреНрд╣реЗрдВ GAS рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ рдФрд░ YouTube рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВредрд╕рдорд╕реНрдпрд╛ рд╕реБрд▓рдЭ рдЧрдИ рд╣реИредрд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ
рдпрд╣рд╛рдВ
рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг редYouTube API рд╕рдВрджрд░реНрдн рдпрд╣рд╛рдБ
рд╕рднреА Google Apps рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреАрдо рдпрд╣рд╛рдБ рд╣реИ