Если вы не хотите использовать подписки Youtube, вы должны получить session_token
после входа в учетную запись YouTube.
session_token
хранится в скрытом теге ввода:
document.querySelector('input[name=session_token]').value
или поле полнотекстового поиска XSRF_TOKEN, соответствующее значение - session_token, ссылка обычная:
const regex = /\'XSRF_TOKEN\':(.*?)\"(.*?)\"/g
Ниже приведена реализация на Python:
def YouTubeSubscribe(url,SessionManager):
while(1):
try:
html = SessionManager.get(url).content
session_token = (re.findall("XSRF_TOKEN\W*(.*)=", html , re.IGNORECASE)[0]).split('"')[0]
id_yt = url.replace("https://www.youtube.com/channel/","")
params = (('name', 'subscribeEndpoint'),)
data = [
('sej', '{"clickTrackingParams":"","commandMetadata":{"webCommandMetadata":{"url":"/service_ajax","sendPost":true}},"subscribeEndpoint":{"channelIds":["'+id_yt+'"],"params":"EgIIAg%3D%3D"}}'),
('session_token', session_token+"=="),
]
response = SessionManager.post('https://www.youtube.com/service_ajax', params=params, data=data)
check_state = json.loads(response.content)['code']
if check_state == "SUCCESS":
return 1
else:
return 0
except Exception as e:
print "[E] YouTubeSubscribe:"+ str(e)
pass