protected function locateShortcodeMedia() {

		// Finds matches for shortcodes in the content.
		preg_match_all( '/' . get_shortcode_regex() . '/s', $this->content, $matches, PREG_SET_ORDER );

		if ( empty( $matches ) ) {
			return '';
		}

		// Create a list of allowed shortcodes.
		$shortcodes = is_array( $this->shortcodes ) ? $this->shortcodes : [];

		// We need to add any known shortcodes for the given type.
		$property = "{$this->type}_shortcodes";

		if ( property_exists( $this, $property ) ) {

			$shortcodes = array_merge(
				$shortcodes,
				apply_filters(
					"hybrid/media/grabber/shortcodes/{$this->type}",
					$this->{$property}
				)
			);
		}

		// Loops through all of the shortcode matches. If we find one of
		// our shortcodes, run it.
		foreach ( $matches as $shortcode ) {

			if ( in_array( $shortcode[2], $shortcodes ) ) {

				$this->original_media = array_shift( $shortcode );

				return $this->doShortcode( $shortcode[2], $this->original_media );
			}
		}

		return '';
	}