Remove files

This commit is contained in:
taizan-hokouto
2020-12-05 14:43:33 +09:00
parent 02d48ceccc
commit 865e4b5fab
11 changed files with 84 additions and 961 deletions

View File

@@ -1,52 +1,40 @@
from .pb.header_pb2 import Header
from .pb.replay_pb2 import Continuation
from . import enc
from base64 import urlsafe_b64encode as b64enc
from urllib.parse import quote
import base64
'''
Generate continuation parameter of youtube replay chat.
Author: taizan-hokuto
ver 0.0.1 2019.10.05 : Initial release.
ver 0.0.2 2020.05.30 : Use Protocol Buffers.
'''
def _gen_vid(video_id) -> str:
header = Header()
header.info.video.id = video_id
header.terminator = 1
return base64.urlsafe_b64encode(header.SerializeToString()).decode()
def _header(video_id) -> str:
channel_id = '_' * 24
S1_3 = enc.rs(1, video_id)
S1_5 = enc.rs(1, channel_id) + enc.rs(2, video_id)
S1 = enc.rs(3, S1_3) + enc.rs(5, S1_5)
S3 = enc.rs(48687757, enc.rs(1, video_id))
header_replay = enc.rs(1, S1) + enc.rs(3, S3) + enc.nm(4, 1)
return b64enc(header_replay)
def _build(video_id, seektime, topchat_only) -> str:
chattype = 1
timestamp = 0
if topchat_only:
chattype = 4
chattype = 4 if topchat_only else 1
fetch_before_start = 3
timestamp = 1000
if seektime < 0:
fetch_before_start = 4
elif seektime == 0:
timestamp = 1
timestamp = 1000
else:
timestamp = int(seektime * 1000000)
continuation = Continuation()
entity = continuation.entity
entity.header = _gen_vid(video_id)
entity.timestamp = timestamp
entity.s6 = 0
entity.s7 = 0
entity.s8 = 0
entity.s9 = fetch_before_start
entity.s10 = ''
entity.s12 = chattype
entity.chattype.value = chattype
entity.s15 = 0
return quote(
base64.urlsafe_b64encode(continuation.SerializeToString()).decode())
header = enc.rs(3, _header(video_id))
timestamp = enc.nm(5, timestamp)
s6 = enc.nm(6, 0)
s7 = enc.nm(7, 0)
s8 = enc.nm(8, 0)
s9 = enc.nm(9, fetch_before_start)
s10 = enc.rs(10, enc.nm(4, 0))
chattype = enc.rs(14, enc.nm(1, chattype))
s15 = enc.nm(15, 0)
entity = b''.join((header, timestamp, s6, s7, s8, s9, s10, chattype, s15))
continuation = enc.rs(156074452, entity)
return quote(b64enc(continuation).decode())
def getparam(video_id, seektime=-1, topchat_only=False) -> str: