MyFreeCams Downloader avatar

MyFreeCams Downloader

Pricing

$2.00 / 1,000 media links

Go to Apify Store
MyFreeCams Downloader

MyFreeCams Downloader

MyFreeCams downloader for public live rooms and MFC Share recordings. Export direct MP4 or HLS media URLs, quality variants, thumbnails, duration, model context, and source pages.

Pricing

$2.00 / 1,000 media links

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

1

Bookmarked

6

Total users

0

Monthly active users

5 days ago

Last modified

Share

MyFreeCams Downloader is for researchers, media teams, and developers who have public MyFreeCams targets. Add public live-room, profile, MFC Share recording, or recording-index URLs and get structured rows with direct HLS or MP4 links, source pages, titles, model details, thumbnails, duration, quality, dimensions, content type, and expiry data when available. This gives you source-backed media links for content review, cataloging, media operations, research, or an API workflow.

It reads only media that MyFreeCams exposes to the run. It does not require a browser extension, local recorder, MyFreeCams login, or source API key for public targets. It does not copy or host the media files.

🧾 MyFreeCams media rows

Each saved row is one successful live stream or public recording with at least one direct source-hosted media URL. It includes the submitted and source page URLs, media type, source ID, title, model facts, thumbnail, duration, and available variants when the source exposes them. Recording rows usually include direct MP4 variants. Public live rooms can include HLS variants while they are online.

  1. Open the Actor input.
  2. Add up to 100 public MyFreeCams room, profile, recording, or recording index URLs in MyFreeCams URLs.
  3. Choose Media to collect.
  4. Start the Actor.
  5. Open the dataset and use availableMedia to choose a source-hosted media link.

The Actor saves successful rows as it finds them. It saves the first eligible occurrence of a source item and ignores later matches of that same item, so the saved row keeps the first match's submitted target and source details. Targets without a successful media row do not create placeholder rows.

⚙️ Input

Input fields

FieldTypeWhat it does
startUrlsarray of objectsAdds 1 to 100 public MyFreeCams room, profile, MFC Share recording, or recording index URLs.
startUrls[].urlstringHolds one public MyFreeCams or MFC Share URL.
mediaScopestringChooses liveAndRecordings, liveOnly, or recordingsOnly. The default is liveAndRecordings.

Example input

This is the public input from a successful current-beta run.

{
"startUrls": [
{
"url": "https://share.myfreecams.com/a/b79jimdn"
},
{
"url": "https://share.myfreecams.com/a/b482wvn3"
},
{
"url": "https://share.myfreecams.com/a/5nr92ncs"
},
{
"url": "https://share.myfreecams.com/a/0davi0z7"
},
{
"url": "https://share.myfreecams.com/a/hldl40xh"
}
],
"mediaScope": "liveAndRecordings"
}

🧾 Output

Dataset link

The public results field opens the default dataset overview:

{{links.apiDefaultDatasetUrl}}/items?view=overview

The output has one row shape for successful live streams and recordings. The table below lists every public row field, including nested fields.

Recording or live media row

FieldTypeWhat it does
submittedUrlstringShows the input URL that led to the saved row.
pageUrlstringLinks to the MyFreeCams or MFC Share page where the media was found.
mediaIdstring or nullShows the source recording, media, or room ID when available.
mediaTypestringSays whether the row is a liveStream or recording.
titlestring or nullShows the room label or recording title when available.
modelobjectGroups model or profile facts when available.
model.usernamestring or nullShows the model username when available.
model.displayNamestring or nullShows the model display name when available.
model.profileUrlstring or nullLinks to the MyFreeCams profile when available.
durationSecondsinteger or nullShows recording length in seconds when available. Live streams use null.
thumbnailUrlstring or nullLinks to the source thumbnail or preview image when available.
availableMediaarray of objectsLists direct source-hosted media variants for the row.
availableMedia[].mediaUrlstringLinks to one direct source-hosted MP4 or HLS variant.
availableMedia[].qualitystring or nullShows the source quality label when available.
availableMedia[].widthinteger or nullShows the variant width in pixels when available.
availableMedia[].heightinteger or nullShows the variant height in pixels when available.
availableMedia[].bitrateKbpsinteger or nullShows the variant bitrate in kilobits per second when available.
availableMedia[].contentTypestring or nullShows the media content type when known.
availableMedia[].expiresAtdate-time string or nullShows the URL expiry time when the source exposes it.

