1. Exposed Interfaces
    1. IAMMediaContent
    2. IAMOpenProgress
    3. ISupportedSites
    4. IPropertyBag, IPropertyBag2

Developers

Exposed Interfaces

Among with interfaces that are usual for DirectShow source filter (IBaseFilter, IFileSourceFilter, IAMFilterMiscFlags, ISpecifyPropertyPages), filter exposes few other standard and custom interfaces. They are listed below. Not all methods of these interfaces are implemented. Unimplemented ones return E_NOIMPL.

IAMMediaContent

Interface documentation: IAMMediaContent.

Implemented methods:

Returned text is ready to use, i.e. there are no URL encoding, HTML entities or tags.

IAMOpenProgress

Interface documentation: IAMOpenProgress.

Implemented methods:

ISupportedSites

1.4.3+

This interface provides info about supported sites and exposes the way to test whether particular URL is supported or not.

This is custom interface, detailed description can be found in the archive below.

developers.zip

IPropertyBag, IPropertyBag2

1.6.1+

Interface documentation: IPropertyBag, IPropertyBag2.

Using these interfaces filter exposes additional metadata.

List of exposed fields:

Name Description
title Original video title on the site
description Video description on the site
channel_title The title of the channel to which belongs the video. In most cases this is display name of the user but not always: channels on Youtube may not be associated with a user. Also in case of Youtube this is a display name of the channel. I.e. it does not have to be unique so different channels can have the same display name
channel_url URL of the channel containing this video. Unlike channel_title, this URL is unique for each channel
upload_date Upload date in format YYYY-MM-DD
view_count Number of times that the video has been viewed
thumbnail_url URL to the video thumbnail
like_count, dislike_count Number of people who liked/disliked the video