diff --git a/ts_auto_deps/platform/file.go b/ts_auto_deps/platform/file.go
index 493b35e..7df93d0 100644
--- a/ts_auto_deps/platform/file.go
+++ b/ts_auto_deps/platform/file.go
@@ -19,6 +19,19 @@
 	return ioutil.ReadFile(name)
 }
 
+// ReadBytesFromFile reads bytes into the buffer provided, stopping when the
+// buffer is full.
+func ReadBytesFromFile(ctx context.Context, name string, buffer []byte) (int, error) {
+	f, err := os.Open(name)
+	if err != nil {
+		return 0, err
+	}
+	defer f.Close()
+
+	n, err := f.Read(buffer)
+	return n, err
+}
+
 // WriteFile writes data to filename.
 func WriteFile(ctx context.Context, filename string, data []byte) error {
 	return ioutil.WriteFile(filename, data, filePerms)
diff --git a/ts_auto_deps/updater/updater.go b/ts_auto_deps/updater/updater.go
index c559236..cb80b50 100644
--- a/ts_auto_deps/updater/updater.go
+++ b/ts_auto_deps/updater/updater.go
@@ -7,6 +7,7 @@
 	"bytes"
 	"context"
 	"fmt"
+	"io"
 	"os"
 	"path/filepath"
 	"regexp"
@@ -249,6 +250,13 @@
 		if err != nil {
 			return nil, fmt.Errorf("cannot stat platform.Glob result %q: %v", p, err)
 		}
+		isMpeg, err := isMpegTS(ctx, p)
+		if err != nil {
+			return nil, err
+		}
+		if isMpeg {
+			continue
+		}
 		p, err := filepath.Rel(path, p)
 		if err != nil {
 			return nil, fmt.Errorf("filepath.Rel(%s, %s): %v", path, p, err)
@@ -258,6 +266,20 @@
 	return srcs, nil
 }
 
+// isMpegTS checks if a ".ts" file is an MPEG transport stream.  Taze shouldn't
+// treat them as TypeScript files.
+func isMpegTS(ctx context.Context, path string) (bool, error) {
+	var content [200]byte
+	n, err := platform.ReadBytesFromFile(ctx, path, content[:])
+	if err != nil && err != io.EOF {
+		return false, err
+	}
+
+	// MPEG TS' frame format starts with 0x47 every 189 bytes - detect that and return.
+	isMpeg := n > 188 && content[0] == 0x47 && content[188] == 0x47
+	return isMpeg, nil
+}
+
 func isTempFile(fileName string) bool {
 	return strings.HasPrefix(fileName, ".") || strings.HasSuffix(fileName, ".swp") ||
 		strings.HasSuffix(fileName, "~")