Example recording row

This complete row is a genuine row from the current beta run.

{
"submittedUrl": "https://share.myfreecams.com/a/5nr92ncs",
"pageUrl": "https://share.myfreecams.com/a/5nr92ncs",
"mediaId": "5nr92ncs",
"mediaType": "recording",
"title": "Public Show - 6/15/2026 - 2:11pm",
"model": {
"username": "peachyqueen",
"displayName": "peachyqueen",
"profileUrl": "https://profiles.myfreecams.com/peachyqueen"
},
"durationSeconds": 546,
"thumbnailUrl": "https://share-media.myfreecams.com/signed/1789477622/cyQ716SKCPbNCSXudYr4QQ/4/s/s/4/ss42e0tv/poster/0.jpg",
"availableMedia": [
{
"mediaUrl": "https://share-media.myfreecams.com/signed/1789088822/42FIiRn1V8rFb2ADZ-WUSQ/4/s/s/4/ss42e0tv/source/vhd.mp4",
"quality": "1080p",
"width": null,
"height": 1080,
"bitrateKbps": null,
"contentType": "video/mp4",
"expiresAt": "2026-09-11T01:07:02.000Z"
},
{
"mediaUrl": "https://share-media.myfreecams.com/signed/1789088822/XBfUmFPSb6rxpfjEKJUakA/4/s/s/4/ss42e0tv/source/sd.mp4",
"quality": "480p",
"width": null,
"height": 480,
"bitrateKbps": null,
"contentType": "video/mp4",
"expiresAt": "2026-09-11T01:07:02.000Z"
},
{
"mediaUrl": "https://share-media.myfreecams.com/signed/1789088822/6ktHl6oIHAVPm3yf1JHJyA/4/s/s/4/ss42e0tv/source/ld.mp4",
"quality": "240p",
"width": null,
"height": 240,
"bitrateKbps": null,
"contentType": "video/mp4",
"expiresAt": "2026-09-11T01:07:02.000Z"
}
]
}

💳 Pricing

This Actor charges one Media link event for each saved live stream or recording row with at least one direct source-hosted media URL. A target with no usable media does not create this charge.

🔌 Integrations

Use the Actor in Apify Console or through the Apify API. Export the dataset as JSON, CSV, Excel, XML, RSS, or HTML, schedule repeat runs, or use Apify webhooks for run events.

❓ FAQ

Can this download MyFreeCams recordings?

It returns direct MP4 URLs for public MFC Share recordings when the recording page exposes them. It does not download or store the media files in Apify storage.

Can it capture a live room?

It returns HLS media variants for a public live room when the room is online and exposes playable stream URLs. It does not create a local screen recording or wait for a room to come online.

Do I need a MyFreeCams login or API key?

No for public targets. The Actor does not expose cookie or session inputs and cannot retrieve media that requires private access.

What happens when a target has no media?

The Actor saves no placeholder row for that target. Successful independent targets can still appear in the dataset.

What happens when the same source item is submitted twice?

The Actor saves the first eligible occurrence and ignores later matches of that source item. It does not merge later submitted values or source matches into the saved row.

No. Live links can stop working when a room goes offline or the source rotates playback URLs. Recording links can be signed and time-limited when the source exposes an expiry.

Which media scope should I choose?

Choose liveAndRecordings for both types, liveOnly for public live rooms, or recordingsOnly for MFC Share recordings.

Can I read the output through the Apify API?

Yes. Open the dataset through the Apify API or export it in a format supported by your workflow.

📝 Changelog

v0.1

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré