diff --git a/common/lib/xmodule/xmodule/tests/test_video.py b/common/lib/xmodule/xmodule/tests/test_video.py
index 99b95b6fa88ec09d3b399c51d78f62d0c903855b..2246cb6106ef5a7c1ed3c0465fe2d3a151c464e2 100644
--- a/common/lib/xmodule/xmodule/tests/test_video.py
+++ b/common/lib/xmodule/xmodule/tests/test_video.py
@@ -222,21 +222,8 @@ class VideoBlockTestBase(unittest.TestCase):
         for attr in ['tag', 'attrib', 'text', 'tail']:
             expected_attr = getattr(expected, attr)
             actual_attr = getattr(xml, attr)
-
-            # This is to deal with a special issue in the video descriptor xml output.
-            # The value of the transcript attribute of the video tag is a serialized
-            # json string.  This can have comparison problems in python3 where the order
-            # of the dictionary output is not gauranteed to be the same. So the strings
-            # don't match equally.  We convert the parsed json instead so that the
-            # comparison can be correct.
-            if isinstance(expected_attr, dict) and \
-                    isinstance(actual_attr, dict) and \
-                    'transcripts' in expected_attr and \
-                    'transcripts' in actual_attr:
-                expected_attr['transcripts'] = json.loads(expected_attr['transcripts'])
-                actual_attr['transcripts'] = json.loads(actual_attr['transcripts'])
-
             self.assertEqual(expected_attr, actual_attr)
+
         self.assertEqual(get_child_tags(expected), get_child_tags(xml))
         for left, right in zip(expected, xml):
             self.assertXmlEqual(left, right)
diff --git a/common/lib/xmodule/xmodule/video_module/video_module.py b/common/lib/xmodule/xmodule/video_module/video_module.py
index f3a6f12374fc5d4e4efb439114512feeb68c2776..f2d70dc56a4e3f1d34941f8d5860ea172b04e369 100644
--- a/common/lib/xmodule/xmodule/video_module/video_module.py
+++ b/common/lib/xmodule/xmodule/video_module/video_module.py
@@ -745,7 +745,7 @@ class VideoBlock(
                     xml.set('sub', '')
 
                 # Update `transcripts` attribute in the xml
-                xml.set('transcripts', json.dumps(transcripts))
+                xml.set('transcripts', json.dumps(transcripts, sort_keys=True))
 
             except edxval_api.ValVideoNotFoundError:
                 pass