Video file uploaded to Moralis Storage not working

When creating NFT’s, I give users the option to either upload media to Moralis IPFS or ‘regular’ cloud storage. IPFS works fine, but the video uploaded to Moralis Cloud Storage does not work/render, although the size of the player is correct:

Same video but uploaded on IPFS:

An uploaded image works fine (ok not here in preview hehe, but it works):

const nftVideo = new Moralis.File(, item.animationFile)
if (IPFSUpload.value) {
  ///store video on IPFS
  nftVideo.saveIPFS().then(() => {
    item.animation_url = 'ipfs://'+nftVideo.hash()
    console.log('nftVideo uploaded', item.animation_url)
  }, (error) => {
    console.error('ERROR uploading video to Moralis IPFS')
} else {
  ///store animation on Moralis Storage => {
    console.log('nftVideo uploaded', response)
    item.animation_url = response._url
  }, (error) => {
    console.error('ERROR uploading video to Moralis storage')

console.log(‘nftVideo uploaded’, response):

No errors, all looks fine, just the video does not play from remote url.

It looks like that .mp4 url serves a 95 bytes png file instead of an mp4 file.
I don’t know why it happens.

thanks for checking @cryptokid

@Yomoo looks like a real bug to me, please check

Tried another one, same data, one using file.saveIPFS() and one using, where only IPFS works:


Hi @matiyin

Already checking

1 Like


We’ve tested on several browsers and on some of them video from Moralis storage works.
It’s not probably an issue, if you want to show video on your site you need to install extra player for supporting all browsers.

By the way, Moralis storage is not for storaging NFTs . For storaging metadata you need to use IPFS

Hope this will help you :man_mechanic:

1 Like

thanks for checking, I tried on different browsers Brave, Firefox, Chromium.

There’s ‘some’ issue with the file encoding using instead of file.saveIPFS()
The video uploads, but cannot play. I’ve tried a few different mp4’s, no difference.

I’ve set up a simplified version by pulling moralis-ipfs-upload from

One of my mp4 uploads works:
The other only sound:

When I change to ‘normal’ upload both files don’t play/stream:

  async function upload () {
    const fileInput = document.getElementById("file");
    const data = fileInput.files[0];
    const file = new Moralis.File("moralis.mp4", data);
    // const file = new Moralis.File("moralis.png", data);
    // await file.saveIPFS();
    // console.log(file.hash());

@Yomoo I will try to DM you to send yo the 2 sample files I’m using, so you can try on your side.

Regarding saving the IPFS, yes I use that for NTF’s, but this is for a different feature, where I need more centralized control over my storage.