diff --git a/api/stats/rtcstats_objects.h b/api/stats/rtcstats_objects.h
index 484d2d0..e5de210 100644
--- a/api/stats/rtcstats_objects.h
+++ b/api/stats/rtcstats_objects.h
@@ -709,6 +709,7 @@
   RTCAudioPlayoutStats(const RTCAudioPlayoutStats& other);
   ~RTCAudioPlayoutStats() override;
 
+  RTCStatsMember<std::string> kind;
   RTCStatsMember<double> synthesized_samples_duration;
   RTCStatsMember<uint64_t> synthesized_samples_events;
   RTCStatsMember<double> total_samples_duration;
diff --git a/pc/rtc_stats_collector_unittest.cc b/pc/rtc_stats_collector_unittest.cc
index 70eabfc..2a03c3b 100644
--- a/pc/rtc_stats_collector_unittest.cc
+++ b/pc/rtc_stats_collector_unittest.cc
@@ -2765,6 +2765,7 @@
   ASSERT_EQ(1U, stats_of_track_type.size());
 
   RTCAudioPlayoutStats expected_stats("AP", report->timestamp());
+  expected_stats.kind = "audio";
   expected_stats.synthesized_samples_duration = 1;
   expected_stats.synthesized_samples_events = 2;
   expected_stats.total_samples_count = 3;
diff --git a/pc/rtc_stats_integrationtest.cc b/pc/rtc_stats_integrationtest.cc
index 2a65726..b1d6b545 100644
--- a/pc/rtc_stats_integrationtest.cc
+++ b/pc/rtc_stats_integrationtest.cc
@@ -418,7 +418,7 @@
             VerifyRTCTransportStats(stats.cast_to<RTCTransportStats>());
       } else if (stats.type() == RTCAudioPlayoutStats::kType) {
         verify_successful &=
-            VerifyRTCAudioPlayoutSTats(stats.cast_to<RTCAudioPlayoutStats>());
+            VerifyRTCAudioPlayoutStats(stats.cast_to<RTCAudioPlayoutStats>());
       } else {
         EXPECT_TRUE(false) << "Unrecognized stats type: " << stats.type();
         verify_successful = false;
@@ -1128,8 +1128,12 @@
     return verifier.ExpectAllMembersSuccessfullyTested();
   }
 
-  bool VerifyRTCAudioPlayoutSTats(const RTCAudioPlayoutStats& audio_playout) {
+  bool VerifyRTCAudioPlayoutStats(const RTCAudioPlayoutStats& audio_playout) {
     RTCStatsVerifier verifier(report_.get(), &audio_playout);
+    verifier.TestMemberIsDefined(audio_playout.kind);
+    if (audio_playout.kind.is_defined()) {
+      EXPECT_EQ(*audio_playout.kind, "audio");
+    }
     verifier.TestMemberIsNonNegative<uint64_t>(
         audio_playout.synthesized_samples_events);
     verifier.TestMemberIsNonNegative<double>(
diff --git a/stats/rtcstats_objects.cc b/stats/rtcstats_objects.cc
index f392a08..b25e2dd 100644
--- a/stats/rtcstats_objects.cc
+++ b/stats/rtcstats_objects.cc
@@ -900,6 +900,7 @@
 RTCAudioPlayoutStats::RTCAudioPlayoutStats(const std::string& id,
                                            Timestamp timestamp)
     : RTCStats(std::move(id), timestamp),
+      kind("kind", "audio"),
       synthesized_samples_duration("synthesizedSamplesDuration"),
       synthesized_samples_events("synthesizedSamplesEvents"),
       total_samples_duration("totalSamplesDuration"),
@@ -912,7 +913,8 @@
 RTCAudioPlayoutStats::~RTCAudioPlayoutStats() {}
 
 // clang-format off
-WEBRTC_RTCSTATS_IMPL(RTCAudioPlayoutStats, RTCStats, "audio-playout",
+WEBRTC_RTCSTATS_IMPL(RTCAudioPlayoutStats, RTCStats, "media-playout",
+    &kind,
     &synthesized_samples_duration,
     &synthesized_samples_events,
     &total_samples_duration,
