Skip to content

Commit 8ef4ff1

Browse files
authored
rewrite: tw: improve twitter rewrite to force mp4 for videos in embedded tweets (#761)
1 parent 16135d9 commit 8ef4ff1

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

pywb/rewrite/rewrite_dash.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,17 +90,25 @@ def rewrite_tw_dash(string, *args):
9090
try:
9191
best_variant = None
9292
best_bitrate = 0
93+
best_src = ""
9394
max_bitrate = 5000000
9495

9596
data = json.loads(string)
9697
for variant in data["variants"]:
97-
if variant["content_type"] != "video/mp4":
98+
if (("content_type" in variant and variant["content_type"] != "video/mp4") or
99+
("type" in variant and variant["type"] != "video/mp4")):
98100
continue
99101

100102
bitrate = variant.get("bitrate")
103+
src = variant.get("src")
104+
101105
if bitrate and bitrate > best_bitrate and bitrate <= max_bitrate:
102106
best_variant = variant
103107
best_bitrate = bitrate
108+
# just compare src strings with dimensions
109+
elif src and src > best_src:
110+
best_variant = variant
111+
best_src = src
104112

105113
if best_variant:
106114
data["variants"] = [best_variant]

pywb/rules.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ rules:
6161

6262
# twitter rules
6363
#=================================================================
64+
6465
- url_prefix: 'com,twitter)/i/profiles/show/'
6566

6667
fuzzy_lookup: '/profiles/show/.*with_replies\?.*(max_id=[^&]+)'
@@ -84,6 +85,14 @@ rules:
8485
function: 'pywb.rewrite.rewrite_dash:rewrite_tw_dash'
8586

8687

88+
- url_prefix: ['com,twimg,syndication,cdn)/tweet-result']
89+
90+
rewrite:
91+
js_regexs:
92+
- match: 'video":(.*?viewCount":\d+})'
93+
group: 1
94+
function: 'pywb.rewrite.rewrite_dash:rewrite_tw_dash'
95+
8796

8897

8998
# facebook rules

0 commit comments

Comments
 (0)