Metadata-Extractor — Missing List of Tags?












0















I'm using metadata-extractor to retrieve metadata from video files. I have it successfully retrieving the directories. Now I need to query the directories for specific info -- duration, height, etc.



The metadata-extractor docs give this example of how to query for a specific tag value:



// obtain the Exif directory
ExifSubIFDDirectory directory
= metadata.getFirstDirectoryOfType(ExifSubIFDDirectory.class);

// query the tag's value
Date date
= directory.getDate(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);


So it appears I need to get a list of the relevant tags, such as TAG_DATETIME_ORIGINAL, for duration, height, etc.



This page in the metadata-extractor docs contains a link titled "the various tag values", but the page it goes to lists tags for still images only, not for video files.



Googling for Metadata-Extractor -- Complete List of All Tags does not seem to bring up a list of all tags.



Are the metadata-extractor docs really missing a list of tags, or am I approaching this the wrong way somehow?










share|improve this question



























    0















    I'm using metadata-extractor to retrieve metadata from video files. I have it successfully retrieving the directories. Now I need to query the directories for specific info -- duration, height, etc.



    The metadata-extractor docs give this example of how to query for a specific tag value:



    // obtain the Exif directory
    ExifSubIFDDirectory directory
    = metadata.getFirstDirectoryOfType(ExifSubIFDDirectory.class);

    // query the tag's value
    Date date
    = directory.getDate(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);


    So it appears I need to get a list of the relevant tags, such as TAG_DATETIME_ORIGINAL, for duration, height, etc.



    This page in the metadata-extractor docs contains a link titled "the various tag values", but the page it goes to lists tags for still images only, not for video files.



    Googling for Metadata-Extractor -- Complete List of All Tags does not seem to bring up a list of all tags.



    Are the metadata-extractor docs really missing a list of tags, or am I approaching this the wrong way somehow?










    share|improve this question

























      0












      0








      0








      I'm using metadata-extractor to retrieve metadata from video files. I have it successfully retrieving the directories. Now I need to query the directories for specific info -- duration, height, etc.



      The metadata-extractor docs give this example of how to query for a specific tag value:



      // obtain the Exif directory
      ExifSubIFDDirectory directory
      = metadata.getFirstDirectoryOfType(ExifSubIFDDirectory.class);

      // query the tag's value
      Date date
      = directory.getDate(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);


      So it appears I need to get a list of the relevant tags, such as TAG_DATETIME_ORIGINAL, for duration, height, etc.



      This page in the metadata-extractor docs contains a link titled "the various tag values", but the page it goes to lists tags for still images only, not for video files.



      Googling for Metadata-Extractor -- Complete List of All Tags does not seem to bring up a list of all tags.



      Are the metadata-extractor docs really missing a list of tags, or am I approaching this the wrong way somehow?










      share|improve this question














      I'm using metadata-extractor to retrieve metadata from video files. I have it successfully retrieving the directories. Now I need to query the directories for specific info -- duration, height, etc.



      The metadata-extractor docs give this example of how to query for a specific tag value:



      // obtain the Exif directory
      ExifSubIFDDirectory directory
      = metadata.getFirstDirectoryOfType(ExifSubIFDDirectory.class);

      // query the tag's value
      Date date
      = directory.getDate(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);


      So it appears I need to get a list of the relevant tags, such as TAG_DATETIME_ORIGINAL, for duration, height, etc.



      This page in the metadata-extractor docs contains a link titled "the various tag values", but the page it goes to lists tags for still images only, not for video files.



      Googling for Metadata-Extractor -- Complete List of All Tags does not seem to bring up a list of all tags.



      Are the metadata-extractor docs really missing a list of tags, or am I approaching this the wrong way somehow?







      metadata metadata-extractor






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 22 '18 at 0:19









      VikRVikR

      1,1961233




      1,1961233
























          1 Answer
          1






          active

          oldest

          votes


















          0














          I found a list of tags at:



          https://developer.tizen.org/dev-guide/2.3.1/org.tizen.guides/html/native/multimedia/metadata_extractor_n.htm



          However, those constants don't seem to be what's needed in actual code. Here's Java code that works:



          import com.drew.imaging.ImageMetadataReader;
          import com.drew.metadata.Directory;
          import com.drew.metadata.Metadata;
          import com.drew.metadata.Tag;
          import com.drew.metadata.file.FileTypeDirectory;
          import com.drew.metadata.mp4.Mp4Directory;
          import com.drew.metadata.mp4.media.Mp4SoundDirectory;
          import com.drew.metadata.mp4.media.Mp4VideoDirectory;

          [.....]

          Metadata theMetadata = null;
          try {
          InputStream stream = new URL(theVideoInfo.getLinkToVideo()).openStream();
          theMetadata = ImageMetadataReader.readMetadata(stream);
          }

          } catch (java.lang.Exception exception) {
          exception.printStackTrace();
          }

          Mp4SoundDirectory soundDirectory
          = theMetadata.getFirstDirectoryOfType(Mp4SoundDirectory.class);
          Mp4VideoDirectory videoDirectory
          = theMetadata.getFirstDirectoryOfType(Mp4VideoDirectory.class);
          Mp4Directory mp4Directory
          = theMetadata.getFirstDirectoryOfType(Mp4Directory.class);
          FileTypeDirectory fileTypeDirectory
          = theMetadata.getFirstDirectoryOfType(FileTypeDirectory.class);

          String numberOfAudioChannels
          = soundDirectory.getString(Mp4SoundDirectory.TAG_NUMBER_OF_CHANNELS);
          String duration = mp4Directory.getString(Mp4Directory.TAG_DURATION);
          String frameRate = videoDirectory.getString(Mp4VideoDirectory.TAG_FRAME_RATE);
          String height = videoDirectory.getString(Mp4VideoDirectory.TAG_HEIGHT);
          String width = videoDirectory.getString(Mp4VideoDirectory.TAG_WIDTH);
          String type = fileTypeDirectory.getString(FileTypeDirectory.TAG_DETECTED_FILE_MIME_TYPE);


          I found the constants (TAG_HEIGHT, TAG_WIDTH, etc.) by directly examining the metadata-extractor objects in the debugger. For example, I'd type:



           Mp4VideoDirectory.WIDTH


          ...and the debugger (IntelliJ) would auto-complete the available constants that had the text "WIDTH" in them.






          share|improve this answer
























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53422238%2fmetadata-extractor-missing-list-of-tags%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            I found a list of tags at:



            https://developer.tizen.org/dev-guide/2.3.1/org.tizen.guides/html/native/multimedia/metadata_extractor_n.htm



            However, those constants don't seem to be what's needed in actual code. Here's Java code that works:



            import com.drew.imaging.ImageMetadataReader;
            import com.drew.metadata.Directory;
            import com.drew.metadata.Metadata;
            import com.drew.metadata.Tag;
            import com.drew.metadata.file.FileTypeDirectory;
            import com.drew.metadata.mp4.Mp4Directory;
            import com.drew.metadata.mp4.media.Mp4SoundDirectory;
            import com.drew.metadata.mp4.media.Mp4VideoDirectory;

            [.....]

            Metadata theMetadata = null;
            try {
            InputStream stream = new URL(theVideoInfo.getLinkToVideo()).openStream();
            theMetadata = ImageMetadataReader.readMetadata(stream);
            }

            } catch (java.lang.Exception exception) {
            exception.printStackTrace();
            }

            Mp4SoundDirectory soundDirectory
            = theMetadata.getFirstDirectoryOfType(Mp4SoundDirectory.class);
            Mp4VideoDirectory videoDirectory
            = theMetadata.getFirstDirectoryOfType(Mp4VideoDirectory.class);
            Mp4Directory mp4Directory
            = theMetadata.getFirstDirectoryOfType(Mp4Directory.class);
            FileTypeDirectory fileTypeDirectory
            = theMetadata.getFirstDirectoryOfType(FileTypeDirectory.class);

            String numberOfAudioChannels
            = soundDirectory.getString(Mp4SoundDirectory.TAG_NUMBER_OF_CHANNELS);
            String duration = mp4Directory.getString(Mp4Directory.TAG_DURATION);
            String frameRate = videoDirectory.getString(Mp4VideoDirectory.TAG_FRAME_RATE);
            String height = videoDirectory.getString(Mp4VideoDirectory.TAG_HEIGHT);
            String width = videoDirectory.getString(Mp4VideoDirectory.TAG_WIDTH);
            String type = fileTypeDirectory.getString(FileTypeDirectory.TAG_DETECTED_FILE_MIME_TYPE);


            I found the constants (TAG_HEIGHT, TAG_WIDTH, etc.) by directly examining the metadata-extractor objects in the debugger. For example, I'd type:



             Mp4VideoDirectory.WIDTH


            ...and the debugger (IntelliJ) would auto-complete the available constants that had the text "WIDTH" in them.






            share|improve this answer




























              0














              I found a list of tags at:



              https://developer.tizen.org/dev-guide/2.3.1/org.tizen.guides/html/native/multimedia/metadata_extractor_n.htm



              However, those constants don't seem to be what's needed in actual code. Here's Java code that works:



              import com.drew.imaging.ImageMetadataReader;
              import com.drew.metadata.Directory;
              import com.drew.metadata.Metadata;
              import com.drew.metadata.Tag;
              import com.drew.metadata.file.FileTypeDirectory;
              import com.drew.metadata.mp4.Mp4Directory;
              import com.drew.metadata.mp4.media.Mp4SoundDirectory;
              import com.drew.metadata.mp4.media.Mp4VideoDirectory;

              [.....]

              Metadata theMetadata = null;
              try {
              InputStream stream = new URL(theVideoInfo.getLinkToVideo()).openStream();
              theMetadata = ImageMetadataReader.readMetadata(stream);
              }

              } catch (java.lang.Exception exception) {
              exception.printStackTrace();
              }

              Mp4SoundDirectory soundDirectory
              = theMetadata.getFirstDirectoryOfType(Mp4SoundDirectory.class);
              Mp4VideoDirectory videoDirectory
              = theMetadata.getFirstDirectoryOfType(Mp4VideoDirectory.class);
              Mp4Directory mp4Directory
              = theMetadata.getFirstDirectoryOfType(Mp4Directory.class);
              FileTypeDirectory fileTypeDirectory
              = theMetadata.getFirstDirectoryOfType(FileTypeDirectory.class);

              String numberOfAudioChannels
              = soundDirectory.getString(Mp4SoundDirectory.TAG_NUMBER_OF_CHANNELS);
              String duration = mp4Directory.getString(Mp4Directory.TAG_DURATION);
              String frameRate = videoDirectory.getString(Mp4VideoDirectory.TAG_FRAME_RATE);
              String height = videoDirectory.getString(Mp4VideoDirectory.TAG_HEIGHT);
              String width = videoDirectory.getString(Mp4VideoDirectory.TAG_WIDTH);
              String type = fileTypeDirectory.getString(FileTypeDirectory.TAG_DETECTED_FILE_MIME_TYPE);


              I found the constants (TAG_HEIGHT, TAG_WIDTH, etc.) by directly examining the metadata-extractor objects in the debugger. For example, I'd type:



               Mp4VideoDirectory.WIDTH


              ...and the debugger (IntelliJ) would auto-complete the available constants that had the text "WIDTH" in them.






              share|improve this answer


























                0












                0








                0







                I found a list of tags at:



                https://developer.tizen.org/dev-guide/2.3.1/org.tizen.guides/html/native/multimedia/metadata_extractor_n.htm



                However, those constants don't seem to be what's needed in actual code. Here's Java code that works:



                import com.drew.imaging.ImageMetadataReader;
                import com.drew.metadata.Directory;
                import com.drew.metadata.Metadata;
                import com.drew.metadata.Tag;
                import com.drew.metadata.file.FileTypeDirectory;
                import com.drew.metadata.mp4.Mp4Directory;
                import com.drew.metadata.mp4.media.Mp4SoundDirectory;
                import com.drew.metadata.mp4.media.Mp4VideoDirectory;

                [.....]

                Metadata theMetadata = null;
                try {
                InputStream stream = new URL(theVideoInfo.getLinkToVideo()).openStream();
                theMetadata = ImageMetadataReader.readMetadata(stream);
                }

                } catch (java.lang.Exception exception) {
                exception.printStackTrace();
                }

                Mp4SoundDirectory soundDirectory
                = theMetadata.getFirstDirectoryOfType(Mp4SoundDirectory.class);
                Mp4VideoDirectory videoDirectory
                = theMetadata.getFirstDirectoryOfType(Mp4VideoDirectory.class);
                Mp4Directory mp4Directory
                = theMetadata.getFirstDirectoryOfType(Mp4Directory.class);
                FileTypeDirectory fileTypeDirectory
                = theMetadata.getFirstDirectoryOfType(FileTypeDirectory.class);

                String numberOfAudioChannels
                = soundDirectory.getString(Mp4SoundDirectory.TAG_NUMBER_OF_CHANNELS);
                String duration = mp4Directory.getString(Mp4Directory.TAG_DURATION);
                String frameRate = videoDirectory.getString(Mp4VideoDirectory.TAG_FRAME_RATE);
                String height = videoDirectory.getString(Mp4VideoDirectory.TAG_HEIGHT);
                String width = videoDirectory.getString(Mp4VideoDirectory.TAG_WIDTH);
                String type = fileTypeDirectory.getString(FileTypeDirectory.TAG_DETECTED_FILE_MIME_TYPE);


                I found the constants (TAG_HEIGHT, TAG_WIDTH, etc.) by directly examining the metadata-extractor objects in the debugger. For example, I'd type:



                 Mp4VideoDirectory.WIDTH


                ...and the debugger (IntelliJ) would auto-complete the available constants that had the text "WIDTH" in them.






                share|improve this answer













                I found a list of tags at:



                https://developer.tizen.org/dev-guide/2.3.1/org.tizen.guides/html/native/multimedia/metadata_extractor_n.htm



                However, those constants don't seem to be what's needed in actual code. Here's Java code that works:



                import com.drew.imaging.ImageMetadataReader;
                import com.drew.metadata.Directory;
                import com.drew.metadata.Metadata;
                import com.drew.metadata.Tag;
                import com.drew.metadata.file.FileTypeDirectory;
                import com.drew.metadata.mp4.Mp4Directory;
                import com.drew.metadata.mp4.media.Mp4SoundDirectory;
                import com.drew.metadata.mp4.media.Mp4VideoDirectory;

                [.....]

                Metadata theMetadata = null;
                try {
                InputStream stream = new URL(theVideoInfo.getLinkToVideo()).openStream();
                theMetadata = ImageMetadataReader.readMetadata(stream);
                }

                } catch (java.lang.Exception exception) {
                exception.printStackTrace();
                }

                Mp4SoundDirectory soundDirectory
                = theMetadata.getFirstDirectoryOfType(Mp4SoundDirectory.class);
                Mp4VideoDirectory videoDirectory
                = theMetadata.getFirstDirectoryOfType(Mp4VideoDirectory.class);
                Mp4Directory mp4Directory
                = theMetadata.getFirstDirectoryOfType(Mp4Directory.class);
                FileTypeDirectory fileTypeDirectory
                = theMetadata.getFirstDirectoryOfType(FileTypeDirectory.class);

                String numberOfAudioChannels
                = soundDirectory.getString(Mp4SoundDirectory.TAG_NUMBER_OF_CHANNELS);
                String duration = mp4Directory.getString(Mp4Directory.TAG_DURATION);
                String frameRate = videoDirectory.getString(Mp4VideoDirectory.TAG_FRAME_RATE);
                String height = videoDirectory.getString(Mp4VideoDirectory.TAG_HEIGHT);
                String width = videoDirectory.getString(Mp4VideoDirectory.TAG_WIDTH);
                String type = fileTypeDirectory.getString(FileTypeDirectory.TAG_DETECTED_FILE_MIME_TYPE);


                I found the constants (TAG_HEIGHT, TAG_WIDTH, etc.) by directly examining the metadata-extractor objects in the debugger. For example, I'd type:



                 Mp4VideoDirectory.WIDTH


                ...and the debugger (IntelliJ) would auto-complete the available constants that had the text "WIDTH" in them.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Dec 4 '18 at 2:52









                VikRVikR

                1,1961233




                1,1961233
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53422238%2fmetadata-extractor-missing-list-of-tags%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Biblatex bibliography style without URLs when DOI exists (in Overleaf with Zotero bibliography)

                    ComboBox Display Member on multiple fields

                    Is it possible to collect Nectar points via Trainline?