diff --git a/YTManager/Controllers/Admin.cs b/YTManager/Controllers/Admin.cs
index 48b9829..3f1648f 100644
--- a/YTManager/Controllers/Admin.cs
+++ b/YTManager/Controllers/Admin.cs
@@ -13,6 +13,15 @@ namespace YTManager.Controllers {
     [Produces("application/json")]
     [Route("api/Admin")]
     public class AdminController : Controller {
+        // Get the mass update daemon job.
+        private static RecurringJobDto get_massupdatedaemon() {
+            return Hangfire.JobStorage
+                .Current
+                .GetConnection()
+                .GetRecurringJobs()
+                .SingleOrDefault(j => j.Id == Mass_Updater_ID);
+        }
+
         // ID for mass update job, used to tell if the job is running or not.
         public static string Mass_Updater_ID { get; } = "2013066213";
 
@@ -36,9 +45,12 @@ namespace YTManager.Controllers {
         // Ensures that the background YT Channel update API is running.
         [HttpPost("Start_Updater")]
         public IActionResult Start_Updater() {
-            Hangfire.RecurringJob.AddOrUpdate(
-                Mass_Updater_ID,
-                () => Tasks.FetchVideos.MassUpdate(Startup.DBStr), Hangfire.Cron.Hourly);
+            if (get_massupdatedaemon() == null) {
+                Hangfire.RecurringJob.AddOrUpdate(
+                    Mass_Updater_ID,
+                    () => Tasks.FetchVideos.MassUpdate(Startup.DBStr), Hangfire.Cron.Minutely);
+            }
+
             return Ok();
         }
 
@@ -46,8 +58,7 @@ namespace YTManager.Controllers {
         // Check if the periodic update job is enqued.
         [HttpGet("Update")]
         public IActionResult Get_Update_Status() {
-            bool exists = Hangfire.JobStorage.Current.GetConnection().GetRecurringJobs().Any(j => j.Id == Mass_Updater_ID);
-            return Ok(exists ? "true" : "false");
+            return Ok(get_massupdatedaemon() == null ? "false" : "true");
         }
     }
 }
diff --git a/YTManager/Migrations/20180220053952_added_refreshed.Designer.cs b/YTManager/Migrations/20180220053952_added_refreshed.Designer.cs
new file mode 100644
index 0000000..49aba42
--- /dev/null
+++ b/YTManager/Migrations/20180220053952_added_refreshed.Designer.cs
@@ -0,0 +1,102 @@
+// 
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage;
+using Microsoft.EntityFrameworkCore.Storage.Internal;
+using System;
+using YTManager;
+
+namespace YTManager.Migrations
+{
+    [DbContext(typeof(MediaDB))]
+    [Migration("20180220053952_added_refreshed")]
+    partial class added_refreshed
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn)
+                .HasAnnotation("ProductVersion", "2.0.1-rtm-125");
+
+            modelBuilder.Entity("YTManager.Models.Channel", b =>
+                {
+                    b.Property("PrimaryKey")
+                        .ValueGeneratedOnAdd();
+
+                    b.Property("AddedtoDB");
+
+                    b.Property("Description")
+                        .IsRequired();
+
+                    b.Property("Refreshed");
+
+                    b.Property("ThumbnailURL")
+                        .IsRequired();
+
+                    b.Property("Title")
+                        .IsRequired();
+
+                    b.Property("YoutubeID")
+                        .IsRequired();
+
+                    b.HasKey("PrimaryKey");
+
+                    b.ToTable("Channels");
+                });
+
+            modelBuilder.Entity("YTManager.Models.Tag", b =>
+                {
+                    b.Property("PrimaryKey")
+                        .ValueGeneratedOnAdd();
+
+                    b.Property("Name")
+                        .IsRequired();
+
+                    b.HasKey("PrimaryKey");
+
+                    b.ToTable("Tags");
+                });
+
+            modelBuilder.Entity("YTManager.Models.Video", b =>
+                {
+                    b.Property("PrimaryKey")
+                        .ValueGeneratedOnAdd();
+
+                    b.Property("AddedToYT");
+
+                    b.Property("AddedtoDB");
+
+                    b.Property("ChannelPrimaryKey");
+
+                    b.Property("Description")
+                        .IsRequired();
+
+                    b.Property("ThumbnailURL")
+                        .IsRequired();
+
+                    b.Property("Title")
+                        .IsRequired();
+
+                    b.Property("YoutubeID")
+                        .IsRequired();
+
+                    b.HasKey("PrimaryKey");
+
+                    b.HasIndex("ChannelPrimaryKey");
+
+                    b.ToTable("Videos");
+                });
+
+            modelBuilder.Entity("YTManager.Models.Video", b =>
+                {
+                    b.HasOne("YTManager.Models.Channel")
+                        .WithMany("Videos")
+                        .HasForeignKey("ChannelPrimaryKey");
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/YTManager/Migrations/20180220053952_added_refreshed.cs b/YTManager/Migrations/20180220053952_added_refreshed.cs
new file mode 100644
index 0000000..0b532c7
--- /dev/null
+++ b/YTManager/Migrations/20180220053952_added_refreshed.cs
@@ -0,0 +1,25 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+using System;
+using System.Collections.Generic;
+
+namespace YTManager.Migrations
+{
+    public partial class added_refreshed : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.AddColumn(
+                name: "Refreshed",
+                table: "Channels",
+                nullable: false,
+                defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified));
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropColumn(
+                name: "Refreshed",
+                table: "Channels");
+        }
+    }
+}
diff --git a/YTManager/Migrations/MediaDBModelSnapshot.cs b/YTManager/Migrations/MediaDBModelSnapshot.cs
index bd15502..676f4da 100644
--- a/YTManager/Migrations/MediaDBModelSnapshot.cs
+++ b/YTManager/Migrations/MediaDBModelSnapshot.cs
@@ -30,6 +30,8 @@ namespace YTManager.Migrations
                     b.Property("Description")
                         .IsRequired();
 
+                    b.Property("Refreshed");
+
                     b.Property("ThumbnailURL")
                         .IsRequired();
 
diff --git a/YTManager/Models/Channel.cs b/YTManager/Models/Channel.cs
index bca9469..9fcac58 100644
--- a/YTManager/Models/Channel.cs
+++ b/YTManager/Models/Channel.cs
@@ -30,6 +30,10 @@ namespace YTManager.Models {
         [Required]
         public DateTime AddedtoDB { get; set; }
 
+        //! Last time this channel was updated.
+        [Required]
+        public DateTime Refreshed { get; set; }
+
         // Videos this channel has.
         public List