Các mã YouTube có được đảm bảo luôn có 11 ký tự không?


18

Tôi đang viết mã để xác thực các URL YouTube. Được đảm bảo rằng ID video, chẳng hạn như oHg5SJYRHA0, luôn dài chính xác 11 ký tự hoặc đôi khi có thể ngắn hơn hoặc dài hơn? Có tài liệu chính thức nào về việc này không?


Ít nhất cho đến khi 5,20e + 19 video được thực hiện;)

@Jason chết tiệt bạn! bạn đang sử dụng máy tính nào!

2
Tối đa. sự kết hợp trong 11 ký tự có vẻ như là một con số lớn, nhưng có lẽ sẽ không phải là enaugh trong một vài năm kể từ khi số lượng video youtube được tải lên tăng theo cấp số nhân ... Vì vậy, đừng tin vào điều đó nếu bạn đang tạo ra không phải là một trang web năm.
jave.web

@ jave.web Bạn đến bữa tiệc muộn. Tôi đã yêu cầu các nguồn có thẩm quyền, không cho ai đó tranh luận liệu 64 ^ 11 có phải là một con số lớn hay không. Có thể có những lý do khác mà một số mã video có thể có định dạng khác với việc hết chúng. Ví dụ: có thể có các video kế thừa có mã ngắn hơn hoặc video được lưu trữ trong một hệ thống riêng biệt, với định dạng mã hoàn toàn khác. Câu trả lời được chấp nhận chứa câu trả lời có thẩm quyền nhất mà tôi đã thấy cho đến nay.
nitro2k01

Nhận xét của tôi vẫn được áp dụng, đặc biệt là vào năm 2014 và chỉ hỗ trợ câu trả lời được chấp nhận;)
jave.web

Câu trả lời:


20

Họ có thể sẽ dính vào 11 ký tự trong một thời gian dài. Mỗi ký tự có 64 giá trị có thể:

2 * 26 chữ cái (chữ thường và chữ hoa) + 10 cho các chữ số, + 2 cho các ký tự "_" và "-"

2 * 26 + 10 + 2 = 64

Sau đó, tổng cộng 11 ký tự:

64 ^ 11 = 73786976294838210000 (hoặc nhiều hơn hoặc ít hơn "73,7e18")

Tất nhiên không phải tất cả sự kết hợp sẽ được sử dụng, tùy thuộc vào thuật toán của họ, nhưng có lẽ họ sẽ không thay đổi nó bất cứ lúc nào sớm. Tuy nhiên, những từ từ nhà phát triển YouTube nói rằng họ không đảm bảo:

Tôi không thấy bất cứ nơi nào trong tài liệu mà chúng tôi chính thức cam kết độ dài tiêu chuẩn là 11 ký tự cho id video YouTube. Đó là một trong những điều mà chúng tôi có triển khai hiện tại và nó có thể duy trì theo cách đó vô thời hạn. Nhưng chúng tôi không đưa ra bất kỳ cam kết chính thức nào về điều đó, vì vậy hãy tự chịu rủi ro.

Cách tiếp cận tốt hơn, mặc dù một cách liên quan nhiều hơn, sẽ là lấy từng id video và đưa ra yêu cầu tới API YouTube để xem nó có hợp lệ không. Ví dụ: tạo HTTP GET để

http://gdata.youtube.com/feed/api/ideo/VIDEO_ID

và xem nếu bạn nhận được phản hồi HTTP 200. Tất nhiên, nếu bạn thực hiện phương pháp đó, các video đã bị xóa khỏi YouTube sẽ trở lại không hợp lệ (có thể hoặc không thể là những gì bạn muốn) và các video được tải lên YouTube gần đây cũng có thể trở lại là không hợp lệ.

Chúc mừng, -Jeff Posnick, Nhóm API YouTube

Nguồn: https://web.archive.org/web/20120306111051/http://osdir.com/ml/youtube-api-gdata/2009-10/msg00237.html


1
@Diego: Nếu bạn sẽ trích dẫn rất nhiều chữ số, bạn cũng có thể hiển thị một vài số cuối: 64 ^ 11 = 2 ^ 66 = 73,786,976,294,838,206,464 Với 0,5 làm tròn, mẫu kỹ thuật là 73.787e18.

Tôi đồng ý với @ user60228, không hiển thị chữ số đầy đủ trừ khi bạn hiển thị đầy đủ độ chính xác hoặc chi tiết khác. Chỉ thú vị với một số người trong chúng ta để biết sự thật toán học đầy đủ. (PS Câu trả lời tuyệt vời!)
Xonatron

4

Một cái gì đó đáng để chỉ ra, một vài URL trỏ đến cùng một video. Ví dụ, trong các video được đăng dưới đây, tất cả chúng đều là "Giải thưởng Nobel 2015!" bởi Scishow:

Ngoài ra, nếu bạn thay đổi ký tự cuối cùng thành Choặc Dnó cũng sẽ hoạt động.


1
Bạn có thể đã tìm thấy một lỗ hổng. Rõ ràng mỗi video có ít nhất 4 url. Trong trường hợp bạn đề cập đến A, B, C và D đều trỏ đến A. Ngoài ra, E, F, G và H trỏ đến E; Tôi, J, K và L chỉ vào I. Và cứ thế. Và điều đó đúng với mọi video tôi đã thử nghiệm.
JP de la Torre

Điều này dường như không còn là trường hợp khi đăng bình luận này.
nitro2k01

-2

Vâng, họ luôn có 11 ký tự.


3
Bạn có bất kỳ thông tin để sao lưu?
ale
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.