I noticed the examples you use on the Twitter Cards documentation do not match your defined requirements. https://dev.twitter.com/docs/cards
Photo cards are supposedly required to have a description; the Instagram example does not. You might blank out the title and put the current title as a description instead.
Player cards are supposedly required to have a description; the YouTube example does not.
I think player:stream may be require a HTTPS URL to avoid mixed content in <video> but I don’t see it explicitly specified.