diff --git a/TweetDuck.csproj b/TweetDuck.csproj
index e8669028..6eb8c2e8 100644
--- a/TweetDuck.csproj
+++ b/TweetDuck.csproj
@@ -345,6 +345,10 @@
       <Project>{b10b0017-819e-4f71-870f-8256b36a26aa}</Project>
       <Name>TweetDuck.Browser</Name>
     </ProjectReference>
+    <ProjectReference Include="video\TweetDuck.Video\TweetDuck.Video.csproj">
+      <Project>{278b2d11-402d-44b6-b6a1-8fa67db65565}</Project>
+      <Name>TweetDuck.Video</Name>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <PropertyGroup>
diff --git a/TweetDuck.sln b/TweetDuck.sln
index 0c4470d1..178226c5 100644
--- a/TweetDuck.sln
+++ b/TweetDuck.sln
@@ -10,6 +10,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "tests\UnitTest
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TweetLib.Audio", "lib\TweetLib.Audio\TweetLib.Audio.csproj", "{E9E1FD1B-F480-45B7-9970-BE2ECFD309AC}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TweetDuck.Video", "video\TweetDuck.Video\TweetDuck.Video.csproj", "{278B2D11-402D-44B6-B6A1-8FA67DB65565}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|x86 = Debug|x86
@@ -32,6 +34,10 @@ Global
 		{E9E1FD1B-F480-45B7-9970-BE2ECFD309AC}.Debug|x86.Build.0 = Debug|x86
 		{E9E1FD1B-F480-45B7-9970-BE2ECFD309AC}.Release|x86.ActiveCfg = Release|x86
 		{E9E1FD1B-F480-45B7-9970-BE2ECFD309AC}.Release|x86.Build.0 = Release|x86
+		{278B2D11-402D-44B6-B6A1-8FA67DB65565}.Debug|x86.ActiveCfg = Debug|x86
+		{278B2D11-402D-44B6-B6A1-8FA67DB65565}.Debug|x86.Build.0 = Debug|x86
+		{278B2D11-402D-44B6-B6A1-8FA67DB65565}.Release|x86.ActiveCfg = Release|x86
+		{278B2D11-402D-44B6-B6A1-8FA67DB65565}.Release|x86.Build.0 = Release|x86
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/video/TweetDuck.Video/ControlWMP.cs b/video/TweetDuck.Video/ControlWMP.cs
new file mode 100644
index 00000000..2e825486
--- /dev/null
+++ b/video/TweetDuck.Video/ControlWMP.cs
@@ -0,0 +1,17 @@
+using System.ComponentModel;
+using System.Windows.Forms;
+using WMPLib;
+
+namespace TweetDuck.Video{
+    [DesignTimeVisible(true)]
+    [Clsid("{6bf52a52-394a-11d3-b153-00c04f79faa6}")]
+    class ControlWMP : AxHost{
+        public WindowsMediaPlayer Ocx { get; private set; }
+
+        public ControlWMP() : base("6bf52a52-394a-11d3-b153-00c04f79faa6"){}
+
+        protected override void AttachInterfaces(){
+            Ocx = (WindowsMediaPlayer)GetOcx();
+        }
+    }
+}
diff --git a/video/TweetDuck.Video/FormPlayer.Designer.cs b/video/TweetDuck.Video/FormPlayer.Designer.cs
new file mode 100644
index 00000000..428751d0
--- /dev/null
+++ b/video/TweetDuck.Video/FormPlayer.Designer.cs
@@ -0,0 +1,62 @@
+namespace TweetDuck.Video {
+    partial class FormPlayer {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing) {
+            if (disposing && (components != null)) {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent() {
+            this.player = new ControlWMP();
+            ((System.ComponentModel.ISupportInitialize)(this.player)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // player
+            // 
+            this.player.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.player.Enabled = true;
+            this.player.Location = new System.Drawing.Point(0, 0);
+            this.player.Name = "player";
+            this.player.Size = new System.Drawing.Size(120, 120);
+            this.player.TabIndex = 0;
+            // 
+            // FormPlayer
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(120, 120);
+            this.Controls.Add(this.player);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
+            this.Name = "FormPlayer";
+            this.ShowIcon = false;
+            this.ShowInTaskbar = false;
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+            this.Text = "TweetDuck Video";
+            this.Load += new System.EventHandler(this.FormPlayer_Load);
+            ((System.ComponentModel.ISupportInitialize)(this.player)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private ControlWMP player;
+    }
+}
+
diff --git a/video/TweetDuck.Video/FormPlayer.cs b/video/TweetDuck.Video/FormPlayer.cs
new file mode 100644
index 00000000..f03b4704
--- /dev/null
+++ b/video/TweetDuck.Video/FormPlayer.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Drawing;
+using System.Windows.Forms;
+using WMPLib;
+
+namespace TweetDuck.Video{
+    partial class FormPlayer : Form{
+        public FormPlayer(){
+            InitializeComponent();
+
+            player.Ocx.enableContextMenu = false;
+            player.Ocx.uiMode = "none";
+        }
+
+        private void FormPlayer_Load(object sender, EventArgs e){
+        }
+    }
+}
diff --git a/video/TweetDuck.Video/Program.cs b/video/TweetDuck.Video/Program.cs
new file mode 100644
index 00000000..078aba72
--- /dev/null
+++ b/video/TweetDuck.Video/Program.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Windows.Forms;
+
+namespace TweetDuck.Video{
+    static class Program{
+        [STAThread]
+        private static void Main(){
+            try{
+                Application.EnableVisualStyles();
+                Application.SetCompatibleTextRenderingDefault(false);
+                Application.Run(new FormPlayer());
+            }catch(Exception){
+                // TODO
+                Environment.Exit(2);
+            }
+        }
+    }
+}
diff --git a/video/TweetDuck.Video/Properties/AssemblyInfo.cs b/video/TweetDuck.Video/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..6c548eac
--- /dev/null
+++ b/video/TweetDuck.Video/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("TweetDuck Video")]
+[assembly: AssemblyDescription("TweetDuck Video")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("TweetDuck.Video")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components.  If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("278b2d11-402d-44b6-b6a1-8fa67db65565")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/video/TweetDuck.Video/TweetDuck.Video.csproj b/video/TweetDuck.Video/TweetDuck.Video.csproj
new file mode 100644
index 00000000..bec18d7d
--- /dev/null
+++ b/video/TweetDuck.Video/TweetDuck.Video.csproj
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{278B2D11-402D-44B6-B6A1-8FA67DB65565}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <RootNamespace>TweetDuck.Video</RootNamespace>
+    <AssemblyName>TweetDuck.Video</AssemblyName>
+    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+    <ResolveComReferenceSilent>True</ResolveComReferenceSilent>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x86\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
+    <OutputPath>bin\x86\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>none</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <Prefer32Bit>true</Prefer32Bit>
+    <GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="ControlWMP.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="FormPlayer.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="FormPlayer.Designer.cs">
+      <DependentUpon>FormPlayer.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <COMReference Include="WMPLib">
+      <Guid>{6BF52A50-394A-11D3-B153-00C04F79FAA6}</Guid>
+      <VersionMajor>1</VersionMajor>
+      <VersionMinor>0</VersionMinor>
+      <Lcid>0</Lcid>
+      <WrapperTool>tlbimp</WrapperTool>
+      <Isolated>False</Isolated>
+      <EmbedInteropTypes>True</EmbedInteropTypes>
+    </COMReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file