Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

video item not producing a valid manifest #82

Closed
saracarl opened this issue Sep 30, 2024 · 11 comments · Fixed by #96
Closed

video item not producing a valid manifest #82

saracarl opened this issue Sep 30, 2024 · 11 comments · Fixed by #96
Assignees
Labels
bug Something isn't working
Milestone

Comments

@saracarl
Copy link
Collaborator

This items seems like it should be playable --there are derivatives in the right format for IIIF -- but our manifest doesn't seem to have any of them.

Item
downloadable derivatives
Item Manifest

It does have a bunch of Youtube attributes:
image

which we do surface in the manifest (and probably shouldn't??)

@saracarl
Copy link
Collaborator Author

Pretty sure this used to work, because I pulled it from another issue.

@saracarl
Copy link
Collaborator Author

saracarl commented Oct 4, 2024

We think this is because the original is this:

{
"name": "Polar_Plunge_Promo_-_2018.HD.mov",
"source": "original",
"mtime": "1520151264",
"size": "23070994",
"md5": "070f788d001ac4e469f0e4a2720df98f",
"crc32": "84c9b43f",
"sha1": "927670eded4d0fa096e119fecf6a9180b89b3f6d",
"format": "h.264 HD",
"length": "91.39",
"height": "720",
"width": "1280"
},

and we don't recognize/support "format": "h.264 HD",

glenrobson added a commit that referenced this issue Oct 4, 2024
mekarpeles added a commit that referenced this issue Oct 8, 2024
* Encoding thumbnail urls
* Fixing missing video in #82

---------

Co-authored-by: Mek <[email protected]>
@glenrobson
Copy link
Collaborator

The Video now appears but the mimetype is: "application/octet-stream" which means none of the viewers can play it.

@glenrobson glenrobson added this to the Spring 2025 milestone Jan 9, 2025
@glenrobson glenrobson added the bug Something isn't working label Jan 9, 2025
@glenrobson
Copy link
Collaborator

@glenrobson
Copy link
Collaborator

Related recipe on audio choice: https://iiif.io/api/cookbook/recipe/0434-choice-av/

@markpbaggett markpbaggett self-assigned this Jan 13, 2025
@markpbaggett
Copy link
Collaborator

Adding a few initial notes:

CORS Problems

There is a CORS problem with both the h.264 and h.264 HD files. If I run a viewer on localhost, I can see:

Access to video at 'https://archive.org/download/cc4ia-Polar_Plunge_Promo_-_2018/Polar_Plunge_Promo_-_2018.HD.mov' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

https://archive.org/download/cc4ia-Polar_Plunge_Promo_-_2018/Polar_Plunge_Promo_-_2018.HD.mov

and

Access to video at 'https://ia803106.us.archive.org/33/items/cc4ia-Polar_Plunge_Promo_-_2018/Polar_Plunge_Promo_-_2018.mp4' (redirected from 'https://archive.org/download/cc4ia-Polar_Plunge_Promo_-_2018/Polar_Plunge_Promo_-_2018.mp4') from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

GET https://ia803106.us.archive.org/33/items/cc4ia-Polar_Plunge_Promo_-_2018/Polar_Plunge_Promo_-_2018.mp4 net::ERR_FAILED 206 (Partial Content)

Ogg Video is Ogg Audio:

The Ogg Video plays locally. It will also load if you remove the CORS problems above (at least in Clover):

Screenshot 2025-01-13 at 4 20 12 PM

An issue thought is that the mime type says video/ogg but it's pretty clear that this should be audio/ogg:

Screenshot 2025-01-13 at 4 21 48 PM

Todo:

  1. Make sure ogg file plays fine in all viewers.
  2. Investigate why things are coming back as video/ogg.

@markpbaggett
Copy link
Collaborator

Just the OGG plays fine in:

@markpbaggett
Copy link
Collaborator

Even though the OGG appears like it should be audio/ogg, it's a video/ogg. The resolver.py sees it this way:

{'Polar_Plunge_Promo_-_2018.HD.mov': {
    'MP3': {'name': 'Polar_Plunge_Promo_-_2018.mp3', 'source': 'derivative', 'bitrate': '96', 'length': '01:31',
            'format': 'MP3', 'original': 'Polar_Plunge_Promo_-_2018.HD.mov', 'mtime': '1520156195', 'size': '1099679',
            'md5': '1cde115ace91a3bbf40f29177eefa8cd', 'crc32': 'ae32caf0',
            'sha1': 'c9b70f7088304dbbebe4c3766a4b9ca1396da9d2', 'height': '0', 'width': '0'},
    'h.264': {'name': 'Polar_Plunge_Promo_-_2018.mp4', 'source': 'derivative', 'format': 'h.264',
              'original': 'Polar_Plunge_Promo_-_2018.HD.mov', 'mtime': '1520156629', 'size': '9512945',
              'md5': 'a406f6bdaeb7c414ef8d9c6b1c06dcc9', 'crc32': '71468fc7',
              'sha1': '6a2b25dbe398cec9e26ca698e63502c9a4b64577', 'length': '91.42', 'height': '360', 'width': '640'},
    'Ogg Video': {'name': 'Polar_Plunge_Promo_-_2018.ogv', 'source': 'derivative', 'format': 'Ogg Video',
                  'original': 'Polar_Plunge_Promo_-_2018.HD.mov', 'mtime': '1520156904', 'size': '6975402',
                  'md5': '4613a0e6805562d8eabdb2772b195050', 'crc32': 'a982efc7',
                  'sha1': '1ea83c9dc0b46e25394dd92860825a24ebbab9cd', 'length': '91.39', 'height': '300',
                  'width': '533'},
    'Thumbnail': {'name': 'cc4ia-Polar_Plunge_Promo_-_2018.thumbs/Polar_Plunge_Promo_-_2018_000089.jpg',
                  'source': 'derivative', 'format': 'Thumbnail', 'original': 'Polar_Plunge_Promo_-_2018.HD.mov',
                  'mtime': '1520156280', 'size': '1962', 'md5': '5d3c3d9cf78b20ceb99efd8123f12b8c', 'crc32': 'c4a2e5bb',
                  'sha1': '9b36bb7ee1ca1c2a3dee65c1250d6f0c6e0cb9d5'}}, 'Polar_Plunge_Promo_-_2018.mp3': {
    'PNG': {'name': 'Polar_Plunge_Promo_-_2018.png', 'source': 'derivative', 'format': 'PNG',
            'original': 'Polar_Plunge_Promo_-_2018.mp3', 'mtime': '1520156913', 'size': '11013',
            'md5': 'e7d9ccb56fc13e54622abba95e42ad59', 'crc32': '9010bb54',
            'sha1': '98630aedb8f945f8cbfa7864896a0eb509d8ec04'}}}

If you download the ogg and run file --mime-type ~/Downloads/Polar_Plunge_Promo_-_2018.ogv, you get:

/Users/mark.baggett/Downloads/Polar_Plunge_Promo_-_2018.ogv: video/ogg

So, I think everything here is working as it should. The problem with this is manifest appears to be limited to the CORS issues on the h.264 and h.264 HD choices.

@glenrobson
Copy link
Collaborator

I found this old issue on CORS and video:

ArchiveLabs/iiif.archivelab.org#108

It looks like at the time it worked on all of the viewers but clover. Testing now it seems to work on most of them but I noitce an issue with Mirador now aswell.

@glenrobson
Copy link
Collaborator

Things to test:

  • Try a single video (eliminate choice issue) potentially the OGG just to see to see what supports it with multiple viewers
  • Try with a single video with octet stream with viewers
  • Try a single video .mov with the correct mimetype
  • Try with 1 working video and one broken to see which viewers support choice

@markpbaggett
Copy link
Collaborator

markpbaggett commented Jan 24, 2025

@glenrobson, here are my findings from last night:

  • If I simply switch the mime/type of the HD in the original and keep the choice, everything works:

Mirador chooses the ogg and the first three play the HD. Clover can play the ogg but not the others. I'm going to open an Issue with Clover. I'm also going to look at why our code is assigning this mime/type and see if I can do something about that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants