-3

I need to create a video player like pot player or vlc , that can play my personal codec ( like mp4 , mkv , ... ) for security reason a player has a login page and the user has to sign in to play video in it with out sign in the player doesn't work at all for example I have video name.mp4 and I want this video convert to something like this : name.xyz this format (xyz) should only play in my player and only play in a person's computer who buy these videos

I need some info on how to create this player and this player Should not crack. which language is perfect for this purpose? I want a cross-platform app. ( support in Linux, Mac, Windows )

Please help me. I need this app very bad

just Need a small clue

bummi
  • 27,123
  • 14
  • 62
  • 101
Alex
  • 1
  • 3
  • You are asking about rights and license management, things that are already available in codecs and HTML5 video. You can't just create a login page. This isn't something that can be described in a single SO answer. – Panagiotis Kanavos Oct 04 '18 at 12:23

2 Answers2

1

It seems your goal is to achieve a situation where playback can only happen in players that you produce and trust. That way you can enforce only users who have paid will be able to access the video.

For that, you do not need custom codecs (also note that .mp4 or .mkv is not a codec, but is a container). What you need is DRM. What DRM does is encrypt the video, so that it can't be played without having the decryption keys. The player you then need would have to have some way to get those keys, and keep them secret on the device.

There are several commercial systems out there, that can be implemented at relatively low cost. For instance, Microsoft Azure has a solution for this: https://azure.microsoft.com/en-us/services/media-services/content-protection/ If you need offline playback though, things are a bit more complex. Another option could be https://castlabs.com/drmtoday/

If you want to support all the listed platforms, you will likely need to interact with 3 different major DRM systems. Microsoft PlayReady, Google Widevine and Apple FairPlay. Azure and DRMToday packages all those together, but you can also choose to implement them all yourself.

You most likely do not want to build your own DRM system. Not only, is it far to easy to make mistakes that render it unsecure in some manner, it's also a lot of engineering effort, and way more costly to do than just using the existing systems.

colde
  • 3,192
  • 1
  • 15
  • 26
  • That's exactly what I want. Do you know what language is the best language to write this app? Can we do this with Python? Is it safe? I know someone that write this app with go lang – Alex Oct 05 '18 at 13:22
  • @Mehrad So, for the actual client apps, i would go with whatever language is native to the platform. I.e. Swift for iOS and Java for Android. For desktops you would normally build it as a web-app. If you want to create an actual app, you can use something like https://github.com/castlabs/downstream_electron/ (which would be mainly Javascript). The serverside purchasing piece you can write in whatever you prefer (I've certainly written code like that in Python) – colde Oct 05 '18 at 20:18
  • do you know how can I write my personal DRM. because of my country, I can't use this site that you introduce to me. if you know how can we write personal DRM . no matter how hard it is. please tell me. I need to do this. – Alex Oct 12 '18 at 10:44
  • @Mehrad You can do that. You might even be able to go with https://en.wikipedia.org/wiki/OMA_DRM which allows you to make your own implementation of it, but has a lot of things already figured out. Essentially all DRM systems work by having you encrypt the video with AES in either CBC or CTR mode. They then exchange keys with a server on playback. The tricky part of making it secure, is making sure the user can't extract the key once it's delivered to the users device though. To give you a complete overview would take several days though, so maybe look into the OMA specifications on how to. – colde Oct 12 '18 at 11:05
0

Ok, so practically it's impossible to achieve what you want, because anyone who have access to these videos can record them and share for free. Also, you can't just rename something from name.mp4 to name.xyz because the content it's still the same, even if the extension is changed.

However, if you have your own codec than it's ok for you, because the usual video players won't decrypt it because it's new. The part with the login page it's again a problem, you have to think if you create accounts. You create them based on what? Password? Then I can share my account with my buddy and we both watch and just one of us paid. Based on IP? Ok, but there are many dynamic IPs over there.

  • This app has already been made whit go lang . the creator share nothing with us . and off course this program must have some protection to avoid user to capture screen . and this player use hardware id and motherboard id to create a personal id for that pc . the login page is redirect user to wordpress site and user must have account in my site . and if user buy the video . then player can play thath video – Alex Oct 04 '18 at 12:25