Stream迁移工具常见问题解答

本文总结了有关Stream迁移工具的常见问题。

我在迁移工具中看不到所有Stream (经典) 视频。

我没有在清单报告中看到所有Stream (经典) 视频。

否,Stream (经典) 中的所有视频都应在清单报告中可见。 通过Stream视频 ID 搜索报表。 可以在视频播放 URL 的末尾找到此 ID,例如, https://web.microsoftstream.com/video/videoid

迁移工具在 Microsoft 365 组或公司频道中显示的视频数少于我在 Stream (经典) 中看到的视频。

迁移工具的速度或吞吐量是多少?

今天我的孤立视频会发生什么情况?

孤立视频是当前没有所有者且原始上传者离开组织的视频。 自 2023 年 7 月以来,迁移工具具有迁移它们的功能。有关更多详细信息,请阅读孤立的视频部分。

我在清单报告中看到一些不符合条件的视频,这些视频是什么?

未以草稿状态发布 () 或回收站) 中删除 ( 的视频不符合迁移条件。 工具不会迁移它们。 最终用户可以发布此类视频,或者管理员可以从回收站还原视频,以便迁移工具可以选取它们。

在 UI 上为单个容器分配目标时,我看不到某些 SharePoint 网站。

如果在分配目标时租户中的 SP 或 Teams 网站在 UI 上不可见,则可能有几个原因。

  • 默认情况下,SP 管理员无权访问他们不是所有者或成员的网站,尽管他们可以将自己添加到组或团队。 因此,只有管理员至少是组或团队成员的站点才可见。 这是因为使用用户范围的委托令牌搜索网站。 但是,在目标的自动映射过程中会发现此类站点,因为我们使用基于应用程序的令牌
  • 管理员也可能看不到多地理位置租户的网站,因为用于提取站点的图形 API 在某些极端情况下无法可靠地执行此操作。
  • 在角落的情况下,如果网站是最近创建的,可能需要一段时间才能同步并显示在 UI 中。 ETA 是几个小时。 注意:对于某些角落方案 (例如:目标路径) 中的特殊字符,UI 中的 SP 网站搜索可能不起作用。 在这种情况下,可以使用迁移工具中的“上传目标”选项通过 csv 上传手动分配目标。

某些用户和 Microsoft 365 组容器的目标不会自动分配。

如果通过“添加容器 -> 在 Stream 中查找新容器”将容器添加到扫描选项卡,则所有 Microsoft 365 组和用户容器的目标都会尽力自动分配。 对于目标尚未自动分配的,也可以使用迁移工具中的“上传目标”选项通过 csv 上传来完成相同的操作。 还可以使用 此处 说明中提到的脚本来标识 Microsoft 365 组的目标,并通过“上传目标”选项上传它们。

是否可以为组织的最终用户删除上传到Stream (基于 SharePoint) 的选项?

不幸的是,现在无法实现。 我们更改了经典上传页面,并让客户例外地延长该页面,该延期期现在也已过期。 请参阅 2023 年 1 月 12 日发布的迁移时间线和 MC 发布MC496849中的 2023 年 1 月 17 日行项。

迁移后,我的视频在 Stream 经典版中仍可见。

有一个后端代码运行,用于在迁移后从Stream (经典) 隐藏或软删除视频。 隐藏内容可能需要长达两天的时间。 由于 bug,在 2023 年 8 月 15 日之前迁移的视频可能仍显示在Stream (经典) UI 中。 若要解决此问题,可以重新迁移到受影响的视频。

是否应在迁移前备份Stream (经典) 视频,以防发生任何不良情况?

绝对不。 建议先运行测试迁移,以了解迁移视频的权限、位置和元数据。 发布后,应使用一些生产视频运行试点迁移。 它可以让你充满信心,不会使所有数据都处于危险之中,并将出错的可能性降到最低。
此外,在迁移后,我们会从Stream (经典) 隐藏或软删除视频,但在Stream (经典) 基础结构弃用之前不要硬删除。 在此过程中,对于严重情况,我们可以取消隐藏Stream (经典) 中的数据。

有视频被报告为“不符合条件”迁移-我们如何解决此类情况?

文档中在此处提到了不符合条件的视频。 这可能是由于视频处于错误退出状态或草稿或删除。 可以从回收站还原已删除的视频,并在草稿中发布视频。

运行Stream迁移需要哪些权限?

Stream迁移管理器中的迁移工具出现“服务不可用”错误。 联系支持人员”

由于需要允许工具进行连接的 URL 或网络连接问题,它们可能会被阻止。 可能需要将以下 URL 添加到 允许列表

  • https://api.mover.io
  • https://api.microsoftstream.com/

此外,如果你是 GCC 租户,请将以下 URL 也添加到允许列表:

  • https://api.prod.migrations.microsoft.com

如果仍然遇到连接问题,请检查是否启用了 Mover 应用并且也启用了登录。 请按照以下步骤操作:

是否可以将视频从Stream (经典) 回滚到Stream (基于 SharePoint) ?

这是一种灵活的迁移,管理员可以选择迁移所需的视频。 建议使用一些测试视频运行该工具,并使用一些生产视频对某些迁移进行试点。 因此,回退的需求可能更少。 但出于有效的业务原因,我们可以取消隐藏从经典版迁移的内容。 在此过程中,Stream (基于 SharePoint) 中对迁移视频所做的更改不会显示在经典视频中重新出现的视频中。 你需要 通过此表单 提交请求,并通过支持票证共享相同的详细信息。 用于回滚的 ETA 是自通过表单提交信息起的 3 个工作日。

最终用户如何发现已迁移的内容?

当视频从Stream (经典) 迁移到Stream (基于 SharePoint) 时,我们将镜像权限。 有权访问视频的每个用户Stream (经典) 保留对已迁移视频的访问权限。 最终用户可以通过搜索Stream (基于 SharePoint) (如果视频已迁移)或Stream (非迁移视频的经典) 来查找视频。 到 3 月 23 日结束,管理员会收到一份报告,其中提供了每个已迁移视频文件的目标位置。 清单报表中提供了它。

迁移视频时,是否可以在 Stream (经典) 中应用保留或过期策略?

不会,Stream (经典) 中曾经存在过保留或过期策略,因此在迁移视频时不会应用此类策略。 但是,从理论上讲,可以在视频迁移到Stream (基于 SharePoint) 后对视频应用过期。 我们设置一个变量 (mediaitem.progID) 来标识已迁移的视频。

为什么在迁移后会看到追加到视频文件名的日期时间?

Stream (经典) 中的两个视频可能具有相同的文件名,但在一个驱动器 & SharePoint 中是无法实现的。 SharePoint 中同名的两个文件被视为版本。 我们追加日期时间以防止这种情况发生。 但是,在播放期间可见的视频标题在迁移时不会更改。

迁移过程中是否复制或移动了我的视频? 迁移后,Stream经典版中是否提供它们?

我们制作视频的副本,并将其上传到 SharePoint 或 OneDrive。 同时,我们会在迁移后隐藏或软删除Stream (经典) 视频。 当Stream (经典) 基础结构弃用时,我们将硬删除视频。 迁移 180 天后,以前的视频被硬删除,但我们 从 6 月中旬开始对此进行了更改

如何解决错误或失败的视频?

请参阅平台提供的 错误代码和定义

Stream迁移工具是否重试失败的视频? 我应该自己重试吗?

是的,迁移工具中内置了重试。 但是,在很长一段时间后,如果视频仍然显示失败,并且 错误原因 不是由于你的某个问题,则你可以再次重试。 如果仍然失败,请提交支持票证

迁移的视频是否显示在 office.com 的“开始”页上?

否,迁移本身不会使视频显示在 office.com 的起始页上。 但是,如果视频在迁移后被用户访问,则该视频将显示在起始页上的“最近使用”选项卡中。

对旧Stream (经典) 迁移视频的播放或重定向支持结束后会发生什么情况?

阅读 本文

是否可以为迁移到 Stream (基于 SharePoint) 提供更多帮助?

如果你希望聘请第三方合作伙伴来帮助你完成迁移或帮助你开始使用Stream (基于 SharePoint) 我们已收集此合作伙伴列表,这些合作伙伴自称拥有此专业知识。 有关更多详细信息,请参阅第三方合作伙伴列表。

如何定义孤立视频? 如果上传者已离开组织,视频是否符合孤立条件?

移动视频时,我们确保将其分配给组织中的某人。 如果视频没有任何 Microsoft 365 组或用户分配为所有者,或者它未与公司频道关联,我们会将该视频标记为孤立视频。 孤立视频作为“孤立视频”容器的一部分 (ETA 移动:6 月) 。 你的组织可以有多个孤立视频容器,具体取决于租户中此类视频的数量。 有些视频可能上传者离开了组织,但由于上传者拥有用户或 Microsoft 365 组所有者或与公司频道关联,因此它们仍然未分类为孤立视频。 在这种情况下,视频将使用相应的容器(而不是孤立视频容器)进行迁移。

为什么在迁移权限时中断目标文件夹的继承?

如何识别包含重叠视频和视频详细信息的容器。

是否可以将容器的视频移动到两个不同的位置?

我们不会将容器中的视频迁移到不同的位置,但有一种解决方法。 可以使用 部分迁移筛选器来实现此目的。 使用筛选器将一组视频迁移到第一个位置。 成功迁移后,从“迁移”选项卡中删除容器。 使用新的筛选器集添加同一容器,并迁移到新位置。 但只能根据可用的视频筛选器拆分视频。 此外,组 URL 的重定向指向上次迁移的组目标位置。

为什么无法手动添加更多容器?

迁移工具一次限制为 50,000 个容器。 如果无意中添加了超过 50,000 个容器,则需要删除一些容器,以便手动添加后容器的总计数仍低于此阈值。

如何实现Stream (经典) 门户、库存报告和迁移工具之间匹配数据?

有三种数据源:Stream (经典) 门户 - 我们称之为 A、清单报表 (或 Power BI 仪表板) - 我们称之为 B,迁移工具 - 我们称之为 C

  1. & B 应完全匹配。 可以在清单报表中找到所有视频。 通过报表中的视频 ID 为视频搜索。 可以在视频播放 URL 的末尾找到此 ID,例如, https://web.microsoftstream.com/video/videoid
  2. B & C 现在也会匹配。 此前,由于迁移工具中缺少对孤立视频的支持, (C) 、B 和 C 不匹配。
  3. & C 不匹配,因为视频可能不会显示在工具中与在Stream (经典) 中相同的位置,因为该工具移动了逻辑组或容器中的视频。 Stream (经典) 与 Microsoft 365 组关联的视频,公司频道或Stream组始终一起移动,而不是与上传视频的用户容器一起移动。 我们遵循优先级顺序:Stream组 > Microsoft 365 组>公司范围的频道>用户。 有关详细信息,请参阅权限案例。 因此,你可能会看到上传者的视频在 Microsoft 365 组中移动,因此在迁移工具的上传程序用户容器中可能不可见。

在某些用户容器迁移中,我看到 MUSERNOTFOUND 错误。

如果禁用Stream经典版,并且用户已被删除或处于非活动状态,则迁移用户容器可能会失败,并在迁移日志报告中出现 MUSERNOTFOUND 错误。 有一种解决方法。 请考虑将默认目标路径更改为有效位置,以便成功迁移用户内容。 如果启用了 Stream Classic 并且用户处于非活动状态,则“查找新容器”以获取此用户的视频。 已为此用户添加的用户容器不会迁移用户内容。

如果文件夹名称具有空间键,则无法运行自动映射脚本、清单报告脚本和权限脚本。

若要对 Windows 文件路径中的空格进行转义,请在路径部分周围加上双引号,并在其中加上空格。 例如:C:“Test Folder”\text.txt。 还可以在整个路径周围加上引号,以确保不会错过任何空格。

如何获取租户环境中所有 Microsoft 365 组和 CWC 容器的列表?

清单报告提供了至少分配了一个视频的所有容器 ID 的列表。 你的租户可能有一些 Microsoft 365 和 CWC 组,其中的视频显示在Stream (经典) UI 中,但根据分配层次结构没有分配给这些组,因此没有视频的容器不会显示在清单报告中。 清单脚本的最新新增功能带来了一个名为“GenerateMasterContainerList”的额外参数,当显式设置为 true (其值为 false 时,def) 在单独的文件中生成租户中可用的所有 M365Groups 和 CompanyWideChannels 的列表。

  1. 若要运行脚本,用户需要按照旧步骤运行清单脚本,其中唯一添加的步骤是需要添加参数“GenerateMasterContainerList”并将其值设置为 true。
  2. 用于运行脚本的示例命令: .\StreamClassicVideoReportGenerator.ps1 -AadTenantId “00000000-0000-0000-0000-000000000000” -InputFile “C:\Users\Username\Desktop\token.txt” -OutDir “C:\Users\Username\Desktop” -GenerateMasterContainerList true
  3. 默认情况下,此参数的值为 false。
  4. 它支持恢复的方式与旧脚本完全相同。 由于某些租户可能具有大量此类实体,因此脚本可能会在执行期间因身份验证令牌过期而终止。 在这种情况下,用户必须将旧令牌替换为令牌文件中的新令牌,然后重启脚本。 默认情况下,脚本在恢复标志设置为 true 的情况下运行,因此脚本将从上次执行中再次选取。 如果存在大量实体,则结果显示在多个 csv 中,因为每个输出 csv 的行数不超过 10,000 行。
  5. 包含所有合并文件的最终列表可以在 \Out\report 文件夹中找到。

如何实现提取Stream (经典) 中每个频道下可用的视频?

客户需要创建自己的脚本来提取此映射信息。 我们提供的脚本是与我们共享的,你可以根据你的自由裁量权使用这些脚本。 注意:Microsoft 不支持此脚本。

脚本 1:

#Token file Path
$tokenInputFile="C:\temp\StreamReportGenerator\token.txt" 
#Please Note the Base Url - https://uswc-1.api.microsoftstream.com/api/ needs to be replaced by Base Url of your tenant using script 2 
$baseURI = "https://uswc-1.api.microsoftstream.com/api/" 
#ChannelVideoReport Path – Please replace it with path to csv file where we want to export the channel video report data 
$channelVideoReportPath =  "C:\temp\StreamReportGenerator\channelVideosReport.csv" 
$getAllChannelsUri= $baseURI + "channels?`$top=100&`$skip=0&`$orderby=created desc&`$expand=creator,group&adminmode=true&api-version=1.4-private"
$token = Get-Content -Path $tokenInputFile 
$headers = @{ 
    "Accept" = "application/json, text/plain, */*" 
    "Authorization" = "Bearer $($token)" 
} 
$ChannelVideoInfoCollection=@() 
$response = Invoke-RestMethod -Method Get -Uri $getAllChannelsUri -Headers $headers 
if($response -ne $null) 
{
  foreach($channelData in $response.value) 
    { 
        $channelVideoInfoUri= $baseURI + "/channels/$($channelData.id)/videos?`$top=100&`$skip=0&`$filter=published%20and%20(state%20eq%20%27completed%27%20or%20contentSource%20eq%20%27livestream%27)&`$expand=creator,events,channels&adminmode=true&`$orderby=metrics%2FtrendingScore%20desc&api-version=1.4-private"
        $channelVideoRes = Invoke-RestMethod -Method Get -Uri $channelVideoInfoUri -Headers $headers 
        foreach($channelVideo in $channelVideoRes.value) 
        { 
            $ChannelVideoAssociationInfo = [PSCustomObject] @{ 
                GroupID=$channelData.group.id 
                GroupName=$channelData.group.name
                ChannelID =$channelData.id 
                ChannelName=$channelData.name 
                VideoID=$channelVideo.id 
                VideoName=$channelVideo.name 
            } 
            $ChannelVideoInfoCollection += $ChannelVideoAssociationInfo 
        } 
}}  
$ChannelVideoInfoCollection | Export-Csv -Path $channelVideoReportPath -NoTypeInformation  

脚本 2:

# Path to Token file    
$tokenInputFile="C:\temp\StreamReportGenerator\token.txt"      
$token = Get-Content -Path $tokenInputFile 
# To be replaced by Aad Tenant ID of your tenant
    $aadTenantID = "c008191f-7c3e-4728-a223-0cba39479b7b" 
    $tenantPatchUri = "https://api.microsoftstream.com/api/tenants/" +  $aadTenantID + "?api-version=1.4-private" 
    $headers = @{ 
        Authorization = "Bearer $token" 
    } 
    $body = "{}" 
    try { 
        $response = Invoke-RestMethod -Uri $tenantPatchUri -Method Patch -Body $body -Headers $headers -ContentType "application/json" 
  } 
    catch {
        #Stop execution if Unauthorized(401). 
        if ($_.Exception.Response.StatusCode.value__ -eq 401) { 
            Write-Host "========Enter new token and start the script again=======" 
        } 

          Write-Host "An error occurred: $($_.Exception.GetType().FullName) - $($_.Exception.Message)"

        exit 
    }
    Write-Host "Base URI: $($response.apiEndpoint)"

使用脚本的步骤:

  1. 可以使用脚本 1 获取通道和视频映射。
  2. 请使用与清单报表相同的方法来提取令牌,并更新$tokenInputFile
  3. 更新要导出视频报告 csv 文件的 channelVideoReport 路径
  4. 我们需要将 $baseURI = “”https://uswc-1.api.microsoftstream.com/api/ 替换为租户 的 BaseURI。 若要提取基 URI,请执行以下步骤:a。 用户脚本 2,并将路径添加到步骤 2 中提取的令牌文件,并将其分配给 $tokenInputFile b。 将 $aadTenantID = “c008191f-7c3e-4728-a223-0cba39479b7b” 替换为租户 c 的租户 ID。 运行脚本。 d. 控制台上打印了基本 URI。
  5. 运行脚本 1,将 ChannelVideoReport 导出到给定路径
  6. 默认情况下,脚本返回这些通道中前 100 个频道和前 100 个视频。

在目标站点中,可以找到的文件比报表中迁移的文件多。

由于迁移上传机制的限制,如果报表中出现“MJOBNOTCOMPLETED”或“MJOBFATALERROR”错误,则成功迁移的文件的实际数量可能超过报表中显示的计数。 重新运行迁移通常可有效地解决此类问题。 此外,请在迁移完成后等待 15 分钟,再下载迁移日志和摘要报告,以避免报告中出现 MJOBNOTCOMPLETED 错误。

我无法从该工具下载迁移日志。

任何容器的迁移日志仅在该容器迁移后的 3 个月内可用。 三个月后,日志将无法访问。