I haven't found a way to set your main profile photo on meetup.com such that it overrides any old photos you have set in individual groups. This script will do just that — set your group specific profile photo to your main photo for every group you're in.
Here's what to do:
- Go to your main profile page: http://www.meetup.com/profile/
- Ensure you've set your main profile photo to the photo you want to use in all your groups.
- Open your browser's developer tools (often F12 on Windows, cmd+opt+i on macOS), copy the following code, paste it in the Console tab, and press
enter
:
(async function() {
var imageSrc = document.querySelector('#member-profile-photo img').getAttribute('src')
var match = /member_(\d+)\./.exec(imageSrc)
if (!match) {
console.error(`Couldn't find your photo ID! Are you on https://www.meetup.com/profile ?`)
return
}
var imageId = match[1]
var groups = new Set()
Array.from(document.querySelectorAll('[data-chapterid]'))
.map(el => el.getAttribute('data-chapterid'))
.forEach(groups.add.bind(groups))
for (var groupId of [...groups]) {
console.log(`Changing profile photo for ${groupId}`)
try {
await $.post('https://www.meetup.com/api/', {
method: 'makeGroupProfilePhoto',
arg_member: '56746842',
arg_chapter: groupId,
arg_memberPhotoId: imageId,
})
} catch (err) {
console.error(`Failed to change profile photo for ${groupId}`)
}
}
console.log(`Done!`)
})()
Seems like the
data-chapterid
attribute is no longer present in the modern main profile page.However, if you open the to the old style profile page it will still work. You can get to this from any group by going to
More > Message Boards > My Profile