Media Changes and Migration
Media images are an important part of the LinkedIn API ecosystem. From pictureInfo
and backgroundImage
in Profile API to logo
and coverPhoto
in Organization API , these media fields enhance the LinkedIn Developer Platform in many ways and will continue to do so in the future.
We will be making some updates to our media fields and values beginning February 26, 2018. On this page, you will find what has changed and what changes are to come.
Existing Field Changes
For media fields that return a media-typed URN (e.g. urn:li:media:{id}
), the structure will stay the same for backward compatability but there will be some underlying functionality changes.
Before the change
Retrieve the media file of a media-typed URN by replacing the URN sub-string urn:li:media:
to https://media.licdn.com/mpr/mpr
. For example, if the field value is urn:li:media:/p/1/000/0a1/99/123456.jpg
, you can modify it to https://media.licdn.com/mpr/mpr/p/1/000/0a1/99/123456.jpg
to retrieve it as a media URL via the LinkedIn CDN. To get a specific dimension, you can concatenate shrink_X_X/
to get appropriate sizing. For example, https://media.licdn.com/mpr/mpr/shrink_100_100/p/1/000/0a1/99/123456.jpg
.
After the change
The media-typed URN will still return in the same structure but the id
portion will be different. For example: urn:li:media:/gcrc/dms/image/C4D03AQGsitRwG8U8ZQ/profile-displayphoto-shrink_800_800/0?e=1525021200&v=alpha&t=QU3NjJVvPZR6C_6VhPn7wrOCWYoLsx7i1234knkzRRw
. The replacement of the LinkedIn CDN will still be the same except the resizing functionality with shrink_X_X/
will no longer work. If you append the shrink_X_X/
, we will always return the original size of the media image.
The new id
will be dynamic and can change from time to time. We recommend retrieving at least once every 60 days to update your media-typed URN.
This will remain working until December 1, 2018 . Please continue reading to see the required media migration.
Media Migration to New Fields
Both the existing and new fields will work concurrently over the coming months. Starting December 1, 2018 , the existing fields will no longer be returned. After that, only the new fields and their format values will be supported. We ask all developers to plan their migration accordingly.
The new value formats are digitalmediaAsset
URNs (e.g. urn:li:digitalmediaAsset:123ABC
). These URNs will need to be decorated via your query parameter projection
that will include ~, ~:playableStreams
or ~:privatePlayableStreams
. For more information, see here about digital media asset URNs . See below for an example of Profile API:
GET https://api.linkedin.com/v2/me?projection=(id,profilePicture(displayImage~:playableStreams))
Profile API sample response
{
"profilePicture": {
"displayImage": "urn:li:digitalmediaAsset:C4D03AQGsitRwG8U8ZQ",
"displayImage~": {
"elements": [
{
"artifact": "urn:li:digitalmediaMediaArtifact:(urn:li:digitalmediaAsset:C4D03AQGsitRwG8U8ZQ,urn:li:digitalmediaMediaArtifactClass:profile-displayphoto-shrink_100_100)",
"authorizationMethod": "PUBLIC",
"data": {
"com.linkedin.digitalmedia.mediaartifact.StillImage": {
"storageSize": {
"width": 100,
"height": 100
},
"storageAspectRatio": {
"widthAspect": 1,
"heightAspect": 1,
"formatted": "1.00:1.00"
},
"mediaType": "image/jpeg",
"rawCodecSpec": {
"name": "jpeg",
"type": "image"
},
"displaySize": {
"uom": "PX",
"width": 100,
"height": 100
},
"displayAspectRatio": {
"widthAspect": 1,
"heightAspect": 1,
"formatted": "1.00:1.00"
}
}
},
"identifiers": [
{
"identifier": "https://media.licdn.com/dms/image/C4D03AQGsitRwG8U8ZQ/profile-displayphoto-shrink_100_100/0?e=1526940000&v=alpha&t=12345",
"file": "urn:li:digitalmediaFile:(urn:li:digitalmediaAsset:C4D03AQGsitRwG8U8ZQ,urn:li:digitalmediaMediaArtifactClass:profile-displayphoto-shrink_100_100,0)",
"index": 0,
"mediaType": "image/jpeg",
"identifierExpiresInSeconds": 1526940000
}
]
},
{
"artifact": "urn:li:digitalmediaMediaArtifact:(urn:li:digitalmediaAsset:C4D03AQGsitRwG8U8ZQ,urn:li:digitalmediaMediaArtifactClass:profile-displayphoto-shrink_200_200)",
"authorizationMethod": "PUBLIC",
"data": {
"com.linkedin.digitalmedia.mediaartifact.StillImage": {
"storageSize": {
"width": 200,
"height": 200
},
"storageAspectRatio": {
"widthAspect": 1,
"heightAspect": 1,
"formatted": "1.00:1.00"
},
"mediaType": "image/jpeg",
"rawCodecSpec": {
"name": "jpeg",
"type": "image"
},
"displaySize": {
"uom": "PX",
"width": 200,
"height": 200
},
"displayAspectRatio": {
"widthAspect": 1,
"heightAspect": 1,
"formatted": "1.00:1.00"
}
}
},
"identifiers": [
{
"identifier": "https://media.licdn.com/dms/image/C4D03AQGsitRwG8U8ZQ/profile-displayphoto-shrink_200_200/0?e=1526940000&v=alpha&t=12345",
"file": "urn:li:digitalmediaFile:(urn:li:digitalmediaAsset:C4D03AQGsitRwG8U8ZQ,urn:li:digitalmediaMediaArtifactClass:profile-displayphoto-shrink_200_200,0)",
"index": 0,
"mediaType": "image/jpeg",
"identifierExpiresInSeconds": 1526940000
}
]
},
{...},
{...}
],
"paging": {
"count": 10,
"start": 0,
"links": []
}
}
},
"id": "yrZCpj2ZYQ"
}
For more reference on each impacted API, see the section below.
List of Impacted APIs
- Existing Fields: pictureInfo , backgroundImage
- New Fields: profilePicture , backgroundPicture
Organization and OrganizationBrands API
- Existing Fields: coverPhoto, logo, overviewPhoto
- New Fields: coverPhotoV2, logoV2, overviewPhotoV2
- Existing Fields: coverImage, coverMedia, displayImage
- New Fields: coverImage, coverMedia, displayImage
- Existing Fields: TextAdCreativeImageVariables.ImageId
- New Fields: TextAdCreativeImageVariables.vectorImage