2021年2月15日 星期一

不裝軟體直接下載臉書高畫質影片 Download Facebook video in FHD without other software

今日要在FB下載一個自家孩子的小影片,網路上查發現不是要用軟體,就是方法過時了不管用,於是自己嘗試了一下,最後順利不依靠軟體直接下載最高畫質。

現在很流行影像聲音分開放,從網頁原始碼看得出來FB是以MP4格式存audio、WEBM格式存video。


一、影片部分:

FB電腦版網頁開啟到要下載的影片貼文,按右鍵檢視原始碼;以「FBQualityClass」或「FBQualityLabel」這二個參數搜尋,應該不會很多個,選品質最高的複製一整段,以下1080p範例:

========以下目標原始碼斷行方便閱讀========
FBQualityClass=\"hd\" FBQualityLabel=\"1080p\">\u003CBaseURL>
https:\/\/video.**************************&oe=????????
\u003C\/BaseURL>
========以上目標原始碼斷行方便閱讀========

被「\u003CBaseURL>」和「\u003C\/BaseURL>」夾住的那段就是目標網址參數,還需要清理一下。移除(搜尋並取代為空值)網址中的「\」及「amp;」,結果就是我們要的網址了,以瀏覽器開啟後直接可以下載。


二、聲音部分:

以「"audio":[」搜尋,找到幾筆跟下面字串差不多的資料。

"audio":[{"url":"https:\/\/****省略許多字****&oe=????????",之後忽略

我們要的是"https:\~"這段被「"」夾住的網址參數,移除其中的「\」,就是我們要的網址了,以瀏覽器開啟後直接可以下載。


三、合併:
最後把影片與聲音合併,網路上有許多方便快速的開源軟體,在此先不贅述。
不知道FB什麼時候會改變網頁結構/寫法,所以上述擷取方法有效期限未知。

2021年2月2日 星期二

在 Windows 輕鬆用 NirCmd 批次修改檔案/資料夾建立時間、修改時間

幾年前做一鍵改解析度時,使用過 NirCmd 這個軟體,功能很多印象深刻。最近需要大量修改檔案時間,它也能夠輕鬆做到。

NirCmd 是一套免費的命令列指令集,提供許多控制 Windows 的參數,讓你執行命令列的方式,來執行一些重複性的動作,例如寫入、删除註冊表項、值,寫入 ini 檔案,撥號連接到你的網路帳戶以及 VPN 網路,重啟、關閉電腦,建立檔案快捷方式,改變檔案的建立 / 修改日期,改變顯示設置,關閉顯示器,彈出/關閉光碟,增加或減少電腦音量,以及更多更多。

x64版本的 NirCmd 執行檔是「nircmdc.exe」,需放在path路徑或安裝路徑(C:\Windows)下,以管理員身份執行。這邊簡述一下改檔案/資料夾建立及修改時間的指令:

改檔案日期時間:
nircmdc.exe setfiletime "檔案路徑" "dd-MM-yyyy hh:mm:ss" "dd-MM-yyyy hh:mm:ss"
改資料夾日期時間:
nircmdc.exe setfilefoldertime "資料夾路徑" "dd-MM-yyyy hh:mm:ss" "dd-MM-yyyy hh:mm:ss"

還有很多其他有趣/方便指令可以在官網找到說明。
NirCmd 官網:

[轉貼] windows用powershell修改文件/資料夾建立時間、修改時間

最近再次用到檔案時間大量修改,網路看到不同作法筆記一下

用win7自帶的powershell可以輕鬆修改文件/資料夾建立時間、修改時間。而且可以批量修改。

1. 步驟

新建一個bat檔案,在其中新增語句:

@ECHO OFF  powershell.exe -command "ls 'folder_path\*.dll' | foreach-object { $_.LastWriteTime = Get-Date; $_.CreationTime = Get-Date }"  PAUSE

2. 解釋

程式碼將folder_path路徑下的所有dll檔案的建立時間修改時間改成現在的時間。

  • -command: tells powershell to run the following command and return immediately

  • ls: list all matching files at the path specified

  • foreach-object: run the following block on each file that ls found

  • $_.LastWriteTime = Get-Date: for each file, set the LastWriteTime to the value returned by Get-Date (today's date and time)

  • $_.CreationTime = Get-Date: for each file, set the CreationTime to the value returned by Get-Date (today's date and time)

3. 修改至指定時間

$_.LastWriteTime = Get-Date:改為$_.LastWriteTime = '01/11/2004 22:13:36'

@ECHO OFF  powershell.exe -command "ls 'folder_path\*.*' | foreach-object { $_.LastWriteTime = '01/11/2004 22:13:36'; $_.CreationTime = '01/11/2004 22:13:36' }"  PAUSE

4. 遞迴資料夾中所有檔案

@ECHO OFF  powershell.exe -command "Get-Childitem -path 'E:\project_llj\install\test\' -Recurse | foreach-object { $_.LastWriteTime = Get-Date; $_.CreationTime = Get-Date }"   PAUSE
來源:itread01