diff --git a/build.gradle b/build.gradle
index aad1cb2..9b2772c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -461,7 +461,8 @@
         "protobuf-lite",
         "retrace_internal",
         "youtube/youtube.android_15.33",
-        "youtube/youtube.android_16.20"
+        "youtube/youtube.android_16.20",
+        "youtube/youtube.android_17.19"
     ],
 ]
 
diff --git a/third_party/youtube/youtube.android_17.19.tar.gz.sha1 b/third_party/youtube/youtube.android_17.19.tar.gz.sha1
new file mode 100644
index 0000000..e672542
--- /dev/null
+++ b/third_party/youtube/youtube.android_17.19.tar.gz.sha1
@@ -0,0 +1 @@
+474aefd92152017a7e0ad54020b95c6d5045a0bb
\ No newline at end of file
diff --git a/tools/run_on_app.py b/tools/run_on_app.py
index 50dba8d..8c72939 100755
--- a/tools/run_on_app.py
+++ b/tools/run_on_app.py
@@ -606,6 +606,9 @@
       extra_args.append('-Dcom.android.tools.r8.allowTypeErrors=1')
     extra_args.append(
         '-Dcom.android.tools.r8.disallowClassInlinerGracefulExit=1')
+    if 'system-properties' in values:
+      for system_property in values['system-properties']:
+        extra_args.append(system_property)
 
   if options.debug_agent:
     if not options.compiler_build == 'full':
diff --git a/tools/upload_to_x20.py b/tools/upload_to_x20.py
index 3a1ef77..e6c293d 100755
--- a/tools/upload_to_x20.py
+++ b/tools/upload_to_x20.py
@@ -21,7 +21,7 @@
   return optparse.OptionParser().parse_args()
 
 def uploadFile(filename, dest):
-  print 'Uploading to %s' % dest
+  print('Uploading to %s' % dest)
   shutil.copyfile(filename, dest)
   subprocess.check_call(['chmod', '664', dest])
 
@@ -29,9 +29,9 @@
   (options, args) = parse_options()
   assert len(args) == 1
   name = args[0]
-  print 'Creating archive for %s' % name
+  print('Creating archive for %s' % name)
   if not name in os.listdir('.'):
-    print 'You must be standing directly below the directory you are uploading'
+    print('You must be standing directly below the directory you are uploading')
     return 1
   filename = utils.create_archive(name)
   sha1 = utils.get_sha1(filename)
@@ -40,7 +40,7 @@
   sha1_file = '%s.sha1' % filename
   with open(sha1_file, 'w') as output:
     output.write(sha1)
-  print 'Sha (%s) written to: %s' % (sha1, sha1_file)
+  print('Sha (%s) written to: %s' % (sha1, sha1_file))
 
 if __name__ == '__main__':
   sys.exit(Main())
diff --git a/tools/youtube_data.py b/tools/youtube_data.py
index 8e1349b..0e4bf8d 100644
--- a/tools/youtube_data.py
+++ b/tools/youtube_data.py
@@ -7,6 +7,8 @@
 
 ANDROID_H_MR2_API = '13'
 ANDROID_L_API = '21'
+ANDROID_M_API = '23'
+
 BASE = os.path.join(utils.THIRD_PARTY, 'youtube')
 
 V15_33_BASE = os.path.join(BASE, 'youtube.android_15.33')
@@ -15,7 +17,10 @@
 V16_20_BASE = os.path.join(BASE, 'youtube.android_16.20')
 V16_20_PREFIX = os.path.join(V16_20_BASE, 'YouTubeRelease')
 
-LATEST_VERSION = '16.20'
+V17_19_BASE = os.path.join(BASE, 'youtube.android_17.19')
+V17_19_PREFIX = os.path.join(V17_19_BASE, 'YouTubeRelease')
+
+LATEST_VERSION = '17.19'
 
 VERSIONS = {
   '15.33': {
@@ -80,6 +85,36 @@
       'min-api' : ANDROID_L_API,
     }
   },
+  '17.19': {
+    'deploy' : {
+      'sanitize_libraries': False,
+      'inputs': ['%s_deploy.jar' % V17_19_PREFIX],
+      'libraries' : [
+          os.path.join(
+              V17_19_BASE,
+              'legacy_YouTubeRelease_combined_library_jars_filtered.jar')],
+      'pgconf': [
+          '%s_proguard.config' % V17_19_PREFIX,
+          '%s_proguard_extra.config' % V17_19_PREFIX,
+          '%s/proguardsettings/YouTubeRelease_proguard.config' % utils.THIRD_PARTY,
+          utils.IGNORE_WARNINGS_RULES],
+      'min-api' : ANDROID_M_API,
+      'system-properties': [
+          '-Dcom.android.tools.r8.experimental.enablecheckenumunboxed=1',
+          '-Dcom.android.tools.r8.experimental.enableconvertchecknotnull=1'],
+      'android_java8_libs': {
+        'config': '%s/desugar_jdk_libs/full_desugar_jdk_libs.json' % V17_19_BASE,
+        # Intentionally not adding desugar_jdk_libs_configuration.jar since it
+        # is part of jdk_libs_to_desugar.jar in YouTube 17.19.
+        'program': ['%s/desugar_jdk_libs/jdk_libs_to_desugar.jar' % V17_19_BASE],
+        'library': '%s/android_jar/lib-v33/android.jar' % utils.THIRD_PARTY,
+        'pgconf': [
+          '%s/desugar_jdk_libs/base.pgcfg' % V17_19_BASE,
+          '%s/desugar_jdk_libs/minify_desugar_jdk_libs.pgcfg' % V17_19_BASE
+        ]
+      }
+    },
+  },
 }
 
 def GetLatestVersion():
