Your basic choices are:-
1. Inheritance
Model Videos
and Users
as sub-classes of Items
either:-
1.1. Table-per-class inheritance (so one table for Video, one for Users)
1.2 Table-per-hierarchy inheritance (so one table that contains video and users together (some fields hidden for some types)
I suggest you look up table-per-class and table-per-hierarchy for Entity Framework.
2. Using generic interfaces (e.g. ICommentableObject<..>, ICommentableObjectContext<...>)
This allows you to have separate Video, User, Comment tables and FKrelationships between then for VideoComment and UserComment (and more generally for any other tables you want to comment on).
This is do-able, but it's very complex. For example, I have an ITaggable implementation which can apply tags to any ObjectContext and any objects within it that support the given interface - but it wasn't easy.