We have Tika detecting MPEG Transport Stream *.ts files as application/octet-stream
This is due to tika-mimetypes.xml not associating the video/m2pt to a *.ts file.
When I attempt to override this entry with a custom-mimetype.xml
<code><?xml version="1.0" encoding="UTF-8"?>
<properties>
<!-- https://github.com/apache/tika/blob/master/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml
Add file type to the defined mp2t mime.
Auto loaded since it is in org/apache/tika/mime directory.
-->
<mime-info>
<mime-type type="video/MP2T">
<_comment>MediaLive Transport Stream Segment</_comment>
<alias type="video/mp2t"/>
<glob pattern="*.ts"/>
<magic priority="1">
<match value="47" offset="0"/>
</magic>
</mime-type>
</mime-info>
</properties>
</code>
<code><?xml version="1.0" encoding="UTF-8"?>
<properties>
<!-- https://github.com/apache/tika/blob/master/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml
Add file type to the defined mp2t mime.
Auto loaded since it is in org/apache/tika/mime directory.
-->
<mime-info>
<mime-type type="video/MP2T">
<_comment>MediaLive Transport Stream Segment</_comment>
<alias type="video/mp2t"/>
<glob pattern="*.ts"/>
<magic priority="1">
<match value="47" offset="0"/>
</magic>
</mime-type>
</mime-info>
</properties>
</code>
<?xml version="1.0" encoding="UTF-8"?>
<properties>
<!-- https://github.com/apache/tika/blob/master/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml
Add file type to the defined mp2t mime.
Auto loaded since it is in org/apache/tika/mime directory.
-->
<mime-info>
<mime-type type="video/MP2T">
<_comment>MediaLive Transport Stream Segment</_comment>
<alias type="video/mp2t"/>
<glob pattern="*.ts"/>
<magic priority="1">
<match value="47" offset="0"/>
</magic>
</mime-type>
</mime-info>
</properties>
and load using a custom-tika-config.xml
<code><?xml version="1.0" encoding="UTF-8"?>
<properties>
<mimeTypeRepository>
<load path="config/custom-mimetypes.xml"/>
</mimeTypeRepository>
</properties>
</code>
<code><?xml version="1.0" encoding="UTF-8"?>
<properties>
<mimeTypeRepository>
<load path="config/custom-mimetypes.xml"/>
</mimeTypeRepository>
</properties>
</code>
<?xml version="1.0" encoding="UTF-8"?>
<properties>
<mimeTypeRepository>
<load path="config/custom-mimetypes.xml"/>
</mimeTypeRepository>
</properties>
Tika want to run all the external Parsers locally
<code>2024-06-03 16:08:27,541 DEBUG (main) [org.apache.tika.parser.external.ExternalParser.check()] exception trying to run ffmpeg: java.io.IOException: Cannot run program "ffmpeg": CreateProcess error=2, The system cannot find the file specified
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
at java.base/java.lang.Runtime.exec(Runtime.java:594)
at java.base/java.lang.Runtime.exec(Runtime.java:453)
at org.apache.tika.parser.external.ExternalParser.check(ExternalParser.java:161)
at org.apache.tika.parser.external.ExternalParsersConfigReader.readCheckTagAndCheck(ExternalParsersConfigReader.java:203)
at org.apache.tika.parser.external.ExternalParsersConfigReader.readParser(ExternalParsersConfigReader.java:110)
at org.apache.tika.parser.external.ExternalParsersConfigReader.read(ExternalParsersConfigReader.java:80)
at org.apache.tika.parser.external.ExternalParsersConfigReader.read(ExternalParsersConfigReader.java:67)
at org.apache.tika.parser.external.ExternalParsersConfigReader.read(ExternalParsersConfigReader.java:60)
at org.apache.tika.parser.external.ExternalParsersFactory.create(ExternalParsersFactory.java:67)
at org.apache.tika.parser.external.ExternalParsersFactory.create(ExternalParsersFactory.java:60)
at org.apache.tika.parser.external.ExternalParsersFactory.create(ExternalParsersFactory.java:49)
at org.apache.tika.parser.external.ExternalParsersFactory.create(ExternalParsersFactory.java:44)
at org.apache.tika.parser.external.CompositeExternalParser.<init>(CompositeExternalParser.java:42)
at org.apache.tika.parser.external.CompositeExternalParser.<init>(CompositeExternalParser.java:37)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347)
at java.base/java.lang.Class.newInstance(Class.java:645)
at org.apache.tika.utils.ServiceLoaderUtils.newInstance(ServiceLoaderUtils.java:80)
at org.apache.tika.config.ServiceLoader.loadStaticServiceProviders(ServiceLoader.java:358)
at org.apache.tika.parser.DefaultParser.getDefaultParsers(DefaultParser.java:105)
at org.apache.tika.parser.DefaultParser.<init>(DefaultParser.java:52)
at org.apache.tika.parser.DefaultParser.<init>(DefaultParser.java:66)
at org.apache.tika.config.TikaConfig.getDefaultParser(TikaConfig.java:301)
at org.apache.tika.config.TikaConfig.access$900(TikaConfig.java:88)
at org.apache.tika.config.TikaConfig$ParserXmlLoader.createDefault(TikaConfig.java:888)
at org.apache.tika.config.TikaConfig$ParserXmlLoader.createDefault(TikaConfig.java:834)
at org.apache.tika.config.TikaConfig$XmlLoader.loadOverall(TikaConfig.java:658)
at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:171)
at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:151)
at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:143)
at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:139)
at com.bar.scs.service.persistence.tika.VideoMp2tParseTest.whenTikaConfig_givenTikaConfig_thenParse(VideoMp2tParseTest.java:28)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
exception trying to run exiftool: java.io.IOException: Cannot run program "exiftool": CreateProcess error=2, The system cannot find the file specified
exception trying to run tesseract.exe: java.io.IOException: Cannot run program "tesseract.exe": CreateProcess error=2, The system cannot find the file specified
</code>
<code>2024-06-03 16:08:27,541 DEBUG (main) [org.apache.tika.parser.external.ExternalParser.check()] exception trying to run ffmpeg: java.io.IOException: Cannot run program "ffmpeg": CreateProcess error=2, The system cannot find the file specified
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
at java.base/java.lang.Runtime.exec(Runtime.java:594)
at java.base/java.lang.Runtime.exec(Runtime.java:453)
at org.apache.tika.parser.external.ExternalParser.check(ExternalParser.java:161)
at org.apache.tika.parser.external.ExternalParsersConfigReader.readCheckTagAndCheck(ExternalParsersConfigReader.java:203)
at org.apache.tika.parser.external.ExternalParsersConfigReader.readParser(ExternalParsersConfigReader.java:110)
at org.apache.tika.parser.external.ExternalParsersConfigReader.read(ExternalParsersConfigReader.java:80)
at org.apache.tika.parser.external.ExternalParsersConfigReader.read(ExternalParsersConfigReader.java:67)
at org.apache.tika.parser.external.ExternalParsersConfigReader.read(ExternalParsersConfigReader.java:60)
at org.apache.tika.parser.external.ExternalParsersFactory.create(ExternalParsersFactory.java:67)
at org.apache.tika.parser.external.ExternalParsersFactory.create(ExternalParsersFactory.java:60)
at org.apache.tika.parser.external.ExternalParsersFactory.create(ExternalParsersFactory.java:49)
at org.apache.tika.parser.external.ExternalParsersFactory.create(ExternalParsersFactory.java:44)
at org.apache.tika.parser.external.CompositeExternalParser.<init>(CompositeExternalParser.java:42)
at org.apache.tika.parser.external.CompositeExternalParser.<init>(CompositeExternalParser.java:37)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347)
at java.base/java.lang.Class.newInstance(Class.java:645)
at org.apache.tika.utils.ServiceLoaderUtils.newInstance(ServiceLoaderUtils.java:80)
at org.apache.tika.config.ServiceLoader.loadStaticServiceProviders(ServiceLoader.java:358)
at org.apache.tika.parser.DefaultParser.getDefaultParsers(DefaultParser.java:105)
at org.apache.tika.parser.DefaultParser.<init>(DefaultParser.java:52)
at org.apache.tika.parser.DefaultParser.<init>(DefaultParser.java:66)
at org.apache.tika.config.TikaConfig.getDefaultParser(TikaConfig.java:301)
at org.apache.tika.config.TikaConfig.access$900(TikaConfig.java:88)
at org.apache.tika.config.TikaConfig$ParserXmlLoader.createDefault(TikaConfig.java:888)
at org.apache.tika.config.TikaConfig$ParserXmlLoader.createDefault(TikaConfig.java:834)
at org.apache.tika.config.TikaConfig$XmlLoader.loadOverall(TikaConfig.java:658)
at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:171)
at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:151)
at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:143)
at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:139)
at com.bar.scs.service.persistence.tika.VideoMp2tParseTest.whenTikaConfig_givenTikaConfig_thenParse(VideoMp2tParseTest.java:28)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
exception trying to run exiftool: java.io.IOException: Cannot run program "exiftool": CreateProcess error=2, The system cannot find the file specified
exception trying to run tesseract.exe: java.io.IOException: Cannot run program "tesseract.exe": CreateProcess error=2, The system cannot find the file specified
</code>
2024-06-03 16:08:27,541 DEBUG (main) [org.apache.tika.parser.external.ExternalParser.check()] exception trying to run ffmpeg: java.io.IOException: Cannot run program "ffmpeg": CreateProcess error=2, The system cannot find the file specified
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
at java.base/java.lang.Runtime.exec(Runtime.java:594)
at java.base/java.lang.Runtime.exec(Runtime.java:453)
at org.apache.tika.parser.external.ExternalParser.check(ExternalParser.java:161)
at org.apache.tika.parser.external.ExternalParsersConfigReader.readCheckTagAndCheck(ExternalParsersConfigReader.java:203)
at org.apache.tika.parser.external.ExternalParsersConfigReader.readParser(ExternalParsersConfigReader.java:110)
at org.apache.tika.parser.external.ExternalParsersConfigReader.read(ExternalParsersConfigReader.java:80)
at org.apache.tika.parser.external.ExternalParsersConfigReader.read(ExternalParsersConfigReader.java:67)
at org.apache.tika.parser.external.ExternalParsersConfigReader.read(ExternalParsersConfigReader.java:60)
at org.apache.tika.parser.external.ExternalParsersFactory.create(ExternalParsersFactory.java:67)
at org.apache.tika.parser.external.ExternalParsersFactory.create(ExternalParsersFactory.java:60)
at org.apache.tika.parser.external.ExternalParsersFactory.create(ExternalParsersFactory.java:49)
at org.apache.tika.parser.external.ExternalParsersFactory.create(ExternalParsersFactory.java:44)
at org.apache.tika.parser.external.CompositeExternalParser.<init>(CompositeExternalParser.java:42)
at org.apache.tika.parser.external.CompositeExternalParser.<init>(CompositeExternalParser.java:37)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347)
at java.base/java.lang.Class.newInstance(Class.java:645)
at org.apache.tika.utils.ServiceLoaderUtils.newInstance(ServiceLoaderUtils.java:80)
at org.apache.tika.config.ServiceLoader.loadStaticServiceProviders(ServiceLoader.java:358)
at org.apache.tika.parser.DefaultParser.getDefaultParsers(DefaultParser.java:105)
at org.apache.tika.parser.DefaultParser.<init>(DefaultParser.java:52)
at org.apache.tika.parser.DefaultParser.<init>(DefaultParser.java:66)
at org.apache.tika.config.TikaConfig.getDefaultParser(TikaConfig.java:301)
at org.apache.tika.config.TikaConfig.access$900(TikaConfig.java:88)
at org.apache.tika.config.TikaConfig$ParserXmlLoader.createDefault(TikaConfig.java:888)
at org.apache.tika.config.TikaConfig$ParserXmlLoader.createDefault(TikaConfig.java:834)
at org.apache.tika.config.TikaConfig$XmlLoader.loadOverall(TikaConfig.java:658)
at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:171)
at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:151)
at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:143)
at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:139)
at com.bar.scs.service.persistence.tika.VideoMp2tParseTest.whenTikaConfig_givenTikaConfig_thenParse(VideoMp2tParseTest.java:28)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
exception trying to run exiftool: java.io.IOException: Cannot run program "exiftool": CreateProcess error=2, The system cannot find the file specified
exception trying to run tesseract.exe: java.io.IOException: Cannot run program "tesseract.exe": CreateProcess error=2, The system cannot find the file specified
Test:
<code> @Test
void whenTikaConfig_givenTikaConfig_thenParse() {
String filename = "src/test/resources/quarkusTest/crossDomain/transport-stream-test-001.ts";
TikaConfig tikaConfig = null;
try {
tikaConfig = new TikaConfig(new FileInputStream("src/test/resources/config/custom-tika-config.xml"));
tikaConfig.getMediaTypeRegistry().getTypes().forEach(mime -> log.debug(mime.getType()));
// Create Tika instance with custom config
Tika tika = new Tika(tikaConfig);
// Prepare metadata and handler
Metadata metadata = new Metadata();
try (InputStream stream = new BufferedInputStream(new FileInputStream(filename))) {
// Detect MIME type
String mimeType = tika.detect(stream, metadata);
log.info("Detected MIME type: {}", mimeType);
// Output metadata
for (String name : metadata.names()) {
log.info("{}: {}", name, metadata.get(name));
}
}
} catch (TikaException | IOException | SAXException e) {
log.error(e.getMessage(), e);
fail(e.getMessage());
}
}
</code>
<code> @Test
void whenTikaConfig_givenTikaConfig_thenParse() {
String filename = "src/test/resources/quarkusTest/crossDomain/transport-stream-test-001.ts";
TikaConfig tikaConfig = null;
try {
tikaConfig = new TikaConfig(new FileInputStream("src/test/resources/config/custom-tika-config.xml"));
tikaConfig.getMediaTypeRegistry().getTypes().forEach(mime -> log.debug(mime.getType()));
// Create Tika instance with custom config
Tika tika = new Tika(tikaConfig);
// Prepare metadata and handler
Metadata metadata = new Metadata();
try (InputStream stream = new BufferedInputStream(new FileInputStream(filename))) {
// Detect MIME type
String mimeType = tika.detect(stream, metadata);
log.info("Detected MIME type: {}", mimeType);
// Output metadata
for (String name : metadata.names()) {
log.info("{}: {}", name, metadata.get(name));
}
}
} catch (TikaException | IOException | SAXException e) {
log.error(e.getMessage(), e);
fail(e.getMessage());
}
}
</code>
@Test
void whenTikaConfig_givenTikaConfig_thenParse() {
String filename = "src/test/resources/quarkusTest/crossDomain/transport-stream-test-001.ts";
TikaConfig tikaConfig = null;
try {
tikaConfig = new TikaConfig(new FileInputStream("src/test/resources/config/custom-tika-config.xml"));
tikaConfig.getMediaTypeRegistry().getTypes().forEach(mime -> log.debug(mime.getType()));
// Create Tika instance with custom config
Tika tika = new Tika(tikaConfig);
// Prepare metadata and handler
Metadata metadata = new Metadata();
try (InputStream stream = new BufferedInputStream(new FileInputStream(filename))) {
// Detect MIME type
String mimeType = tika.detect(stream, metadata);
log.info("Detected MIME type: {}", mimeType);
// Output metadata
for (String name : metadata.names()) {
log.info("{}: {}", name, metadata.get(name));
}
}
} catch (TikaException | IOException | SAXException e) {
log.error(e.getMessage(), e);
fail(e.getMessage());
}
}
and still defaults to: Detected MIME type: application/octet-stream
The source file is from MediaLive HLS S3 ts file segment.