diff --git a/api/funkwhale_api/factories.py b/api/funkwhale_api/factories.py
index 5db75fd58d74756689fb48b7df072c635acc99f3..472ff3feb83f89bd047c950eadcfc674fbd5a3da 100644
--- a/api/funkwhale_api/factories.py
+++ b/api/funkwhale_api/factories.py
@@ -1,6 +1,9 @@
+import uuid
 import factory
 import persisting_theory
 
+from faker.providers import internet as internet_provider
+
 
 class FactoriesRegistry(persisting_theory.Registry):
     look_into = "factories"
@@ -39,3 +42,22 @@ class NoUpdateOnCreate:
     @classmethod
     def _after_postgeneration(cls, instance, create, results=None):
         return
+
+
+class FunkwhaleProvider(internet_provider.Provider):
+    """
+    Our own faker data generator, since built-in ones are sometimes
+    not random enough
+    """
+
+    def federation_url(self, prefix=""):
+        def path_generator():
+            return "{}/{}".format(prefix, uuid.uuid4())
+
+        domain = self.domain_name()
+        protocol = "https"
+        path = path_generator()
+        return "{}://{}/{}".format(protocol, domain, path)
+
+
+factory.Faker.add_provider(FunkwhaleProvider)
diff --git a/changes/changelog.d/factories.bugfix b/changes/changelog.d/factories.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..58fa58074c6a99455734a2b6d59312ed4a99c5a3
--- /dev/null
+++ b/changes/changelog.d/factories.bugfix
@@ -0,0 +1 @@
+Fixed dev command for fake data creation (!664)