Hack in support for the new twitter video format (#381)

This change adds ".m4s" and ".mp4" to the regex that modifies m3u8 playlist files proxied from twitter, and adds ".m4s" to the list of extensions proxied through nitter. The net effect is the new video format that twitter is using now should be supported.
This commit is contained in:
decoy-walrus 2021-05-08 12:05:31 -04:00 committed by GitHub
parent 52a0b530cc
commit 15e1ba1322
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 3 deletions

View File

@ -11,7 +11,7 @@ const
wwwRegex = re"https?://(www[0-9]?\.)?" wwwRegex = re"https?://(www[0-9]?\.)?"
m3u8Regex = re"""url="(.+.m3u8)"""" m3u8Regex = re"""url="(.+.m3u8)""""
manifestRegex = re"(.+(.ts|.m3u8|.vmap))" manifestRegex = re"\/(.+(.ts|.m4s|.m3u8|.vmap|.mp4))"
userpicRegex = re"_(normal|bigger|mini|200x200|400x400)(\.[A-z]+)$" userpicRegex = re"_(normal|bigger|mini|200x200|400x400)(\.[A-z]+)$"
extRegex = re"(\.[A-z]+)$" extRegex = re"(\.[A-z]+)$"
illegalXmlRegex = re"[^\x09\x0A\x0D\x20-\uD7FF\uE000-\uFFFD\u10000-\u10FFFF]" illegalXmlRegex = re"[^\x09\x0A\x0D\x20-\uD7FF\uE000-\uFFFD\u10000-\u10FFFF]"
@ -61,7 +61,7 @@ proc getM3u8Url*(content: string): string =
proc proxifyVideo*(manifest: string; proxy: bool): string = proc proxifyVideo*(manifest: string; proxy: bool): string =
proc cb(m: RegexMatch; s: string): string = proc cb(m: RegexMatch; s: string): string =
result = "https://video.twimg.com" & s[m.group(0)[0]] result = "https://video.twimg.com/" & s[m.group(0)[0]]
if proxy: result = getVidUrl(result) if proxy: result = getVidUrl(result)
result = manifest.replace(manifestRegex, cb) result = manifest.replace(manifestRegex, cb)

View File

@ -109,7 +109,7 @@ proc createMediaRouter*(cfg: Config) =
if getHmac(url) != request.matches[1]: if getHmac(url) != request.matches[1]:
resp showError("Failed to verify signature", cfg) resp showError("Failed to verify signature", cfg)
if ".mp4" in url or ".ts" in url: if ".mp4" in url or ".ts" in url or ".m4s" in url:
let code = await proxyMedia(request, url) let code = await proxyMedia(request, url)
check code check code