diff --git src/bp-activity/bp-activity-embeds.php src/bp-activity/bp-activity-embeds.php
index 220aa28..57396b8 100644
--- src/bp-activity/bp-activity-embeds.php
+++ src/bp-activity/bp-activity-embeds.php
@@ -33,7 +33,7 @@ function bp_activity_setup_oembed() {
 add_action( 'bp_loaded', 'bp_activity_setup_oembed' );
 
 /**
- * Add inline styles for BP activity embeds.
+ * Enqueue styles for embeds
  *
  * This is subject to change or be removed entirely for a different system.
  * See PHPDoc for BP_Legacy::locate_asset_in_stack().
@@ -41,68 +41,132 @@ add_action( 'bp_loaded', 'bp_activity_setup_oembed' );
  * @since  2.6.0
  * @access private
  */
-function _bp_activity_embed_add_inline_styles() {
-	$inline_css = <<<EOD
-
-#wp-embed-header:after {
-	clear: both;
-	content: "";
-	display: table;
-	margin-bottom: 1em;
-}
+function bp_activity_embed_register_styles() {
+	$min = bp_core_get_minified_asset_suffix();
+	$url = buddypress()->plugin_url . 'bp-activity/css/';
 
-.wp-embed-avatar {
-	float: left;
-	margin: 0 .75em 0 0;
-}
+	/**
+	 * Filters the BuddyPress Embed stylesheet files to register.
+	 *
+	 * @since 2.6.0
+	 *
+	 * @param array $value Array of stylesheet file information to register.
+	 */
+	$styles = apply_filters( 'bp_activity_embed_register_styles', array(
+		'bp-activity-embed' => array(
+			'file'         => "{$url}embed{$min}.css",
+			'dependencies' => array(),
+			'has_rtl'      => true,
+			'version'      => bp_get_version(),
+		),
+	) );
+
+	foreach ( $styles as $id => $style ) {
+		wp_register_style( $id, $style['file'], $style['dependencies'], $style['version'] );
+
+		if ( ! empty( $style['has_rtl'] ) ) {
+			wp_style_add_data( $id, 'rtl', true );
+		}
 
-p.wp-embed-heading {
-	font-size: 16px;
-	margin-bottom: 0;
+		if ( $min ) {
+			wp_style_add_data( $id, 'suffix', $min );
+		}
+	}
 }
+add_action( 'bp_enqueue_embed_scripts', 'bp_activity_embed_register_styles', 1 );
 
-.wp-embed-excerpt, p.wp-embed-timestamp {
-	margin-bottom: .5em;
+function bp_activity_embed_enqueue_styles() {
+	wp_enqueue_style( 'bp-activity-embed' );
 }
+add_action( 'bp_enqueue_embed_scripts', 'bp_activity_embed_enqueue_styles', 10 );
 
-.wp-embed-excerpt a {
-	color: #21759b;
-	display: inline-block;
-	overflow: hidden;
-	text-overflow: ellipsis;
-	vertical-align: top;
-	white-space: nowrap;
-	max-width: 250px;
-}
+function bp_activity_embed_avatar() {
+	$embed_avatar_args = apply_filters( 'bp_activity_embed_avatar', array(
+		'type' => 'thumb',
+	) );
 
-.bp-activity-embed-display-media {
-	height: auto;
-	max-width: 550px;
+	return bp_activity_avatar( $embed_avatar_args );
 }
 
-.bp-activity-embed-display-media img {
-	height: auto;
-	max-width: 100%;
+function bp_activity_embed_heading() {
+	echo bp_activity_embed_get_heading();
 }
 
-.activity-read-more {
-	margin-left: .5em;
-}
+	function bp_activity_embed_get_heading() {
+		remove_filter( 'bp_get_activity_action', 'wpautop' );
+
+		$heading = bp_get_activity_action( array( 'no_timestamp' => true ) );
+
+		add_filter( 'bp_get_activity_action', 'wpautop' );
+
+		return apply_filters( 'bp_activity_embed_get_heading', $heading );
+	}
 
-.activity-read-more a {
-	color: #b4b9be;
+function bp_activity_embed_get_url_data( $url = '', $activity_id = 0 ) {
+	if ( empty( $url ) ) {
+		return false;
+	}
+
+	$meta = bp_activity_get_meta( $activity_id, 'oembed_image' );
+	if ( ! empty( $meta[ $url ] ) ) {
+		return $meta[ $url ];
+	}
+
+	if ( ! class_exists( 'WP_Press_This' ) ) {
+		require( ABSPATH . 'wp-admin/includes/class-wp-press-this.php' );
+	}
+
+	$page = new WP_Press_This;
+
+	$data   = $page->source_data_fetch_fallback( $url );
+	$images = $page->get_images( $data );
+
+	// Take the first
+	$image = reset( $images );
+
+	if ( empty( $image ) ) {
+		return false;
+	}
+
+	// Save a meta to avoid requesting the url at each load.
+	bp_activity_update_meta( $activity_id, 'oembed_image', array( $url => $image ) );
+	return $image;
 }
 
-.wp-embed-footer {
-	margin-top: 20px;
+function bp_activity_embed_rich_content() {
+	echo bp_activity_embed_get_rich_content();
 }
 
-EOD;
+	function bp_activity_embed_get_rich_content() {
+		// Bail if oEmbed request explicitly hides media.
+		if ( isset( $_REQUEST['hide_media'] ) && true == wp_validate_boolean( $_REQUEST['hide_media'] ) ) {
+			return;
+		}
 
-	// Piggyback off of 'open-sans' handle so we can use our inline CSS.
-	wp_add_inline_style( 'open-sans', $inline_css );
-}
-add_action( 'bp_enqueue_embed_scripts', '_bp_activity_embed_add_inline_styles' );
+		$activity = false;
+
+		if ( isset( $GLOBALS['activities_template']->activity ) ) {
+			$activity = $GLOBALS['activities_template']->activity;
+		}
+
+		// Find all embeds for the activity item.
+		$media      = (array) bp_core_extract_media_from_content( $activity->content );
+		$media_key  = key( $media );
+		$media_data = reset( $media[ $media_key ] );
+
+		if ( ! is_null( $media_key ) ) {
+			if ( 'embeds' === $media_key ) {
+				$image = bp_activity_embed_get_url_data( $media_data['url'], $activity->id );
+			} elseif ( 'images' === $media_key ) {
+				$image = $media_data['url'];
+			}
+		}
+
+		return apply_filters( 'bp_activity_embed_get_rich_content', sprintf( '<div class="wp-embed-featured-image rectangular"><a href="%1$s"><img src="%2$s"></a></div>',
+			esc_url( bp_activity_get_permalink( $activity->id, $activity ) ),
+			esc_attr( $image )
+		), $activity, $media );
+	}
 
 /**
  * Outputs excerpt for an activity embed item.
@@ -124,12 +188,6 @@ function bp_activity_embed_excerpt( $content = '' ) {
 	function bp_activity_get_embed_excerpt( $content = '' ) {
 		if ( empty( $content ) && ! empty( $GLOBALS['activities_template']->in_the_loop ) ) {
 			$content = $GLOBALS['activities_template']->activity->content;
-
-			// No content, so use action value.
-			if ( empty( $content ) ) {
-				$action = bp_activity_get_action( bp_get_activity_object_name(), bp_get_activity_type() );
-				$content = false !== $action ? $action['value'] : '';
-			}
 		}
 
 		/**
@@ -154,58 +212,3 @@ function bp_activity_embed_excerpt( $content = '' ) {
 		 */
 		return apply_filters( 'bp_activity_get_embed_excerpt', $content, $GLOBALS['activities_template']->activity->content );
 	}
-
-/**
- * Outputs the first embedded item in the activity oEmbed template.
- *
- * @since 2.6.0
- */
-function bp_activity_embed_response_display_media() {
-	// Bail if oEmbed request explicitly hides media.
-	if ( isset( $_REQUEST['hide_media'] ) && true == wp_validate_boolean( $_REQUEST['hide_media'] ) ) {
-		return;
-	}
-
-	// Find all embeds for the activity item.
-	$embeds = bp_core_extract_media_from_content( $GLOBALS['activities_template']->activity->content, 'embeds' );
-
-	/**
-	 * Should we display media in the oEmbed template?
-	 *
-	 * @since 2.6.0
-	 *
-	 * @param bool $retval Defaults to true.
-	 */
-	$allow_embeds = apply_filters( 'bp_activity_embed_display_media', true );
-
-	// Only embed the first embedded item.
-	if ( $embeds && $allow_embeds ) {
-		// Call BP_Embed if it hasn't already loaded.
-		bp_embed_init();
-
-		// Autoembed first URL.
-		$content = buddypress()->embed->autoembed( $embeds['embeds'][0]['url'] );
-
-		// Wrap content around a custom DIV.
-		echo '<div class="bp-activity-embed-display-media">' . $content . '</div>';
-
-		// Add fluidvids.js for responsive IFRAMEs / OBJECTs.
-		if ( false !== strpos( $content, '<iframe' ) || false !== strpos( $content, '<object' ) ) {
-	?>
-
-<script>
-/*! fluidvids.js v2.4.1 | (c) 2014 @toddmotto | License: MIT | https://github.com/toddmotto/fluidvids */
-!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t:e.fluidvids=t()}(this,function(){"use strict";function e(e){return new RegExp("^(https?:)?//(?:"+d.players.join("|")+").*$","i").test(e)}function t(e,t){return parseInt(e,10)/parseInt(t,10)*100+"%"}function i(i){if((e(i.src)||e(i.data))&&!i.getAttribute("data-fluidvids")){var n=document.createElement("div");i.parentNode.insertBefore(n,i),i.className+=(i.className?" ":"")+"fluidvids-item",i.setAttribute("data-fluidvids","loaded"),n.className+="fluidvids",n.style.paddingTop=t(i.height,i.width),n.appendChild(i)}}function n(){var e=document.createElement("div");e.innerHTML="<p>x</p><style>"+o+"</style>",r.appendChild(e.childNodes[1])}var d={selector:["iframe","object"],players:["www.youtube.com","player.vimeo.com"]},o=[".fluidvids {","width: 100%; max-width: 100%; position: relative;","}",".fluidvids-item {","position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;","}"].join(""),r=document.head||document.getElementsByTagName("head")[0];return d.render=function(){for(var e=document.querySelectorAll(d.selector.join()),t=e.length;t--;)i(e[t])},d.init=function(e){for(var t in e)d[t]=e[t];d.render(),n()},d});
-
-// init
-fluidvids.init({
-	selector: ['iframe', 'object'],
-	players: ['.'] // remove default youtube / vimeo restriction.
-});
-</script>
-
-	<?php
-		}
-	}
-}
-add_action( 'bp_activity_embed_after_content', 'bp_activity_embed_response_display_media' );
diff --git src/bp-activity/css/embed.css src/bp-activity/css/embed.css
index e69de29..9690c3a 100644
--- src/bp-activity/css/embed.css
+++ src/bp-activity/css/embed.css
@@ -0,0 +1,64 @@
+#bp-embed-header:after {
+	clear: both;
+	content: "";
+	display: table;
+	margin-bottom: 1em;
+}
+
+.bp-embed-avatar {
+	float: left;
+	margin: 0 .75em 0 0;
+}
+
+div.bp-embed-heading {
+	margin: 0 0 15px;
+    font-weight: bold;
+    font-size: 120%;
+    line-height: 1.3;
+	margin-bottom: 0;
+}
+
+div.bp-embed-heading a {
+	color: #32373c;
+}
+
+div.bp-embed-heading a img.avatar {
+	vertical-align: bottom;
+	margin-right: 2px;
+}
+
+.wp-embed-excerpt, p.bp-embed-timestamp {
+	margin-bottom: .5em;
+}
+
+.wp-embed-excerpt a {
+	color: #21759b;
+	display: inline-block;
+	overflow: hidden;
+	text-overflow: ellipsis;
+	vertical-align: top;
+	white-space: nowrap;
+	max-width: 250px;
+}
+
+.bp-activity-embed-display-media {
+	height: auto;
+	max-width: 550px;
+}
+
+.bp-activity-embed-display-media img {
+	height: auto;
+	max-width: 100%;
+}
+
+.activity-read-more {
+	margin-left: .5em;
+}
+
+.activity-read-more a {
+	color: #b4b9be;
+}
+
+.wp-embed-footer {
+	margin-top: 20px;
+}
diff --git src/bp-core/classes/class-bp-oembed-component.php src/bp-core/classes/class-bp-oembed-component.php
index 139b80a..44ed154 100644
--- src/bp-core/classes/class-bp-oembed-component.php
+++ src/bp-core/classes/class-bp-oembed-component.php
@@ -303,9 +303,6 @@ abstract class BP_oEmbed_Component {
 		post_class( 'wp-embed' );
 		echo '>';
 
-		// Template part for our embed header.
-		bp_get_asset_template_part( 'embeds/header', bp_current_component() );
-
 		/**
 		 * Inject BuddyPress embed content on this hook.
 		 *
@@ -531,4 +528,4 @@ abstract class BP_oEmbed_Component {
 
 		$this->content();
 	}
-}
\ No newline at end of file
+}
diff --git src/bp-templates/bp-legacy/buddypress/assets/embeds/activity.php src/bp-templates/bp-legacy/buddypress/assets/embeds/activity.php
index 6c88f53..68901ac 100644
--- src/bp-templates/bp-legacy/buddypress/assets/embeds/activity.php
+++ src/bp-templates/bp-legacy/buddypress/assets/embeds/activity.php
@@ -2,11 +2,22 @@
 		<?php if ( bp_has_activities( 'display_comments=threaded&show_hidden=true&include=' . bp_current_action() ) ) : ?>
 
 			<?php while ( bp_activities() ) : bp_the_activity(); ?>
-				<div class="wp-embed-excerpt"><?php bp_activity_embed_excerpt(); ?></div>
+				<div id="bp-embed-header">
+					<div class="bp-embed-avatar">
+						<a href="<?php bp_activity_user_link(); ?>">
+							<?php bp_activity_embed_avatar(); ?>
+						</a>
+					</div>
+					<div class="bp-embed-heading">
+						<?php bp_activity_embed_heading() ;?>
+					</div>
+
+					<p class="bp-embed-timestamp"><a href="<?php bp_activity_thread_permalink(); ?>"><?php echo date_i18n( get_option( 'time_format' ) . ' - ' . get_option( 'date_format' ), strtotime( bp_get_activity_date_recorded() ) ); ?></a></p>
+				</div>
 
-				<p class="wp-embed-timestamp"><a href="<?php bp_activity_thread_permalink(); ?>"><?php echo date_i18n( get_option( 'time_format' ) . ' - ' . get_option( 'date_format' ), strtotime( bp_get_activity_date_recorded() ) ); ?></a></p>
+				<?php bp_activity_embed_rich_content(); ?>
 
-				<?php do_action( 'bp_activity_embed_after_content' ); ?>
+				<div class="wp-embed-excerpt"><?php bp_activity_embed_excerpt(); ?></div>
 
 			<?php endwhile; ?>
 
diff --git src/bp-templates/bp-legacy/buddypress/assets/embeds/header.php src/bp-templates/bp-legacy/buddypress/assets/embeds/header.php
deleted file mode 100644
index 7a4bc8a..0000000
--- src/bp-templates/bp-legacy/buddypress/assets/embeds/header.php
+++ /dev/null
@@ -1,18 +0,0 @@
-
-		<div id="wp-embed-header">
-			<div class="wp-embed-avatar">
-				<a href="<?php bp_displayed_user_link(); ?>">
-					<?php bp_displayed_user_avatar( 'type=thumb&width=36&height=36' ); ?>
-				</a>
-			</div>
-
-			<p class="wp-embed-heading">
-				<a href="<?php bp_displayed_user_link(); ?>">
-					<?php bp_displayed_user_fullname(); ?>
-				</a>
-			</p>
-
-			<?php if ( bp_is_active( 'activity' ) && bp_activity_do_mentions() ) : ?>
-				<p class="wp-embed-mentionname">@<?php bp_displayed_user_mentionname(); ?></p>
-			<?php endif; ?>
-		</div>
